function selectDato(lista, valor){
  for (var i=0;i<lista.length;i++){
    if (lista.options[i].value == valor){
      lista.options[i].selected = true;
    }
  }
}


var dateFormat = 'dd/MM/yyyy';

var calendar   = new CalendarPopup("calendarDiv");

var vError   = new Array("We are sorry to say that we can’t handle your request right now. Please visit the page again and try again.",
                        "We are sorry to say that we can’t handle your request right now. Please visit the page again and try again.",
                        "Please choose an arrival date.",
                        "Please choose a departure date.",
                        "Please choose a room type.");

var yxMonths  = new Array("Jan","Feb",
  			"Mar","Apr",
  			"May","Jun",
  			"Jul","Aug",
  			"Sep","Oct",
  			"Nov","Dec");

calendar.monthAbbreviations   = yxMonths;

var yxMonthsLarge  = new Array("January","February",
  			"March","April",
  			"May","June",
  			"July","August",
  			"September	","October",
  			"November","December	");

calendar.monthNames  = yxMonthsLarge;

calendar.setDayHeaders("S",
                       "M",
                       "T",
                       "W\n",
                       "T",
                       "F",
                       "S");


/*var ayer = new Date(new Date('3/17/2009') - 1);
calendar.addDisabledDates(null, (ayer.getMonth()+1) + "/" +  ayer.getDate()+ "/" + ayer.getFullYear());*/

valueMonth	= new Array( "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12");

function convertirNum(str){
	var num = 1;
	switch (str){
		case "01": num=0; break;
		case "02": num=1; break;
		case "03": num=2; break;
		case "04": num=3; break;
		case "05": num=4; break;
		case "06": num=5; break;
		case "07": num=6; break;
		case "08": num=7; break;
		case "09": num=8; break;
		case "10": num=9; break;
		case "11": num=10; break;
		case "12": num=11; break;
		default: num=0;
	}
	return num;
}

//
// Funcion responsable de cargar la fecha de entrada del calendario
//
function cargarFechaEn(any, mes, dia) {
  if (dia < 10){
    document.search_form.en_dia.value = "0" + dia;
  }
  else {
    document.search_form.en_dia.value = dia;
  }

  document.search_form.en_mesano.value = valueMonth[mes-1] + "-" + any;
  adaptahasta('search_form','en_dia','en_mesano','sa_dia','sa_mesano');
}

//
// Funcion responsable de cargar la fecha de salida del calendario
//
function cargarFechaSa(any, mes, dia) {
  if (dia < 10){
    document.search_form.sa_dia.value = "0" + dia;
  }
  else {
    document.search_form.sa_dia.value = dia;
  }
  document.search_form.sa_mesano.value = valueMonth[mes-1] + "-" + any;
  adaptahasta('search_form','en_dia','en_mesano','sa_dia','sa_mesano');
}


//
// Muestra el calendario
//
function mostrarCalendario(funcion, anchor, sComboDia, sComboMesAnyo) {
  var comboDia = eval("document.search_form." + sComboDia);
  var comboMesAnyo = eval("document.search_form." + sComboMesAnyo);
  // Obtenemos los valores de los combos
  var dia=comboDia.options[comboDia.selectedIndex].value;
  var mesano=comboMesAnyo.options[comboMesAnyo.selectedIndex].value;

  var fechaShow = "";
  if ((dia!="") && (mesano!=""))  {
    var mesanoSplit = mesano.split("-");
    var mes=mesanoSplit[0];
    var anyo=mesanoSplit[1];
    fechaShow = anyo + "-" + mes + "-" + dia;
  }

  calendar.setReturnFunction(funcion);
  calendar.showCalendar(anchor, fechaShow);
}

//
// Funcion DateAdd copiada de calendario/cal_conf2.js
//

//=========================================
// dia = 1,2,3,4,...31
// mes = 0,1,2,3, ...11
// anyo = 2005,2006 ...
// incDays, Incremento de dias 0,1,2,..
// incMonths, Incremento de meses 0,1,2,..
// incYears Incremento de años 0,1,2,..
//=========================================
function DateAdd(dia, mes, anyo, incDays, incMonths, incYears)
{

  var sAux 	= "";
  var startDate 	= new Date(anyo,mes,dia,0,0,0);
  var returnDate 	= new Date(startDate.getTime());
  var yearsToAdd 	= incYears;
  var month 	= returnDate.getMonth() + incMonths;
  if (month > 11)
  {
    yearsToAdd 	= Math.floor((month+1)/12);
    month 		-= 12*yearsToAdd;
    yearsToAdd 	+= incYears;
  }
  returnDate.setMonth(month);
  returnDate.setFullYear(returnDate.getFullYear()	+ yearsToAdd);

  returnDate.setDate(returnDate.getDate()+incDays);
  if(returnDate.getDate()<10)
  sAux +="0"
  sAux +=returnDate.getDate()+"/"
  if((returnDate.getMonth() + 1)<10)
  sAux +="0"
  sAux +=(returnDate.getMonth() + 1)+"/"+ returnDate.getFullYear();
  return sAux;
}

//
// Funciones adaptahasta y actualizarCombosFecha copiadas de fechasCalendarioJS.jsp
//
function adaptahasta(form, en_dia, en_mesanyo, sa_dia, sa_mesanyo){
  // Obtenemos los combos
  var comboDiaIni = eval("document."+form+"."+en_dia);
  var comboMesAnyoIni = eval("document."+form+"."+en_mesanyo);
  var comboDiaFin = eval("document."+form+"."+sa_dia);
  var comboMesAnyoFin = eval("document."+form+"."+sa_mesanyo);
  // Obtenemos los valores de los combos
  var dia=comboDiaFin.options[comboDiaFin.selectedIndex].value;
  var mesano=comboMesAnyoFin.options[comboMesAnyoFin.selectedIndex].value.split("-");
  var mes=mesano[0];
  var anyo=mesano[1];
  var diad=comboDiaIni.options[comboDiaIni.selectedIndex].value;
  var mesanod=comboMesAnyoIni.options[comboMesAnyoIni.selectedIndex].value.split("-");
  var mesd=mesanod[0];
  var anyod=mesanod[1];
  fhasta= new Date(anyo, mes-1, dia);
  fdesde=new Date(anyod, mesd-1, diad);

  var hoy=new Date();
  fdesde2=fdesde.getTime()+63*24*60*60*1000;
  if (fhasta.getTime()>0) {
    if(fdesde>=fhasta){
      loadDate( DateAdd(diad,mesd-1,anyod,1,0,0),comboDiaFin,comboMesAnyoFin);
    }
    else {
      if(fhasta.getTime()>=fdesde2){
        // Sobre pasa el rango de 62 dias de reserva
        if (fechaAnterior.getTime() != fhasta.getTime()){
          loadDate( DateAdd(fechaAnterior.getDate(),fechaAnterior.getMonth() ,fechaAnterior.getFullYear(),0,0,0),comboDiaFin,comboMesAnyoFin);
        } else {
          loadDate( DateAdd(diad,mesd-1,anyod,1,0,0),comboDiaFin,comboMesAnyoFin);
        }
        _alert("Sorry. Our online booking engine does not accept bookings for periods greater than two months. Please check your dates and try again.", true);
      }
    }
  }
  else {
    loadDate( DateAdd(diad,mesd-1,anyod,1,0,0),comboDiaFin,comboMesAnyoFin);
  }
  // Guardamos la fecha anterior
  dia=comboDiaFin.options[comboDiaFin.selectedIndex].value;
  mesano=comboMesAnyoFin.options[comboMesAnyoFin.selectedIndex].value.split("-");
  mes=mesano[0];
  anyo=mesano[1];
  fechaAnterior = new Date(anyo, mes-1, dia);
}

function actualizarCombosFecha(form,en_dia,en_mesanyo,sa_dia,sa_mesanyo,capanoches,noches,entrada,salida){
  correctDate2(form, en_dia, en_mesanyo);
  adaptahasta(form,en_dia,en_mesanyo,sa_dia,sa_mesanyo);
  correctDate2(form, sa_dia, sa_mesanyo);
}



//
// Funciones loadDate, loadDateSeparator, selectDato, correctDate2 copiadas de funciones.js
//
/**
 * correctDate2. 
 * Corrige las fechas de lso combos del estilo dia y mes_anyo. 
 * El año y el mes estan unificados en un unico combo
 *
 * @param form_name: Nombre del formulario 
 * @param day_field: Nombre del cambo dia del formulario
 * @param month_year_field: Nombre dl campo mes y dia del formulario
 */

function correctDate2(form_name, day_field, month_year_field) 
{ 	
	var comboDia 	= eval("document." + form_name + "." + day_field);
	var comboMes 	= eval("document." + form_name + "." + month_year_field);	
	var day 	= comboDia.options[comboDia.selectedIndex].value;
	var fecha_comp	= comboMes.options[comboMes.selectedIndex].value.split("-");
	var month 	= fecha_comp[0]-1;	
	var year		=fecha_comp[1];
	
	
	
	if ((day!="")&&(month!="")&&(year!="")&&(month!="-1")){
		//Comprobamos el número de opciones nulas que hay al principio del combo de días
		
		var optionDiaNulo=0;
		for (var i=0;i<comboDia.length;i++){
			if (comboDia.options[i].value==""){
				optionDiaNulo++;
			}
		}		
		//Comprobamos el número de opciones nulas que hay al principio del combo de meses
		var optionMesNulo=0;
		for (var j=0;j<comboMes.length;j++){
			if (comboMes.options[j].value==""){
				optionMesNulo++;
			}
		}
		//Construyo una fecha con esos componentes
		var a_date 	= new Date(year,month,day);	
		//_alert(a_date);	

		//Obtengo el día y el mes de la fecha validada
		day = a_date.getDate();
		month = a_date.getMonth()+1;
		year = a_date.getFullYear();
		var mesanyo=month+'-'+year;
		
		//Corrijo las combos, sumandole el número de opciones vacías que tiene cada combo
		eval("document." + form_name + "." + day_field + ".selectedIndex = " + (day-1+optionDiaNulo));
		
		for (var j=0;j<comboMes.length;j++){
			var temp=comboMes.options[j].value.split('-')
			if((month==temp[0])&&(year==temp[1])){
			eval("document." + form_name + "." + month_year_field + ".selectedIndex = " + j);	
			return;				
			}
		}
		
	}
	
}


/**
* loadDate.
* Carga la fecha en un combo de fecha.
* El combo de mes y año estan unificados en uno solo
*
* @param sFecha: Fecha que se carga formato dd/mm/yyyy
* @param campoDia: Nombre del cambo dia del formulario
* @param campoMesAnyo: Nombre del campo mes y año del formulario
*/
function loadDate(sFecha, campoDia, campoMesAnyo){
  loadDateSeparator(sFecha, campoDia, campoMesAnyo, "/");
}

/**
* loadDateSeparator.
* Carga la fecha en un combo de fecha.
* El combo de mes y año estan unificados en uno solo delimitado
* por un separador
*
* @param sFecha: Fecha que se carga formato dd/mm/yyyy
* @param campoDia: Nombre del cambo dia del formulario
* @param campoMesAnyo: Nombre del campo mes y año del formulario
* @param separador: separador de mes y año
*/
function loadDateSeparator(sFecha, campoDia, campoMesAnyo, separador){
  var sDate 	= sFecha.split(separador);
  selectDato(campoDia,sDate[0]);
  selectDato(campoMesAnyo,""+sDate[1]+"-"+sDate[2]);
}

/**
* selectDato.
* Selecciona el campo de un select de
*
* @param lista: Nombre del campo del combo
* @param valor: Valor que se tiene que seleccionar
*/
function selectDato(lista,valor){
  for (var i=0;i<lista.length;i++){
    if (lista.options[i].value == valor){
      lista.options.selectedIndex = i;
      break;
    }
  }
}

calendar.offsetX   = 0;
calendar.offsetY   = 25;
calendar.actualDay = new Date(new Number(2009),new Number(2)-1,new Number(2),0,0,0);
if('en_us'=='en'){
  calendar.setWeekStartDay(0); 
  dateFormat = 'MM/dd/yyyy';
}
else{
  calendar.setWeekStartDay(1); 
  dateFormat = 'dd/MM/yyyy';
}


var fechaIni = '';
var fechaFin = '';




function _alert(msg, mostrarAlert){

	if (mostrarAlert)
	{
		alert(msg);
	}
	s.eVar1="ERROR_ALERT"
	s.eVar21=msg;
	s.eVar22=location.href;
	s.eVar9="en";
	s.prop11="ERROR_ALERT"
	s.prop12=msg;
	s.prop13=location.href;
	s.prop14="en";
	s.linkTrackVars="eVar1,eVar21,eVar22,eVar9,prop11,prop12,prop13,prop14,events"
	s.linkTrackEvents="event2"
	s.tl();
}


function tab1SearchAvailability(vectorError)
{

  $('booking-tab1-button').onclick  = new Function("return false;"); 

  

  var comboDiaIni = document.forms['search_form'].en_dia;
  var comboMesAnyoIni = document.forms['search_form'].en_mesano;
  var comboDiaFin = document.forms['search_form'].sa_dia;
  var comboMesAnyoFin = document.forms['search_form'].sa_mesano;

  var diaIn 	= comboDiaIni.options[comboDiaIni.selectedIndex].value;
  var mesanoIn  = comboMesAnyoIni.options[comboMesAnyoIni.selectedIndex].value.split("-");
  var mesIn 	= mesanoIn[0];
  var anyoIn 	= mesanoIn[1];
  var diaOut 	= comboDiaFin.options[comboDiaFin.selectedIndex].value;
  var mesanoOut = comboMesAnyoFin.options[comboMesAnyoFin.selectedIndex].value.split("-");
  var mesOut 	= mesanoOut[0];
  var anyoOut 	= mesanoOut[1];

	
	
  document.forms['search_form'].booking_dia.value    = diaIn;
  document.forms['search_form'].booking_mes.value    = mesIn;
  document.forms['search_form'].booking_anyo.value   = anyoIn;
  document.forms['search_form'].booking_noches.value = restafechas(new Number(diaIn),new Number(mesIn),new Number(anyoIn),new Number(diaOut),new Number(mesOut),new Number(anyoOut));
  
  // ******** NEW PARAMETERS FOR BE V.2 *************
		
		var booking_arrival = new Date(mesIn + '/' + diaIn + '/' + anyoIn);
		var booking_departure = new Date(mesOut + '/' + diaOut + '/' + anyoOut);
		var days = Math.floor(((booking_departure - booking_arrival) / (60*60*24)) / 1000);
		
		if (document.search_form.adultsRoom1){document.search_form.adultsRoom1.value = document.search_form.booking_nPax.value;}
		if (document.search_form.habitaciones){document.search_form.habitaciones.value = document.search_form.booking_nRooms.value;}
		
		if (document.search_form.noches){document.search_form.noches.value = days;}
		
		if (document.search_form.dia_en){document.search_form.dia_en.value = diaIn;}	
		if (document.search_form.mes_en){document.search_form.mes_en.value = mesIn;}
		if (document.search_form.anyo_en){document.search_form.anyo_en.value = anyoIn;}
		
		//if (document.search_form.idLang){document.search_form.idLang.value = msDirLang;}
		
		if (document.search_form.dia_sa){document.search_form.dia_sa.value = diaOut;}
		if (document.search_form.mes_sa){document.search_form.mes_sa.value = mesOut;}
		if (document.search_form.anyo_sa){document.search_form.anyo_sa.value = anyoOut;}
		
		if (document.search_form.codHotel){document.search_form.codHotel.value = document.search_form.codigoHotel.value;}
		
		if (document.search_form.dia){document.search_form.dia.value = diaIn;}
		if (document.search_form.mes){document.search_form.mes.value = mesIn;}
		if (document.search_form.anio){document.search_form.anio.value = anyoIn;}
		
		if (document.search_form.date1){document.search_form.date1.value = diaIn+'/'+mesIn+'/'+anyoIn;}
		if (document.search_form.date2){document.search_form.date2.value = diaOut+'/'+mesOut+'/'+anyoOut;}
		
		//if (document.forms['search_form'].idLang){document.forms['search_form'].idLang.value = diaIn;}
		if (document.search_form.idPartner){document.search_form.idPartner.value = 'HOTEL_'+document.search_form.codigoHotel.value;}
		
		// ******** END NEW PARAMETERS FOR BE V.2 *************

  $('booking-tab1-button').onclick  = new Function("tab1SearchAvailability(vError);"); // Vuelve a activar el botón, para soportar el botón back
  document.forms['search_form'].submit();
}

function statusTab(selectedTab)
{
  var tabs = new Array('tab1','tab2', 'tab3');
 
  switch (selectedTab){
    case 0:
    break;
    case 1:
    $('booking-tab1-tablink').onclick = "";
    break;
  }
}
