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

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("Por favor, modifique las fechas de búsqueda. No es posible hacer una reserva de más de dos meses de duración.", 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;
    }
  }
}

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="es";
	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];

  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);
  
  var hotelCode = document.forms['search_form'].codigoHotel.value;

	
  // GET RESULTS FROM FORM INSERTIONS	
  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 = days;
  
  // ******** NEW PARAMETERS FOR BE V.2 *************
  
	if (document.forms['search_form'].noches){document.forms['search_form'].noches.value = days;}
	
	if (document.forms['search_form'].dia_en){document.forms['search_form'].dia_en.value = diaIn;}	
	if (document.forms['search_form'].mes_en){document.forms['search_form'].mes_en.value = mesIn;}
	if (document.forms['search_form'].anyo_en){document.forms['search_form'].anyo_en.value = anyoIn;}
	
	if (document.forms['search_form'].dia_sa){document.forms['search_form'].dia_sa.value = diaOut;}
	if (document.forms['search_form'].mes_sa){document.forms['search_form'].mes_sa.value = mesOut;}
	if (document.forms['search_form'].anyo_sa){document.forms['search_form'].anyo_sa.value = anyoOut;}
	
	if (document.forms['search_form'].codHotel){document.forms['search_form'].codHotel.value = hotelCode;}
	
	if (document.forms['search_form'].dia){document.forms['search_form'].dia.value = diaIn;}
	if (document.forms['search_form'].mes){document.forms['search_form'].mes.value = mesIn;}
	if (document.forms['search_form'].anio){document.forms['search_form'].anio.value = anyoIn;}
	
	if (document.forms['search_form'].date1){document.forms['search_form'].date1.value = diaIn+'/'+mesIn+'/'+anyoIn;}
	if (document.forms['search_form'].date2){document.forms['search_form'].date2.value = diaOut+'/'+mesOut+'/'+anyoOut;}
	
	//if (document.forms['search_form'].idLang){document.forms['search_form'].idLang.value = diaIn;}
	if (document.forms['search_form'].idPartner){document.forms['search_form'].idPartner.value = idPartner+hotelCode;}
	
  // ******** END NEW PARAMETERS FOR BE V.2 *************
  
  
	if(days < 1)
	{
		alert('Please select a valid date range');
		return false;
	}
	else if(booking_arrival < new Date())
	{
		alert('Please select a valid date range');
		return false;
	}

	return true;

  // $('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 validateForm()
{
	var f = document.forms['search_form'];
	f.booking_codHotel.value = f.codigoHotel.value;
 
 	if(f.codigoHotel.value.length < 1)
	{
		alert("Please select a resort");
		return false;
	}

	return tab1SearchAvailability(vError);	
}


function statusTab(selectedTab)
{
  var tabs = new Array('tab1','tab2', 'tab3');
 
  switch (selectedTab){
    case 0:
    
    //$('booking-tab2-tablink').onclick = new Function("tab1SearchAvailability(vError);");
    //$('booking-tab3-tablink').onclick = new Function("return false;");
    //$('booking-tab3-tab').className   = 'disabled';
    //$('booking_right_col').innerHTML 	= "";
    //$('booking-tab3-tablink').href    = "#booking";
    break;
    case 1:
    $('booking-tab1-tablink').onclick = "";
    //$('booking-tab1-tablink').href = "http://www.solmelia.com/microAPP/reservations/jsp/http://www.solmelia.com/microAPP/micro/jsp/C_Home.jsp";
    //$('booking-tab2-tablink').onclick = new Function("tab1SearchAvailability(vError);");
    //$('booking-tab2-button').onclick  = new Function("tab3SelectRoom(vError);");
   // $('booking-tab3-tablink').onclick = new Function("tab3SelectRoom(vError);");
    break;
  }
}

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

function init() {
	var today = new Date();

    loadDate(DateAdd(today.getDate() + 1,today.getMonth(),today.getFullYear(),0,0,0),document.search_form.en_dia,document.search_form.en_mesano);
    loadDate(DateAdd(today.getDate() + 1,today.getMonth(),today.getFullYear(),1,0,0),document.search_form.sa_dia,document.search_form.sa_mesano);
    //$('booking-tab1-button').onclick  = new Function("tab1SearchAvailability(vError);"); 
    var nino;
    
     
        seleccionarDato(document.search_form.bs_habitaciones,''); 
        seleccionarDato(document.search_form.bs_personas,''); 
     
}
var msDirLang='en';
var dateFormat = 'dd/MM/yyyy';

var calendar   = new CalendarPopup("calendarDiv");

var vError   = new Array("Lamentamos informarle de que en estos momentos no podemos atender su petición. Por favor, recargue la página e inténtelo de nuevo.",
                        "Lamentamos informarle de que en estos momentos no podemos atender su petición. Por favor, recargue la página e inténtelo de nuevo.",
                        "Por favor, seleccione una fecha de entrada.",
                        "Por favor, seleccione una fecha de salida.",
                        "Por favor, seleccione una habitación.");

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("Su",
                       "Mo",
                       "Tu",
                       "We",
                       "Th",
                       "Fr",
                       "Sa");


var ayer = new Date(new Date() - 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");

calendar.offsetX   = 0;
calendar.offsetY   = 25;
calendar.actualDay = new Date(new Number(ayer.getDate()),new Number(ayer.getMonth()+1),new Number(ayer.getFullYear()),0,0,0);
if('en_us'=='es'){
  calendar.setWeekStartDay(0); 
  dateFormat = 'MM/dd/yyyy';
}
else{
  calendar.setWeekStartDay(1); 
  dateFormat = 'dd/MM/yyyy';
}


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