var mbserFrm_orig;
var sepGra = "(_)";
var sepArg = "{_A_}";
var sepBloc = "{_B_}";
var sepCtl = "{_C_}";
var sepElem = "{_E_}";
var sepSBloc = "{_S_}";
var lang;
var mbserMeses;
var mbserLabels;
var meses = new Array();
var meses_1 = "Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre";
var meses_2 = "January,February,March,April,May,June,July,August,September,October,November,December";
var meses_3 = "Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre";
var meses_4 = "Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember";
var meses_5 = "Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre";
var meses_6 = "Janeiro,Fevereiro,Março,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro";


var lbls = "lblHotel,lblFechaEntrada,lblNoches,lblHabi,lblAdultos,lblReservar,lblNinos";
var lbls_1 = "Hotel,Fecha de entrada,Noches,Habitaciones,Adultos,RESERVAR,&iquest;Viajas con ni&ntilde;os&#63;";
var lbls_2 = "Hotel,Check-in,Nights,Rooms,Adults,BOOK,Do you travel with children&#63;";
var lbls_3 = "Hôtel,Date d'entrée,Nuits,Chambres,Adults,RÉSERVER,Vous voyagez avec enfants&#63;";
var lbls_4 = "Hotel,Anreisedatum,Nächte,Zimmer,Erwachsene,BUCHEN,Reisen Sie mit Kindern&#63;";
var lbls_5 = "Hotel,Data di Arrivo,Notti,Camere,Adulti,PRENOTA,Viaggiate con bambini&#63;";
var lbls_6 = "Hotel,Data de Entrada,Noites,Quartos,Adultos,RESERVAR,Viaja com crianças&#63;";

function mbserFrmID(n) {
	return document.getElementById("mbser_" + n);
}

function mbserFrm_Inicio() {
    lang = document.getElementById("mbser_lang").value;
	pintarListboxesCombinaciones("", "FechasHab_nHabitacionesFiltro", "panelListboxesCombinaciones");
	InicializaLang(lang);
	traduceBuscador();
	with(document.mbserFrm) {
		var FechaActual	= new Date();
		DiaActual = FechaActual.getDate();
		MesActual = FechaActual.getMonth();
		AnyoActual = FechaActual.getYear();

		if (AnyoActual < 2000)
            AnyoActual += 1900;
		for (i=0; i<3; i++) {
            uselNewOption(mbserFrmID('Anyo'),AnyoActual + i,AnyoActual + i);
		}

		// Rellenar combos de fecha de entrada
		var Dias_Mes = mbserFrm_Calcular_Dias_Mes(MesActual + 1, AnyoActual);
		mbserFrm_Inicializar_sel(1, Dias_Mes, mbserFrmID('Dia'));

		mbserFrm_Rellenar_Meses('Mes');

		// Seleccionar dia, mes y anyo actual
		mbserFrm_Seleccionar_Dia(DiaActual, MesActual, "0", "Dia", "Mes", "Anyo");

		// Rellenar combo de noches
		mbserFrm_Inicializar_sel(1, 10, mbserFrmID("Noches"));
	}
	if(typeof(mbserFrm_orig) == "function")
		mbserFrm_orig();
}

function mbserFrm_Inicializar_sel(ni, nf, sel) {
	var i; 
	for (i = ni; i <= nf; i++)
	    uselNewOption(sel, "" + i + "", i);
}

function mbserFrm_Rellenar_Meses(Mes) {
	uselNewOption(mbserFrmID(Mes), meses[0], 1);
	uselNewOption(mbserFrmID(Mes), meses[1], 2);
	uselNewOption(mbserFrmID(Mes), meses[2], 3);
	uselNewOption(mbserFrmID(Mes), meses[3], 4);
	uselNewOption(mbserFrmID(Mes), meses[4], 5);
	uselNewOption(mbserFrmID(Mes), meses[5], 6);
	uselNewOption(mbserFrmID(Mes), meses[6], 7);
	uselNewOption(mbserFrmID(Mes), meses[7], 8);
	uselNewOption(mbserFrmID(Mes), meses[8], 9);
	uselNewOption(mbserFrmID(Mes), meses[9], 10);
	uselNewOption(mbserFrmID(Mes), meses[10], 11);
	uselNewOption(mbserFrmID(Mes), meses[11], 12);
}

function mbserFrm_Seleccionar_Dia(DiaActual, MesActual, AnyoActual, Dia, Mes, Anyo) {
	with(document.mbserFrm) {
		var comboDias = eval("mbserFrmID(Dia)");
		var comboMeses = eval("mbserFrmID(Mes)");
		var comboAnyos = eval("mbserFrmID(Anyo)");
	}
	comboAnyos[AnyoActual].selected = true;
	comboMeses[MesActual].selected = true;
	comboDias[DiaActual - 1].selected = true;
}

function mbserFrm_Rellenar_Dias_Mes() {
	// Guardar el día seleccionado
	var mbserFrm_Dia = mbserFrmID('Dia').selectedIndex;

	uselVaciar(mbserFrmID('Dia'));
	var mbserFrm_Dias_Mes = mbserFrm_Calcular_Dias_Mes(mbserFrmID('Mes').value, mbserFrmID('Anyo').value);
	mbserFrm_Inicializar_sel(1, mbserFrm_Dias_Mes, mbserFrmID('Dia'));

	// Seleccionar el día anteriormente seleccionado
	if (mbserFrm_Dia + 1 > mbserFrm_Dias_Mes) mbserFrm_Dia = mbserFrm_Dias_Mes - 1;
	mbserFrmID('Dia')[mbserFrm_Dia].selected = true;
}

function mbserFrm_Calcular_Dias_Mes(Mes, Anyo) {
	return Mes==2?28+(!(Anyo%400)||(Anyo%100&&!(Anyo%4))):30+(Mes&1)^(Mes>7);
}

function Enviar_Frm(objFrm)
{
	objFrm.submit();
	return false;
}

function uselVaciar(o) { // Vacía el select pasado.
	while(o.length) {
		o.options[o.length] = null;
		o.length--;
	}
}

function uselNewOption(o,Texto,Clv) { // Inserta un nuevo option.
	o.options[o.length] = new Option(Texto, Clv);
}

function pintarListboxesCombinaciones(ind, controlId, panelListboxes) {
	var thabits = new Array(1);
	thabits[1]= new Array(2);
	thabits[1][0] = 1;
	thabits[1][1] = 0;
    var ctlId = "";
    var idHabs = "";
    if (ind == undefined) {
        ind = "";
    }
	if(controlId == undefined) {
	    controlId = "FechasHab_nHabitacionesFiltro";
	}
	pintarTablaDatos(ind, controlId, panelListboxes); //escribe las filas con 2ad y 0ni
	var idHabs = controlId + ind;
	with (window.document.forms["mbserFrm"]) {
		for (var j = 1; j < thabits.length; j++) {
		    if(document.getElementById(idHabs).value >= j) {
		        ctlId = "nAdultosHab_" + j + "_Filtro" + ind;
			    elements[ctlId].value = thabits[j][0];
			}
		}
	} //end with
}

function pintarTablaDatos(indice)
{
   var objPanel;
   var mbser = "";
   var indice;
   var numeroHabitaciones;

   objPanel = document.getElementById("panelListboxesCombinaciones");
   numeroHabitaciones = document.getElementById("FechasHab_nHabitacionesFiltro").value;
   if (numeroHabitaciones == "")
   {
      alert("Para reservar mÃƒÂ¡s de 10 habitaciones pÃƒÂ³ngase en contacto con nosotros.");
      $F("FechasHab_nHabitacionesFiltro").item(0).selected = true;
      numeroHabitaciones = 1;
   }
   indice = 1;

   while (indice <= numeroHabitaciones)
   {
      mbser += 			"<select id='nAdultosHab_" + indice + "_Filtro'>";
      mbser += 				"<option value='1' selected>1</option>";
      mbser += 				"<option value='2'>2</option>";
      mbser += 				"<option value='3'>3</option>";
      mbser += 				"<option value='4'>4</option>";
      mbser += 				"</select><br />";

      indice ++ ;
   }
   objPanel.innerHTML = mbser;
   return true;
}

function InicializaLang(lang) {
    switch(lang) {
        case "1":
            mbserMeses = meses_1;
            mbserLabels = lbls_1;
            break;
        case "2":
            mbserMeses = meses_2;
            mbserLabels = lbls_2;
            break;
        case "3":
            mbserMeses = meses_3;
            mbserLabels = lbls_3;
            break;
        case "4":
            mbserMeses = meses_4;
            mbserLabels = lbls_4;
            break;
        case "5":
            mbserMeses = meses_5;
            mbserLabels = lbls_5;
            break;
        case "6":
            mbserMeses = meses_6;
            mbserLabels = lbls_6;
            break;
    }
}

function traduceBuscador()
{
    var arrIdLbls = new Array();
    var traduc = new Array();
    
    meses = mbserMeses.split(",");
    arrIdLbls = lbls.split(",");
    traduc = mbserLabels.split(",");
    
    for (var i = 0; i < arrIdLbls.length; i++) {
        document.getElementById(arrIdLbls[i]).innerHTML = traduc[i];
    }
    GetMaxHabits();
}

function mbser_cambiahotel() {
    var hotel = document.getElementById("mbser_selhotel");
    var codHotel = document.getElementById("mbser_codhotel");
    codHotel.value = hotel.options[hotel.selectedIndex].value;
    GetMaxHabits();
}

function getValoresForm(nomsCtl) {    
    var ctl = nomsCtl.split(",");
    var resul = "";
    var nCtl = ctl.length;
    var subSep = sepElem;
    var separador = sepCtl;
    for (var i = 0; i < nCtl; i++) {
        var tipo = ctl[i].substring(0, 3);
        var subCtl = ctl[i].split("|");
        var embseraSel = false;
        var nSCtl = subCtl.length;
        for (var j = 0; j < nSCtl; j++) {
			var control = document.getElementById(subCtl[j]);			
			if (control != null) {
				if (tipo == "sel" || tipo == "txt" || tipo == "hid" || tipo == "tar" || tipo == "pwd") {				
					resul += control.value;
				} else if (tipo == "chk" || tipo == "rad") {
					if (control.checked) {
						resul += "{true}";
					} else {
						resul += "{false}";
					}                
				} else if (tipo == "hlk") {
					resul += control.href;
				} else if (tipo == "spa" || tipo == "lbl" || tipo == "div") {
					resul += control.innerHTML;
				} else {
				    resul += control.value;
				}								
				if (i < nCtl - 1) {
					if (nSCtl > 1 && j < nSCtl - 1 && tipo != "rad") {
						resul += subSep;
					} 
				}
			}			
		}
		if (i < nCtl - 1) {
			resul += separador;		
		}		
    }      
    return resul;
}

function getDatosReservaMb(tipo) {
    var nHab = parseInt(document.getElementById("FechasHab_nHabitacionesFiltro").value);
    var adultos = 0;
    var datos = "";
    var valor;
    for (var i = 1; i < nHab + 1; i++) {
        valor = document.getElementById("nAdultosHab_" + i + "_Filtro").value;        
        adultos += parseInt(valor);
        if (i > 1) {
            datos += "|";
        }
        datos += "adultos:" + valor + "{_A_}ninos:0{_A_}bebes:0{_A_}";
    }
    var Dia = document.getElementById("mbser_Dia");
    var Mes = document.getElementById("mbser_Mes");
    var selAnyo = document.getElementById("mbser_Anyo");
    var fechaEnt = new Date(parseInt(selAnyo.options[selAnyo.selectedIndex].value), parseInt(Mes.options[Mes.selectedIndex].value - 1), parseInt(Dia.options[Dia.selectedIndex].value));
    var selNoches = document.getElementById("mbser_Noches");
    var milisegundos = parseInt(selNoches.options[selNoches.selectedIndex].value * 24 * 60 * 60 * 1000);
//    var fechaSal = new Date();
//    fechaSal.setTime(parseInt(fechaEnt.getTime() + milisegundos));
    var fechaSal = new Date(parseInt(selAnyo.options[selAnyo.selectedIndex].value), parseInt(Mes.options[Mes.selectedIndex].value - 1), parseInt(Dia.options[Dia.selectedIndex].value));
    fechaSal.setMilliseconds(milisegundos);
    
    var strFechaEnt, strFechaSal; // Formateamos las fechas
    var mo, day, yr;
    day = fechaEnt.getDate();
    mo = fechaEnt.getMonth() + 1;
    yr = fechaEnt.getFullYear();
    strFechaEnt = ((day < 10) ? "0" + String(day) : String(day)) + "/" + ((mo < 10) ? "0" + String(mo) : String(mo)) + "/" + String(yr);
    
    day = fechaSal.getDate();
    mo = fechaSal.getMonth() + 1;
    yr = fechaSal.getFullYear();
    strFechaSal = ((day < 10) ? "0" + String(day) : String(day)) + "/" + ((mo < 10) ? "0" + String(mo) : String(mo)) + "/" + String(yr);
    
    if(tipo == null) tipo = "reservar";
    
    var mbserFrm = document.getElementById("mbserFrm");
    var params = "main" + sepGra + "reservar" + sepGra + "iniciaMB"
        + sepBloc + mbserFrm.mbser_codhotel.value + sepCtl + strFechaEnt + sepCtl 
        + strFechaSal + sepCtl + getValoresForm("mbser_Noches,FechasHab_nHabitacionesFiltro") + sepCtl + adultos + sepCtl
        + mbserFrm.mbser_codhotel.value + sepCtl + datos + sepCtl + sepCtl + getIdioma(mbserFrm.mbser_lang.value) + sepCtl + sepSBloc + mbserFrm.mbser_redirector.value + sepArg 
        + mbserFrm.mbser_lang.value + sepArg + tipo;
    //alert(params);
    
    var datos = document.getElementById("mbser_datos");
    datos.value = params;
    Enviar_Frm(mbserFrm);
}

/* Max. Habitaciones */
function GetMaxHabits() 
{
    var num = "8";
    var encontrado = false;
    var codHotel = document.getElementById("mbser_codhotel").value;
    for (var i = 0; i < listamaxhabs.length && !encontrado; i++) {
        if(listamaxhabs[i][0] == codHotel) {
            num = listamaxhabs[i][1];
            encontrado = true;
        }
    }
    var selHab = document.getElementById("FechasHab_nHabitacionesFiltro");
    selHab.innerHTML = "";
    for(var i=1; i < parseInt(num) + 1; i++) {
        var laOpcion = document.createElement("OPTION");  
        laOpcion.appendChild(document.createTextNode(parseInt(i)));  
        laOpcion.setAttribute("value",i);
        selHab.appendChild(laOpcion);  
    }
}

function getIdioma(codidioma)
{
    var lang;
    switch (codidioma) {
        case "1":
            lang = "es";
            break;
        case "2":
            lang = "en";
            break;
        case "3":
            lang = "fr";
            break;
        case "4":
            lang = "de";
            break;
        case "5":
            lang = "it";
            break;
        case "6":
            lang = "pt";
            break;    
    }
    
    return lang;
}