/************AJAX************/

var READY_STATE_UNINITIALIZED = 0;
var READY_STATE_LOADING = 1;
var READY_STATE_LOADED = 2;
var READY_STATE_INTERACTIVE = 3;
var READY_STATE_COMPLETE = 4;

var peticion_http;

function cargaContenido(url, metodo, funcion) {
    peticion_http = inicializa_xhr();

    if (peticion_http) {
        peticion_http.onreadystatechange = funcion;
        peticion_http.open(metodo, url, true);
        peticion_http.send(null);
    }
}

function inicializa_xhr() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
}

/************VARIABLES************/
var MAXNUM_NOCHES = 14;
var MAXNUM_HABS = 4;
var MAXNUM_ADULTOS = 6;
var MAXNUM_NENS = 3;
var MAXNUM_POBSHOWED = 10;
var CX_NOM_SELECTED = -1;
var CX_NOM_FIRST_CLICK = 0;
var poblacionesLayer = null;
var arrayPobShowed = null;
var destinoEscrito = null;
var destinoBuscar = null;
var destinoMostrado = null;
var tipoDestino = null;
var idiomaCalendar = "es";
var arrayIdiomasCalendar = ["es","es","en-GB","fr","de","it","pt-BR"];

var shabitaciones1;
var shabitaciones2;
var shabitaciones3;
var socupacion1;
var socupacion2;
var socupacion3;
var socupacion4;

var nombrePoblacionSeleccionada = "";
var indexPoblacionSeleccionada = -1;
var keydown = false;
var overItems = false;
var CX_NOM_INITIAL = true;


function inicializaMotorEstatico(){
    fillNumNochesOptions();
    fillNumHabOptions();
    fillNumAdultos();
    fillNumNens();
	addEvents();
    loadParameters();
}
/**************************POBLACIONES***********************************************/

function cssPobNoSeleccionada(i){
    eval("$('#itemPob"+i+"').css({'color':'#5FA2CF', 'border':'solid 1px #FFFFFF'});");
    eval("$('#itemPob"+i+"').hover( function(){$(this).css({'color':'#515151', 'border':'solid 1px #86C3EC'});} )");
    eval("$('#itemPob"+i+"').mouseout( function(){$(this).css({'color':'#5FA2CF', 'border':'solid 1px #FFFFFF'});} )");
}

function getNombresLayerNombres() {
    if(!keydown){
        CX_NOM_INITIAL = false;
        $("#cx_noms").val($("#cx_noms").val().toUpperCase());

        //Quita los acentos
        var regexA = /[Á|À|Â|Ä]/g;
        var regexE = /[É|È|Ê|Ë]/g;
        var regexI = /[Í|Ì|Î|Ï]/g;
        var regexO = /[Ó|Ò|Ô|Ö]/g;
        var regexU = /[Ú|Ù|Û|Ü]/g;

        $("#cx_noms").val($("#cx_noms").val().replace(regexA,"A"));
        $("#cx_noms").val($("#cx_noms").val().replace(regexE,"E"));
        $("#cx_noms").val($("#cx_noms").val().replace(regexI,"I"));
        $("#cx_noms").val($("#cx_noms").val().replace(regexO,"O"));
        $("#cx_noms").val($("#cx_noms").val().replace(regexU,"U"));

        destinoEscrito = $("#cx_noms").val();
        if ($("#cx_noms").val().length >= 3) {
            indexPoblacionSeleccionada = -1;
            cargaContenido("/servlet/generalcoms.getNomsCercadorHA?idioma=" + $("#_top_idioma").val() + "&inicials=" + $("#cx_noms").val().substring(0, 3), "GET", muestraLayerNombres);
        }else{
            $('#pobLayer').css('display', 'none');
            showInputs();
        }
    }else{keydown=false;}
}

function muestraLayerNombres() {
    if (peticion_http.readyState == READY_STATE_COMPLETE) {
        if (peticion_http.status == 200) {
            eval("poblacionesLayer=" + peticion_http.responseText);
            poblacionesLayer.shift();//Elimina el primer elemento que en esta consulta siempre está vacío

            /*
            $("#itemPob0").remove();
            $("#itemPob1").remove();
            $("#itemPob2").remove();
            $("#itemPob3").remove();
            $("#itemPob4").remove();
            $("#itemPob5").remove();
            $("#itemPob6").remove();
            $("#itemPob7").remove();
            $("#itemPob8").remove();
            $("#itemPob9").remove();//Borro los items
            */
            $('div[class="pobLayerItem"]').remove();
            arrayPobShowed = new Array();
            var numItem = 0;
            for (var i=0; i<poblacionesLayer.length;i++){
                if (poblacionesLayer[i].search($("#cx_noms").val()) > -1 && numItem<MAXNUM_POBSHOWED){
                    if($("#cx_noms").val().indexOf("HOT") == 0 && poblacionesLayer[i].indexOf("[hotel]") > -1){} //No mostrar si empieza por "HOT" y es un hotel
                    else{
                        arrayPobShowed[numItem] = i;
                        numItem++;
                    }
                }
            }
            if(arrayPobShowed.length>=1){
                for (var i=0; i<arrayPobShowed.length;i++){
                    $("#pobLayer").append("<div class='pobLayerItem' id='itemPob" + i.toString() + "' onmouseover='overItems=true;updateCX_noms(" + i + ");' onmouseout='setCX_nomsDestinoEscrito();overItems=false;' onclick='setCX_noms(" + i + ");'>" + poblacionesLayer[arrayPobShowed[i]] + "</div>");
                }
                hideInputs(arrayPobShowed.length);
                $('#pobLayer').css('display', 'block');
            }else{$('#pobLayer').css('display', 'none'); showInputs();}
        }
    }
}

function updateCX_noms(i) {
    if(i==CX_NOM_SELECTED) $("#cx_noms").val(destinoEscrito);
    else $("#cx_noms").val(poblacionesLayer[arrayPobShowed[i]].substring(0, poblacionesLayer[arrayPobShowed[i]].indexOf(" [")));
}

function setCX_noms(i) {

    poblacionesLayer[arrayPobShowed[i]] = trim(poblacionesLayer[arrayPobShowed[i]]);
    destinoEscrito = poblacionesLayer[arrayPobShowed[i]].substring(0, poblacionesLayer[arrayPobShowed[i]].indexOf(" ["));
    if (poblacionesLayer[arrayPobShowed[i]].search("poblacion") > -1 || poblacionesLayer[arrayPobShowed[i]].search("stadt") > -1 || poblacionesLayer[arrayPobShowed[i]].search("citta") > -1 || poblacionesLayer[arrayPobShowed[i]].search("city") > -1 || poblacionesLayer[arrayPobShowed[i]].search("ville") > -1 || poblacionesLayer[arrayPobShowed[i]].search("populaçao") > -1) {
        tipoDestino = "P";
        nombrePoblacionSeleccionada = "";
    } else if (poblacionesLayer[arrayPobShowed[i]].search("region") > -1 || poblacionesLayer[arrayPobShowed[i]].search("gegend") > -1 || poblacionesLayer[arrayPobShowed[i]].search("regione") > -1 || poblacionesLayer[arrayPobShowed[i]].search("regiao") > -1) {
        tipoDestino = "R";
        nombrePoblacionSeleccionada = "";
    }else if (poblacionesLayer[arrayPobShowed[i]].search("hotel") > -1) {
        var tx_hotel = poblacionesLayer[arrayPobShowed[i]];
        if(tx_hotel.indexOf("[hotel - ") > -1){
            //nombre de poblacion
            nombrePoblacionSeleccionada = tx_hotel.substring(tx_hotel.lastIndexOf("[hotel - ") + 9 ).slice(0, -1);
        }else{
            nombrePoblacionSeleccionada = "";
        }
        tipoDestino = "H";
    }
    //$("#desti").html(tipoDestino);
    $("#cx_noms").val(destinoEscrito);
    $('#pobLayer').css('display', 'none');
    showInputs();

}

function setCX_nomsDestinoEscrito() {
    $("#cx_noms").val(destinoEscrito);
}

/**************************ADD EVENTS***********************************************/
function addEvents(){
    $("#numHabitaciones").change(function(){
        onchangeNumHabs(this);
    });

    $("#adultos1").change(function(){
        onchangeAdultos(this, 1);
    });
    $("#adultos2").change(function(){
        onchangeAdultos(this, 2);
    });
    $("#adultos3").change(function(){
        onchangeAdultos(this, 3);
    });
    $("#adultos4").change(function(){
        onchangeAdultos(this, 4);
    });

    $("#divImgDatePickerEntrada").click(function(){
        $("#datepickerEntrada").trigger("focus");
    });
    $("#divImgDatePickerSalida").click(function(){
        $("#datepickerSalida").trigger("focus");
    });

    idiomaCalendar = arrayIdiomasCalendar[mIdioma];
    $.datepicker.setDefaults( $.datepicker.regional[ idiomaCalendar ] );    

    $( "#datepickerEntrada" ).datepicker({
            onSelect: function(date) {
                var date2 = $('#datepickerEntrada').datepicker('getDate', '+1d');
                date2.setDate(date2.getDate()+1);
                $('#datepickerSalida').datepicker('setDate', date2);
                $('#numNoches').val(days_between($('#datepickerEntrada').datepicker('getDate', '+1d'), $('#datepickerSalida').datepicker('getDate', '+1d')));
            },
            numberOfMonths: 2,
            minDate:0,
            showButtonPanel: true
    });

    $( "#datepickerSalida" ).datepicker({
            beforeShow: function(){
                var startDate = $("#datepickerEntrada").datepicker('getDate');
                var _dateIn = new Date(startDate.getFullYear(),startDate.getMonth(),startDate.getDate() + 1);
                var _dateOut = new Date(startDate.getFullYear(),startDate.getMonth(),startDate.getDate() + MAXNUM_NOCHES);
                if (startDate != null) {
                    $(this).datepicker('option', 'minDate',_dateIn);
                    //$(this).datepicker('option', 'maxDate',_dateOut);
                }
            },
        
            onSelect: function(date){
                var difference = difference_between( $('#datepickerSalida').datepicker('getDate', '+1d'), $('#datepickerEntrada').datepicker('getDate', '+1d'));
                if(difference<=0){
                    openDialogMessage(titleAlertFechaIncorrecta[mIdioma], msgFechas2[mIdioma]);
                    var date2 = $('#datepickerEntrada').datepicker('getDate', '+1d');
                    date2.setDate(date2.getDate()+1);
                    $('#datepickerSalida').datepicker('setDate', date2);
                    $('#numNoches').val(days_between($('#datepickerEntrada').datepicker('getDate', '+1d'), $('#datepickerSalida').datepicker('getDate', '+1d')));
                }else if(difference>MAXNUM_NOCHES){
                    var date2 = $('#datepickerEntrada').datepicker('getDate', '+1d');
                    date2.setDate(date2.getDate()+1);
                    $('#datepickerSalida').datepicker( "disable" ).datepicker('setDate', date2).datepicker( "enable" );
                    $("#dialog").html("");
                    $("#dialog").attr("title",titleAlertNumNoches[mIdioma]);
                    $("#dialog").append(msgFechas3[mIdioma]);
                    $("#dialog").dialog();
                }
                $('#numNoches').val(days_between($('#datepickerEntrada').datepicker('getDate', '+1d'), $('#datepickerSalida').datepicker('getDate', '+1d')));
            },
            numberOfMonths: 2,
            //minDate:1,
            showButtonPanel: true
    });

    $("#cx_noms").keydown(function(event) {
            if((event.keyCode==40 || event.keyCode==38) && $("#cx_noms").val().length >= 3 && arrayPobShowed.length>=1){
                keydown = true;
                if(indexPoblacionSeleccionada==CX_NOM_SELECTED){
                    if(event.keyCode==40) indexPoblacionSeleccionada = 0;
                    if(event.keyCode==38) indexPoblacionSeleccionada = arrayPobShowed.length-1;
                }else{
                    if(event.keyCode==40){
                        if(indexPoblacionSeleccionada == (arrayPobShowed.length-1)) indexPoblacionSeleccionada = CX_NOM_SELECTED;
                        else if(indexPoblacionSeleccionada < (arrayPobShowed.length)) indexPoblacionSeleccionada++;
                    }
                    if(event.keyCode==38){
                        if(indexPoblacionSeleccionada == 0) indexPoblacionSeleccionada = CX_NOM_SELECTED;
                        if(indexPoblacionSeleccionada > 0) indexPoblacionSeleccionada--;
                    }
                }

                for(var i = 0; i < arrayPobShowed.length; i++){
                    if(i==indexPoblacionSeleccionada){
                        eval("$('#itemPob"+i+"').css({'color':'#515151', 'border':'solid 1px #86C3EC'});");
                    }
                    else{
                        cssPobNoSeleccionada(i);
                    }
                }
                updateCX_noms(indexPoblacionSeleccionada);
            }


            else if(event.keyCode==13 && $("#cx_noms").val().length >= 3){//ENTER
                keydown = true;
                if(arrayPobShowed.length>0 && indexPoblacionSeleccionada == -1) setCX_noms(0);
                else setCX_noms(indexPoblacionSeleccionada);
            }

    });

    $("#cx_noms").focusout(function(){
        if(!overItems){
            $('#pobLayer').css('display', 'none');
            showInputs();
        }
    });

    $("#cx_noms").click(function(){
        if(CX_NOM_FIRST_CLICK == 0){ CX_NOM_FIRST_CLICK=1; $("#cx_noms").val("");}
    });

    $("#numNoches").change(function(){
        var date2 = $('#datepickerEntrada').datepicker('getDate', '+1d');
        if(date2!=null){
            date2.setDate(date2.getDate()+parseInt($("#numNoches :selected").text()));
            $('#datepickerSalida').datepicker('setDate', date2);
        }else{
            $("#dialog").html("");
            $("#dialog").attr("title","Fecha de entrada no encontrada");
            $("#dialog").append("Debes definir una fecha de entrada.");
            $("#dialog").dialog();
        }
    });

    $("#botonBuscar").click(function(){
        sendSearch();
    });

}

/**************************EVENTOS***************************************************/
function onchangeNumHabs(campoNumHab){
    loadNumHabs($(campoNumHab).val());
}

function onchangeAdultos(selectorAdultos, num){
    var options = $("#nens"+num).attr('options');
    if( $(selectorAdultos).val() == 1 || $(selectorAdultos).val() == 2 ){
        options.length=0;
        var j = 0;
        for(var i=0; i<=MAXNUM_NENS;i++){
            options[j] = new Option(i, i, false, false);
            j++;
        }
          $("select#nens"+num+" option[value='0']").attr("selected", "selected");
    }else{
        options.length=0;
        options[0] = new Option(0, 0, false, false);
    }
}
/**************************FILL CAMPOS***********************************************/
function fillNumNochesOptions(){
    var options = $('#numNoches').attr('options');
    var j = 0;
    for(var i=1; i<=MAXNUM_NOCHES;i++){
        //if(i==1) options[i] = new Option(i, i, true, false);
        options[j] = new Option(i, i, false, false);
        j++;
    }
    $("select#numNoches option[value='1']").attr("selected", "selected");
}

function fillNumHabOptions(){
    var options = $('#numHabitaciones').attr('options');
    var j = 0;
    for(var i=1; i<=MAXNUM_HABS;i++){
        options[j] = new Option(i, i, false, false);
        j++;
    }
    $("select#numHabitaciones option[value='1']").attr("selected", "selected");
}

function fillNumAdultos(){
    var options1 = $("#adultos1").attr('options');
    var options2 = $("#adultos2").attr('options');
    var options3 = $("#adultos3").attr('options');
    var options4 = $("#adultos4").attr('options');
    var j = 0;
    for(var i=1; i<=MAXNUM_ADULTOS;i++){
        options1[j] = new Option(i, i, false, false);
        options2[j] = new Option(i, i, false, false);
        options3[j] = new Option(i, i, false, false);
        options4[j] = new Option(i, i, false, false);
        j++;
    }
    $("select#adultos1 option[value='2']").attr("selected", "selected");
    $("select#adultos2 option[value='1']").attr("selected", "selected");
    $("select#adultos3 option[value='1']").attr("selected", "selected");
    $("select#adultos4 option[value='1']").attr("selected", "selected");
}

function fillNumNens(){
    var options1 = $("#nens1").attr('options');
    var options2 = $("#nens2").attr('options');
    var options3 = $("#nens3").attr('options');
    var options4 = $("#nens4").attr('options');
    var j = 0;
    for(var i=0; i<=MAXNUM_NENS;i++){
        options1[j] = new Option(i, i, false, false);
        options2[j] = new Option(i, i, false, false);
        options3[j] = new Option(i, i, false, false);
        options4[j] = new Option(i, i, false, false);
        j++;
    }
    $("select#adultos1 option[value='0']").attr("selected", "selected");
    $("select#adultos2 option[value='0']").attr("selected", "selected");
    $("select#adultos3 option[value='0']").attr("selected", "selected");
    $("select#adultos4 option[value='0']").attr("selected", "selected");
}

/**************************COMPATIBILIDAD Z-INDEX******************************************/
function hideInputs(numItems){//Solución que propongo para no pelearnos con los z-index en todos los Internet Explorers
    if($('#pobLayer').width()>328) $('#divImgDatePickerSalida').css('display', 'none');
    $('#divDatePickerEntrada').css('display', 'none');
    $('#divLabelSalida').css('display', 'none');
    $('#divInputDatePickerSalida').css('display', 'none');

    if(numItems>=2){
        $('#numHabitaciones').css('display', 'none');
        $('#tituloAdultos1').css('display', 'none');
        $('#tituloNens1').css('display', 'none');
        $('#labelHab1').css('display', 'block');
        $('#adultos1').css('display', 'block');
        $('#nens1').css('display', 'block');
        $('#labelHab3').css('display', 'block');
        $('#adultos3').css('display', 'block');
        $('#nens3').css('display', 'block');
        if(numItems>=3){
            $('#labelHab1').css('display', 'none');
            $('#adultos1').css('display', 'none');
            $('#nens1').css('display', 'none');
            $('#labelHab3').css('display', 'block');
            $('#adultos3').css('display', 'block');
            $('#nens3').css('display', 'block');
            if(numItems>3){
                $('#labelHab3').css('display', 'none');
                $('#adultos3').css('display', 'none');
                $('#nens3').css('display', 'none');
            }
        }
    }else{
        $('#numHabitaciones').css('display', 'block');
        $('#tituloAdultos1').css('display', 'block');
        $('#tituloNens1').css('display', 'block');
        $('#labelHab1').css('display', 'block');
        $('#adultos1').css('display', 'block');
        $('#nens1').css('display', 'block');
        $('#labelHab3').css('display', 'block');
        $('#adultos3').css('display', 'block');
        $('#nens3').css('display', 'block');
    }
}

function showInputs(){//Solución que propongo para no pelearnos con los z-index en todos los Internet Explorers
    $('#divImgDatePickerSalida').css('display', 'block');
    $('#divDatePickerEntrada').css('display', 'block');
    $('#divLabelSalida').css('display', 'block');
    $('#divInputDatePickerSalida').css('display', 'block');
    $('#numHabitaciones').css('display', 'block');
    $('#tituloAdultos1').css('display', 'block');
    $('#tituloNens1').css('display', 'block');
    $('#labelHab1').css('display', 'block');
    $('#adultos1').css('display', 'block');
    $('#nens1').css('display', 'block');
    $('#labelHab3').css('display', 'block');
    $('#adultos3').css('display', 'block');
    $('#nens3').css('display', 'block');

}

/***********ÚTILES***********/

function trim(cdn) {
    for (i = 0; i < cdn.length;) {
        if (cdn.charAt(i) == " ")
            cdn = cdn.substring(i + 1, cdn.length);
        else
            break;
    }
    for (i = cdn.length - 1; i >= 0; i = cdn.length - 1) {
        if (cdn.charAt(i) == " ")
            cdn = cdn.substring(0, i);
        else
            break;
    }
    return cdn;
}

function days_between(date1, date2) {
    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24
    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()
    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)
    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY)
}

function difference_between(date1, date2){
    var one_day=1000*60*60*24;
    return Math.ceil((date1.getTime()-date2.getTime())/(one_day));
}

/**************************SEND SEARCH******************************************/
function sendSearch(){
    if(validaDestino()){
        if(validaFechas()){
            $("#secacc").val(mSecacc);
            $("#_top_idioma").val(mIdioma);
            var entDay      = "0" + $("#datepickerEntrada").datepicker("getDate").getDate();
            var salDay      = "0" + $("#datepickerSalida").datepicker("getDate").getDate();
            var entMonth    = "0" + ($("#datepickerEntrada").datepicker("getDate").getMonth()+1);
            var salMonth    = "0" + ($("#datepickerSalida").datepicker("getDate").getMonth()+1);
            $("#fent_dia").val(entDay.substring(entDay.length-2, entDay.length));
            $("#fent_mes").val(entMonth.substring(entMonth.length-2, entMonth.length));
            $("#fent_any").val($( "#datepickerEntrada" ).datepicker( "getDate" ).getFullYear());
            $("#fsal_dia").val(salDay.substring(salDay.length-2, salDay.length));
            $("#fsal_mes").val(salMonth.substring(salMonth.length-2, salMonth.length));
            $("#fsal_any").val($( "#datepickerSalida" ).datepicker( "getDate" ).getFullYear());
            $("#desti").val($("#cx_noms").val());
            if(tipoDestino == null){
                if(mTipoDestino == ""){
                    openDialogMessage(titleAlertDestino[mIdioma], msgDestino[mIdioma]);
                    exit;
                }else
                    $("#tipus_desti").val(mTipoDestino);
            }
            else
                $("#tipus_desti").val(tipoDestino);
            $("#nits").val(parseInt($("#numNoches :selected").text()));
            $("#marca").val(mMarca);
            $("#fltserv").val(mfltserv);
            $("#fltpre").val(mfltpre);
            $("#fltctg").val(mfltctg);
            
            $("#nompobhotrep").val(nombrePoblacionSeleccionada);

            if(validaOcupacion()){
                $("#layerSombra").height($("body").outerHeight());
                $("#layerSombra").css('display', 'block');
                $("#textLayerSombra").css('display', 'block');                
                $("#textLayerSombra").html(textoLayerSombra[mIdioma]);                
                document.frm1.submit();
            }else{
               openDialogMessage(titleAlertOcup[mIdioma], msgOcup[mIdioma]);
            }
        }else{
            openDialogMessage(titleAlertFechaIncorrecta[mIdioma], msgFechas1[mIdioma]);
        }
    }else{
            openDialogMessage(titleAlertDestino[mIdioma], msgDestino[mIdioma]);
    }
}

/**************************VALIDACIONES******************************************/
function validaFechas(){
    var dateEntrada = $('#datepickerEntrada').datepicker('getDate', '+1d');
    var dateSalida = $('#datepickerSalida').datepicker('getDate', '+1d');
    return !(dateEntrada==null || dateSalida==null);
}

function validaDestino(){
   //return !($("#cx_noms").val().search(mDestino) > -1 || $("#cx_noms").val()=="" || $("#cx_noms").val()==null);
    return !($("#cx_noms").val()=="" || $("#cx_noms").val()==null);
}

function validaOcupacion(){
    var numHabs = parseInt($("#numHabitaciones :selected").text());

    shabitaciones1 = null;
    shabitaciones2 = null;
    shabitaciones3 = null;

    var socupacion = [parseInt($("#adultos1 :selected").text()) + "-" + parseInt($("#nens1 :selected").text()), parseInt($("#adultos2 :selected").text()) + "-" + parseInt($("#nens2 :selected").text()), parseInt($("#adultos3 :selected").text()) + "-" + parseInt($("#nens3 :selected").text()), parseInt($("#adultos4 :selected").text()) + "-" + parseInt($("#nens4 :selected").text())];
    var socupacionAux = [parseInt($("#adultos1 :selected").text()) + "-" + parseInt($("#nens1 :selected").text()), parseInt($("#adultos2 :selected").text()) + "-" + parseInt($("#nens2 :selected").text()), parseInt($("#adultos3 :selected").text()) + "-" + parseInt($("#nens3 :selected").text()), parseInt($("#adultos4 :selected").text()) + "-" + parseInt($("#nens4 :selected").text())];
    var errorNumTipos = false;

    if(numHabs == 1){
        shabitaciones1 = 1;
        socupacion1 = socupacion[0];
    }else if(numHabs == 2){
        if(socupacion[0] == socupacion[1]){
            shabitaciones1 = 2;
            socupacion1 = socupacion[0];
        }else{
            shabitaciones1 = 1;
            shabitaciones2 = 1;
            socupacion1 = socupacion[0];
            socupacion2 = socupacion[1];
        }
    }else if(numHabs == 3 || numHabs == 4){

        shabitaciones1 = null;
        shabitaciones2 = null;
        shabitaciones3 = null;
        socupacion1 = null;
        socupacion2 = null;
        socupacion3 = null;

        var numRepeticiones = 0;
        var count=0;
        for(var i=0; i<numHabs && !errorNumTipos; i++){
            if(socupacionAux[i] != null){
                numRepeticiones = 0;
                for(var j=(i+1); j<numHabs && !errorNumTipos; j++){
                    count++;
                    if(socupacionAux[j]!=null && socupacionAux[i] == socupacion[j]){
                        socupacionAux[j] = null;
                        numRepeticiones++;
                        if(numRepeticiones>2) errorNumTipos = true;
                    }
                }

                if(!errorNumTipos){
                    if(shabitaciones1 == null && shabitaciones2 == null & shabitaciones3 == null){
                        shabitaciones1 = numRepeticiones+1;
                        socupacion1 = socupacion[i];
                    }else if(shabitaciones1 != null && shabitaciones2 == null & shabitaciones3 == null){
                        shabitaciones2 = numRepeticiones+1;
                        socupacion2 = socupacion[i];
                    }else if(shabitaciones1 != null && shabitaciones2 != null & shabitaciones3 == null){
                        shabitaciones3 = numRepeticiones+1;
                        socupacion3 = socupacion[i];
                    }
                }
            }
        }
    }

    if(errorNumTipos){
        return false;
    }else{
        if(socupacion2 == null){
            shabitaciones2 = 0;
            socupacion2 = "1-0";
        }
        if(socupacion3 == null){
            shabitaciones3 = 0;
            socupacion3 = "1-0";
        }

        $("#shabitaciones").val(shabitaciones1);
        $("#shabitaciones2").val(shabitaciones2);
        $("#shabitaciones3").val(shabitaciones3);
        $("#socupacion").val(socupacion1);
        $("#socupacion2").val(socupacion2);
        $("#socupacion3").val(socupacion3);
    }
    return true;
}

/**************************ALERTAS******************************************/
function openDialogMessage(title, message){
    $("#dialog").html("");
    $("#dialog").attr("title", title);
    $("#dialog").append(message);
    $("#dialog").dialog();
}

/**************************LOAD PARAMETERS******************************************/

function loadParameters(){
    $("#_top_idioma").val(mIdioma);
    $("#cx_noms").val(mDestino);
    var numHabs = mHab1 + mHab2 + mHab3;
    $("select#numHabitaciones option[value='"+numHabs+"']").attr("selected", "selected");
    loadNumHabs(numHabs);
    loadOcupacion();
    loadFechas();

}

function loadNumHabs(initialNumHabs){
        if(initialNumHabs == 1){
            $('#divTablaOcupacion2').css('display', 'none');
            $('#linea1TablaOcup2').css('display', 'none');
            $('#linea2TablaOcup1').css('display', 'none');
            $('#linea2TablaOcup2').css('display', 'none');
        }else if(initialNumHabs == 2){
            $('#divTablaOcupacion2').css('display', 'block');
            $('#linea1TablaOcup2').css('display', 'block');
            $('#linea2TablaOcup1').css('display', 'none');
            $('#linea2TablaOcup2').css('display', 'none');
        }else if(initialNumHabs == 3){
            $('#divTablaOcupacion2').css('display', 'block');
            $('#linea1TablaOcup2').css('display', 'block');
            $('#linea2TablaOcup1').css('display', 'block');
            $('#linea2TablaOcup2').css('display', 'none');
        }else if(initialNumHabs == 4){
            $('#divTablaOcupacion2').css('display', 'block');
            $('#linea1TablaOcup2').css('display', 'block');
            $('#linea2TablaOcup1').css('display', 'block');
            $('#linea2TablaOcup2').css('display', 'block');
        }
}

function loadOcupacion(){
    var indexFila = 1;

    if(mHab1>=1){
        var adultos = mOcup1.substring(0,1);
        var nens    = mOcup1.substring(2);
        for(var i=0; i<mHab1; i++){
            $("select#adultos"+indexFila+" option[value='"+parseInt(adultos)+"']").attr("selected", "selected");
            $("select#nens"+indexFila+" option[value='"+parseInt(nens)+"']").attr("selected", "selected");
            indexFila=indexFila+1;
        }
    }
    if(mHab2>=1){
        var adultos = mOcup2.substring(0,1);
        var nens    = mOcup2.substring(2);
        for(var i=0; i<mHab2; i++){
            $("select#adultos"+indexFila+" option[value='"+parseInt(adultos)+"']").attr("selected", "selected");
            $("select#nens"+indexFila+" option[value='"+parseInt(nens)+"']").attr("selected", "selected");
            indexFila=indexFila+1;
        }
    }
    if(mHab3>=1){
        var adultos = mOcup3.substring(0,1);
        var nens    = mOcup3.substring(2);
        for(var i=0; i<mHab3; i++){
            $("select#adultos"+indexFila+" option[value='"+parseInt(adultos)+"']").attr("selected", "selected");
            $("select#nens"+indexFila+" option[value='"+parseInt(nens)+"']").attr("selected", "selected");
            indexFila=indexFila+1;
        }
    }

}

/*function loadFechas(){
    if(mFechaEntrada == null || mFechaSalida == null){
        var dateEntrada = new Date();
        $('#datepickerEntrada').datepicker('setDate', dateEntrada);
        dateEntrada.setDate(dateEntrada.getDate()+1);
        $('#datepickerSalida').datepicker('setDate', dateEntrada);
    }
    $('#numNoches').val(days_between($('#datepickerEntrada').datepicker('getDate', '+1d'), $('#datepickerSalida').datepicker('getDate', '+1d')));
}*/

function loadFechas(){
    if(mFechaEntrada == null || mFechaSalida == null){
        var dateEntrada = new Date();
        $('#datepickerEntrada').datepicker('setDate', dateEntrada);
        dateEntrada.setDate(dateEntrada.getDate()+1);
        $('#datepickerSalida').datepicker('setDate', dateEntrada);
    }else{
        //var dateEntrada = new Date(mFechaEntrada);
        $('#datepickerEntrada').val(mFechaEntrada);
        $('#datepickerSalida').val(mFechaSalida);
    }
    $('#numNoches').val(days_between($('#datepickerEntrada').datepicker('getDate', '+1d'), $('#datepickerSalida').datepicker('getDate', '+1d')));
}


/*****************************MENSAJES DIALOG************************************/

var titleAlertDestino = [
    "Campo sin completar",
    "Campo sin completar",
    "Field missing",
    "Champ vide",
    "Feld leer",
    "Campo non inserito",
    "Campo em branco",
    "Campo sin completar",
    "Campo sin completar",
    "Campo em branco"];

var titleAlertFechaIncorrecta = [
    "Fechas incorrectas",
    "Fechas incorrectas",
    "Wrong dates",
    "Erreur sur les dates",
    "Falsche Daten",
    "Date non corrette",
    "Datas incorrectas",
    "Fechas incorrectas",
    "Fechas incorrectas",
    "Datas incorrectas"];

var titleAlertNumNoches = [
    "Límite de noches excedido",
    "Límite de noches excedido",
    "Booking nights exceeded",
    "Nombre de nuitées dépassé",
    "Sie haben das Übernachtungslimit überschritten",
    "Limite di notti superato",
    "Limite de noites excedido",
    "Límite de noches excedido",
    "Límite de noches excedido",
    "Limite de noites excedido"];

var titleAlertOcup = [
    "Error en datos de ocupación",
    "Error en datos de ocupación",
    "Occupation data error",
    "Erreur dans la profession",
    "Fehler in der Belegungszahl",
    "Errore nei dati di pernottamento",
    "Erro em dados de ocupação",
    "Error en datos de ocupación",
    "Error en datos de ocupación",
    "Erro em dados de ocupação"];

var msgDestino = [
    "Por favor, vuelve a introducir el destino, debes seleccionar entre una de las opciones del desplegable.",
    "Por favor, vuelve a introducir el destino, debes seleccionar entre una de las opciones del desplegable.",
    "Please type your destination again, you must select an option from the drop-down.",
    "S'il vous plaît re-entrer votre destination, vous devez sélectionner les options à partir d'un menu déroulant.",
    "Bitte wiederholen Sie Ihr Ziel, müssen Sie aus einer Drop-Down-Optionen auszuwählen.",
    "Per favore, introduci nuovamente la tua destinazione, scegliendo tra una delle opzioni del menú.",
    "Faz favor, volta a introduzir o destino, deves seleccionar entre uma das opções do desdobrável",
    "Por favor, vuelve a introducir el destino, debes seleccionar entre una de las opciones del desplegable.",
    "Por favor, vuelve a introducir el destino, debes seleccionar entre una de las opciones del desplegable.",
    "Faz favor, volta a introduzir o destino, deves seleccionar entre uma das opções do desdobrável"];

var msgFechas1 = [
    "Por favor, revisa las fechas de entrada y salida.",
    "Por favor, revisa las fechas de entrada y salida.",
    "Please verify checkin and checkout dates.",
    "S'il vous plaît vérifier les dates d'entrée et de sortie.",
    "Bitte überprüfen Sie ob das An- und Abreisedatum korrekt sind.",
    "Per favore, controlla le date di arrivo e partenza.",
    "Faz favor, revisa as datas primeiramente e saída",
    "Por favor, revisa las fechas de entrada y salida.",
    "Por favor, revisa las fechas de entrada y salida.",
    "Faz favor, revisa as datas primeiramente e saída"];

var msgFechas2 = [
    "La fecha de salida debe ser posterior a la fecha de entrada.",
    "La fecha de salida debe ser posterior a la fecha de entrada.",
    "Checkout date must be later then checkin date.",
    "Date de départ doit être postérieure à la date d'entrée.",
    "Das Abreisedatum muss nach dem Anreisetag erfolgen.",
    "La data di partenza deve essere posteriore alla data di arrivo.",
    "A data de partida deve ser posterior à data de entrada",
    "La fecha de salida debe ser posterior a la fecha de entrada.",
    "La fecha de salida debe ser posterior a la fecha de entrada.",
    "A data de partida deve ser posterior à data de entrada"];

var msgFechas3 = [
    "Lo sentimos, pero el número máximo de noches que se pueden reservar a través de nuestra página web es de 14, por favor llame a nuestro teléfono de atención al cliente para formalizar una reserva de más noches.",
    "Lo sentimos, pero el número máximo de noches que se pueden reservar a través de nuestra página web es de 14, por favor llame a nuestro teléfono de atención al cliente para formalizar una reserva de más noches.",
    "We apologize, but the maximum number of bookable nights through our website is 14, please call our Costumer Service for a longer stay booking.",
    "Excuse-nous, mais le nombre maximal de nuits lesquelles peuvent être réservées à travers notre site web est de 14, s'il vous plaît, contactez-nous au téléphone de réservations 24h pour faire une réservation de plus de nuits.",
    "Bitte beachten Sie, dass auf unserer Website maximal 14 Übernachtungen gebucht werden können. Kontaktieren Sie bitte mit unserem Kundenbetreuungs Telefondienst für längere Reservierungen.",
    "Siamo spiacenti, pero il numero massimo di notti che si possono prenotare nella nostra pagina web é 14, per favore chiami il nostro servizio di attenzione al cliente per effettuare una prenotazione di piú notti.",
    "Desculpe, mas o número máximo de noites podem ser reservadas através do nosso site é de 14",
    "Lo sentimos, pero el número máximo de noches que se pueden reservar a través de nuestra página web es de 14, por favor llame a nuestro teléfono de atención al cliente para formalizar una reserva de más noches.",
    "Lo sentimos, pero el número máximo de noches que se pueden reservar a través de nuestra página web es de 14, por favor llame a nuestro teléfono de atención al cliente para formalizar una reserva de más noches.",
    "Desculpe, mas o número máximo de noites podem ser reservadas através do nosso site é de 14"];

var msgOcup = [
    "Sólo pueden seleccionarse como máximo 3 habitaciones del mismo tipo.",
    "Sólo pueden seleccionarse como máximo 3 habitaciones del mismo tipo.",
    "You can only select a maximum of 3 rooms of the same type.",
    "Vous ne pouvez sélectionner un maximum de 3 pièces du même type.",
    "Es können max 3 Zimmer von der gleichen Kategorie ausgewählt werden.",
    "É possibile selezionare al massimo 3 stanze dello stesso tipo.",
    "Você só pode selecionar um máximo de 3 quartos no mesmo tipo",
    "Sólo pueden seleccionarse como máximo 3 habitaciones del mismo tipo.",
    "Sólo pueden seleccionarse como máximo 3 habitaciones del mismo tipo.",
    "Você só pode selecionar um máximo de 3 quartos no mesmo tipo"];

var textoLayerSombra = [
    "Buscando...",
    "Buscando...",
    "Searching...",
    "À la recherche...",
    "Suchen...",
    "Cerca...",
    "Procurando...",
    "Buscando...",
    "Buscando...",
    "Procurando..."];
