


/***********************/

function selectDato(lista, valor){
  for (var i=0;i<lista.length;i++){
    if (lista.options[i].value == valor){
      lista.options[i].selected = true;
    }
  }
}
/*Marzo
Abril
Mayo
Junio
Julio
Agosto
Septiembre
Octubre
Noviembre
Diciembre
Enero
Febrero


L M X J V S D

*/

var dateFormat = 'dd/MM/yyyy';

var calendar   = new CalendarPopup("calendarDiv");

var vError   = new Array("",
                        "",
                        "",
                        "",
                        "");

var yxMonths  = new Array('Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez');

calendar.monthAbbreviations   = yxMonths;

var yxMonthsLarge  = new Array('Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro');

calendar.monthNames  = yxMonthsLarge;

calendar.setDayHeaders("D","S","T","Q","Q","S","S");

//var ayer = new Date(new Date('3/26/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("Por favor, modifique as datas de busca. Não é possível fazer uma reserva de mais de dois meses de duração. ", 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(3)-1,new Number(26),0,0,0);
if('en_us'=='pt'){
  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="pt";
	s.prop11="ERROR_ALERT"
	s.prop12=msg;
	s.prop13=location.href;
	s.prop14="pt";
	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
/*  if (validarNinosSeleccionados()) {
    document.forms['search_form'].submit();
  }else{
    alert("Indique as idades das crianças");
  }*/
}


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/../../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;
  }
}