﻿function pintarIdiomaDias(cualIdioma) {

    var cad = "<td>&nbsp;</td>";
    diasIdiomas = Array(Array("Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"),
                        Array("Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"),
                        Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"));

    var listaDias = diasIdiomas[cualIdioma - 1];
    var i = 0;
    for (i = 0; i < 7; i++)
        cad = cad + "<td>" + listaDias[i] + "</td>";
    return cad;
}

function pintarTarifasDias(numDiasPedidos, Tarifa, Moneda, idHotel) {
    var numRowSpan = 0;
    var numColVacias = Tarifa[0].TarifaDiaria[0].TarifaDia[0].Dia;
    numRowSpan = Math.ceil((numDiasPedidos * 1 + numColVacias * 1) / 7); //se calcula el numero de semanas que estara el pasajero
    var i = 0;
    var cad = "";
    var cadNino = "";
    var bandera = 0;
    var marcado = "";
    lblCuarto = " Habitacion ";
    lblTipoAlimentacion = " Tipo Alimentacion ";
    var cambioCuarto = 0;
    /*for para recorrer todos los tipos de habitacion que vienen*/
    for (i = 0; i < Tarifa.length; i++) {
        acomodacion = Tarifa[i].Acomodacion;
        tipoHabitacion = Tarifa[i].Tipo;
        numHabitacion = Tarifa[i].Habitacion;
        if (bandera == 0) {/*esto es para que solo marque el primero como marcado*/
            bandera = 1;
            //marcado = "checked";
        }
        var k = 0;
        /*se genera el componente de radio para que la persona elija*/
        controlForma = "<input type=\"radio\" id=\"habitacion_" + idHotel + "_" + numHabitacion + "_" + i
            + "\" name=\"habitacion_" + idHotel + "_" + numHabitacion + "\"  value=\"" + i + "\" " + ((k == 0) ? " checked=\"checked\"" : "") + ">";
        tipoAlimentacion = Tarifa[i].Alimentacion;
        descriAlimentacion = Tarifa[i].DescriAlimentacion;
        cad = cad + "<tr><td align=\"center\" rowspan=\"" + numRowSpan + "\">" + lblCuarto + " " + numHabitacion + "<br><strong>" + tipoHabitacion + "<br>" + acomodacion + "</strong><br>" + lblTipoAlimentacion + " : " + tipoAlimentacion + "<a onclick=\"alerta(' " + tipoAlimentacion + " &nbsp; " + descriAlimentacion + " ',' " + descriAlimentacion + "');\"> <img src=\"./image/icon_tickets_status_alert.gif\"> </a> </td>";
        var flag = 0;

        /*Con este se crean las columnas vacias de la primera semana en la cual la persona no llega*/
        for (k = 0; k < numColVacias; k++) {
            cad = cad + "<td class=\"price0\">&nbsp;</td>";
        }

        var j = 0;

        var totalOpcion = parseFloat(Tarifa[i].TarifaDiaria[0].Total);

        ban = 0;

        var numDias = Tarifa[i].TarifaDiaria[0].TarifaDia.length;
        /*se pintan las tarifas de cada dia */

        for (j = 0; j < numDias; j++, k++) {
            tarifaAdulto = parseFloat(Tarifa[i].TarifaDiaria[0].TarifaDia[j].Adultos);
            tarifaNino = parseFloat(Tarifa[i].TarifaDiaria[0].TarifaDia[j].Ninos);
            fechaTarifa = Tarifa[i].TarifaDiaria[0].TarifaDia[j].Fecha;

            cadNino = "";

            if (tarifaNino * 1 > 0)
                cadNino = "<BR>" + formatCurrency(tarifaNino);

            cad = cad + "<td class=\"price0\" align=\"center\"><sup> " +
                Moneda + "</sup> <strong>" + formatCurrency(tarifaAdulto) +
                    cadNino + "</strong></td>";

            if (k == 6) {/*condicion para hacer el salto de fila cuando se cumplen los 7 dias y se debe pasar a las siguiente semanan*/
                if (ban == 0) {
                    flag = 1; /*esto es para que el total solo lo ponga para una fila*/
                    cad = cad + "<td align=\"center\" rowspan=\"" + numRowSpan + "\">" +
                        Moneda + "<br><span style=\"color: #0066cc;\"><strong> " + formatCurrency(totalOpcion) +
                            "</span></strong><br>" + controlForma + "</td></tr>";
                }
                k = -1;
                if (ban == 1)
                    cad = cad + "</tr>";
                cad = cad + "<tr>";
                ban = 1;
            }
        }

        /* se termina de armar la fila con los dias que la persona no va a estar */

        for (k = k; k < 7; k++) {
            cad = cad + "<td class=\"price0\">&nbsp;</td>";
        }

        if (flag == 0) cad = cad + "<td align=\"center\" class=\"price1\" rowspan=\"" +
            numRowSpan + "\">" + Moneda + "<br><strong>" + formatCurrency(totalOpcion) +
                "</strong><br>" + controlForma + "</td></tr>";

        cad = cad + "</tr> ";
    }
    //document.write(cad);
    return cad;
}

function pintarCaracteristicas(ListaCaracteristicas, path) {
    var i = 0;
    var cad = "";
    for (i = 0; i < ListaCaracteristicas.length; i++) {
        cad = cad + '<span style="width:40%; float:left">' + ListaCaracteristicas[i].value + "</span>";
        //ListaCaracteristicas[i].imagen
    }
    return cad;
}

function pintarEstrellas(categoria) {
    var cad = "<span class=\"stars star" + categoria + "\">";
    return cad;
}

function pintarEncabezadoHotel(numCuarto) {
    var cad = "<table> <tr> <td class=\"room_list_hab\"  style=\"font-size: 14px; color: #0082D7 \" colspan=7 width=\"8px\"> Habitacion" + numCuarto + " </td>  \
           </tr> <tr> \
           <td>&nbsp;</td> \
           <td class=\"room_list_title\" width=\"16px\">Identificacion</td> \
           <td class=\"room_list_title\" width=\"16px\">*Nombres</td> \
           <td class=\"room_list_title\" width=\"16px\">*Apellidos</td>\
           <td class=\"room_list_title\" width=\"24px\">Observacion</td> \
           <td class=\"room_list_title\" width=\"8px\">Edad</td> \
           </tr> ";
    return cad;
}


function pintarComboEdad(tipo, numCuarto, numAdulto) {
    var n = 1;
    var cad = "";
    while (n <= 12) {
        cad = cad + "<option value=" + n + ">" + n + "</option>";
        n++;
    }
    cad = "<select name=\"inp_roomList\" id=\"" + tipo + "_observacion_" + numCuarto + "_" + numAdulto + "\"s>" + cad + "</select>";
    return cad;

}

function pintarFilaCampos(tipo, numCuarto, numAdulto, pintarEdad) {
    var nombreCampo = "";
    var edad = "&nbsp;";
    if (pintarEdad) {
        edad = pintarComboEdad(tipo, numCuarto, numAdulto); //"<td class=\"room_list_el\"><input type=\"text\" size=\"13\" name=\"edad_"+ nombreCampo + " id=\"edad_" + nombreCampo + "\"s /></td>";
        //        comboedad=pintarComboEdd();
    }
    nombreCampo = "" + numCuarto + "_" + numAdulto;
    var aux = "<Tr>\
    <td>" + numAdulto + "&nbsp;</td>\
    <td class=\"room_list_el\"><input type=\"text\" size=\"16\" name=\"inp_roomList\" id=\"" + tipo + "_Identificacion_" + nombreCampo + "\"s /></td>\
    <td class=\"room_list_el\"><input type=\"text\" size=\"16\" name=\"inp_roomList\" id=\"" + tipo + "_Nombres_" + nombreCampo + "\"s /></td>\
    <td class=\"room_list_el\"><input type=\"text\" size=\"16\" name=\"inp_roomList\" id=\"" + tipo + "_Apellidos_" + nombreCampo + "\"s /></td>\
    <td class=\"room_list_el\"><input type=\"text\" size=\"24\" name=\"inp_roomList\" id=\"" + tipo + "_Observacion_" + nombreCampo + "\"s /></td>";
    aux = aux + " <td>" + edad + "</td>\ </tr> ";
    return aux;
}


function finalizarTablaHotel() {
    return "</table> <hr align=\"left\" width=\"480\" class=\"linea\"/>";
}


function pintarFormularioHotel(numCuartos, numAdultosXCuarto, NumNinoXCuarto, idDiv) {
    var i = 1;
    var resul = ""
    lista_adultos = numAdultosXCuarto.split(";");
    lista_ninos = NumNinoXCuarto.split(";");
    for (i = 1; i <= numCuartos; i++) {
        resul = resul + pintarEncabezadoHotel(i);
        for (j = 0; j < lista_adultos[i - 1]; j++) {
            resul = resul + pintarFilaCampos("D", i, j + 1, false);
        }
        var cont = 0;
        try {
            cont = lista_ninos[i - 1];
        } catch (err) {
            cont = 0;
        }
        for (j = 0; j < cont; j++) {
            resul = resul + pintarFilaCampos("N", i, j + 1, true);
        }

        resul = resul + finalizarTablaHotel();
    }
    return resul;
    //$('#roomiglist_'+idDiv).html(resul);
}


function formulario_hotel(idDiv) {
    if (VerificarLogin() == "N") {
        mostrar_login();
        return;
    }

    $("#button_formulario_hotel_" + idDiv).hide();
    $("#button_reservar_hotel_" + idDiv).show();

    $("#div_form_hotel_reserva_" + idDiv).hide();
    if (GCrearReserva == "S") {
        $("#div_form_hotel_reserva_" + idDiv).setTemplateURL('./templates/formulariocreareserva.htm', null, { filter_data: false });
        $("#div_form_hotel_reserva_" + idDiv).setParam('DivId', idDiv);
        $("#div_form_hotel_reserva_" + idDiv).setParam('onchange', 'onchange_nombres_hoteles');
        $("#div_form_hotel_reserva_" + idDiv).setParam('MostrarTelefonoReserva', GMostrarTelefonoReserva);
        $("#div_form_hotel_reserva_" + idDiv).setParam('MostrarMailReserva', GMostrarMailReserva);
        $("#div_form_hotel_reserva_" + idDiv).processTemplate();
        $("#div_form_hotel_reserva_" + idDiv).show("blind");
    }
    $("#div_form_hotel_room_" + idDiv).html(pintarFormulario(idDiv));

    var clientes_defecto = CargarClientesDefecto();
    if (clientes_defecto != null) {
        var RNombres = $("#[id*=\"_Nombres_\"]");
        for (var i = 0; i < RNombres.length; i++) {
            if (clientes_defecto[i] != null) {
                $("#" + RNombres[i].id).val(clientes_defecto[i].Nombres);
            }
        }
        var RApellidos = $("#[id*=\"_Apellidos_\"]");
        for (var i = 0; i < RApellidos.length; i++) {
            if (clientes_defecto[i] != null) {
                $("#" + RApellidos[i].id).val(clientes_defecto[i].Apellidos);
            }
        }
        var RIdentificacion = $("#[id*=\"_Identificacion_\"]");
        for (var i = 0; i < RIdentificacion.length; i++) {
            if (clientes_defecto[i] != null) {
                $("#" + RIdentificacion[i].id).val(clientes_defecto[i].Identificacion);
            }
        }
    }

    $("#div_form_hotel_room_" + idDiv).show("blind");
}

function onchange_nombres_hoteles(Div_Id) {

    $("[id^=D_Nombres_1]").val($("[id$=rese_nomcliente]").val());
    $("[id^=D_Apellidos_1]").val($("[id$=rese_apecliente]").val());

}

function pintarFormulario(idDiv) {
    var numcuartos = $('#hot_bus_nocuartos').val();
    var i = 1;
    var Adultos = "";
    var adt = "";
    var chd = "";
    var Ninnos = "";
    while (i <= numcuartos) {
        if (Adultos != "") Adultos = Adultos + ";";
        if (Ninnos != "") Ninnos = Ninnos + ";";
        chd = "0";
        adt = $('#hot_bus_adtnocuartos' + i).val();
        chd = $('#hot_bus_chdnocuartos' + i).val();
        Ninnos = Ninnos + chd;
        Adultos = Adultos + adt;
        i++;
    }
    var cadh = "";
    cadh = " <div class=\"ui-widget-content ui-corner-all\">\
             <div style=\"font-size: 14px; color: rgb(255, 17, 17); line-height: normal;\">Información de los huespedes:</div>\
             <div class=\"clear\"></div>\
             <div >" + pintarFormularioHotel(numcuartos, Adultos, Ninnos, idDiv) + "</div> </div>";
    return cadh;
}

function reservar_hotel(idDiv) {

    if (VerificarLogin() == "N") {
        mostrar_login();
        return;
    }

    if (gEstadoReserva != 'C') {
        alerta('No se pueden agregar mas reservas para el estado actual.', 'Reservas')
        return;
    }

    $("#mensaje_reservando").jqmShow();

    var inp_paq = document.getElementsByName('inp_roomList');

    if (inp_paq.length > 0) {

        var jsonReserva = null;
        lok = true;
        if (GCrearReserva == "S") {

            var myFormParams = $('#frm_reserva_' + idDiv).serialize();

            var j = params2json(myFormParams);
            var dataReserva = "\"data\":[" + j + "]";

            jsonReserva = eval("({" + dataReserva + "})");

            if ((jsonReserva.data[0].rese_nomcliente == "") && (lok == true)) {
                lok = false;
                alerta("Debe especificar el nombre del cliente");
            }

            if ((jsonReserva.data[0].rese_apecliente == "") && (lok == true)) {
                lok = false;
                alerta("Debe especificar los apellidos del cliente");
            }

            if (GMostrarMailReserva == "S") {
                if ((jsonReserva.data[0].rese_mailcliente == "") && (lok == true)) {
                    lok = false;
                    alerta("Debe especificar el correo del cliente");
                }
            }
        }

        if (lok) {
            var jsonHabitaciones = '\"Habitaciones\":[{';

            var hab = inp_paq[0].id.split('_');
            var campo = hab[1];

            for (var i = 0; i < inp_paq.length; i++) {

                hab = inp_paq[i].id.split('_');

                if (campo == hab[1]) {
                    if (i > 0)
                        jsonHabitaciones = jsonHabitaciones.substring(0, jsonHabitaciones.length - 1) + '},{';

                    jsonHabitaciones += '\"Tipo\":\"' + hab[0] + '\",\"CodHabita\":\"' + hab[2] + '\",';
                }

                jsonHabitaciones += '\"' + hab[1] + '\":\"' + inp_paq[i].value + '\",';
            }
            if (i > 0)
                jsonHabitaciones = jsonHabitaciones.substring(0, jsonHabitaciones.length - 1);
            jsonHabitaciones = jsonHabitaciones + '}]';

            var JSon = eval('({' + jsonHabitaciones + '})');

            for (var i = 0; i < JSon.Habitaciones.length; i++) {

                if (JSon.Habitaciones[i].Nombres == '') {
                    lok = false;
                    break;
                }

                if (JSon.Habitaciones[i].Apellidos == '') {
                    lok = false;
                    break;
                }


            }

            if (!lok) {
                alerta('Debe especificar el nombre y apellidos para todos los huespedes');
            }
        }

        if (lok) {
            var Hotel = info_hotel.Hoteles.Hotel[idDiv];

            for (var i = 0; i < Hotel.Tarifas[0].Tarifa.length; i++) {
                var chk = document.getElementById("habitacion_" + idDiv + "_" + 
                    Hotel.Tarifas[0].Tarifa[i].Habitacion + "_" + i);

                Hotel.Tarifas[0].Tarifa[i].Checked = chk.checked;
            }

            $.ajax({
                type: "POST",
                url: "./Utilidades/reservas.aspx/ReservarHotel",

                data: "{roomList:" + $.toJSON(JSon) + ",Hotel:" + $.toJSON(Hotel)
                              + ",DatosReserva:" + $.toJSON(jsonReserva) + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(res) {

                    Reservar_CallBack(res.d);
                }
            });
        }

    }

}

function Reservar_CallBack(Resultado) {

    if (Resultado.status == "OK") {

        $("#div_hotel_tarifas_" + Resultado.CodUnico).hide();
        if (Resultado.mensaje != "OK") {
            $("#div_reservaactual").html("<strong>RESERVA: " + Resultado.mensaje + "</strong>");
        }
        $("#mensaje_reservando").jqmHide();
        alerta("Reserva realizada satisfactoriamente");
        GCrearReserva = "N";

        var $tabBusqueda = $("#tabBusqueda").tabs();
        if ($tabBusqueda.length > 0)
            $tabBusqueda.tabs('select', 3);
    } else {
        alerta(Resultado.mensaje);
    }

}

function Mostrar_Hotel(Codigo) {

    $.ajax({
        type: "POST",
        url: "BusquedaHoteles.aspx/cargarHotelCodigo",
        data: "{codHotel:'" + Codigo + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(res) {

            var Json = eval('(' + res.d + ')');

            var linfoHotel = Json.Hoteles.Hotel[0];
            var options = { runnable_functions: true, filter_data: false };
            var NumFotos = 0;
            if (linfoHotel.Fotos[0] != null) {
                if (linfoHotel.Fotos[0].hasOwnProperty('Foto'))
                    NumFotos = linfoHotel.Fotos[0].Foto.length;
            }

            $("#div_popup").html("<center>Cargando la informaci&oacute;n del hotel<br><img src=\"./img/ajax_6.gif\" /></center>");
            $("#div_popup").setTemplateURL('./templates/hoteles/hotel_completo.html', null, options);
            $("#div_popup").setParam('NumFotos', NumFotos);
            $("#div_popup").setParam('botonCerrar', "N");
            $("#div_popup").setParam('MostrarTelefono', GMostrarTelefonoHotel);
            $("#div_popup").setParam('Codunico', linfoHotel.CodUnico);
            $("#div_popup").processTemplate(linfoHotel);

            $("#div_popup").dialog('destroy');
            $("#div_popup").dialog({
                bgiframe: true,
                modal: true,
                width: 700,
                show: 'slide',
                zIndex: 0,
                buttons: {
                    Imprimir: function() {
                    },
                    'E-Mail': function() {
                    },
                    Ok: function() {
                        $(this).dialog('close');
                    }
                }
            });
        }
    });

}

function cargarHotelesDestacadosBusqueda() {

    $.ajax({
        type: "POST",
        url: "BusquedaHoteles.aspx/cargarHotelesDestacados",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(res) {

            if (res.d != '') {
                Json_Destacados = eval('(' + res.d + ')');

                if (Json_Destacados.Hoteles != null) {
                    $("#destacado_hoteles").setTemplateURL('./templates/hoteles/destacados_busqueda.htm', null, { filter_data: false });
                    $("#destacado_hoteles").processTemplate(Json_Destacados.Hoteles);
                }
            }
        }
    });

}

function mostrar_hotel_busqueda(codigo) {
    document.location.href = "./BusquedaHoteles.aspx?codigoHotel=" + codigo + "&hacer_buscar=si";
}