﻿ // jquery.Netviax.js
// Un par de funciones para los drop
$.fn.clearSelect = function() {
    return this.each(function() {
        if (this.tagName == 'SELECT')
            this.options.length = 0;
    });
} 

$.fn.fillSelect = function(data) {
    return this.clearSelect().each(function() {
        if (this.tagName == 'SELECT') {
            var dropdownList = this;
            $.each(data.d, function(index, optionData) {
                var option = new Option(optionData.Text, optionData.Value);
                
                if ($.browser.msie) {
                    dropdownList.add(option);
                }
                else {
                    dropdownList.add(option, null);
                }
            });
        }
    });
}

$.fn.ajaxFillSelect = function(xObjetojQuery, xUrl, xCategoria, xRegion, xPais, xCiudad, valorPorDefecto) {

    $.ajax({
        type: "POST",
        url: xUrl,
        data: "{xCategoria:'" + xCategoria + "'," +
               "xRegion:'" + xRegion + "'," +
               "xPais:'" + xPais + "'," +
               "xCiudad:'" + xCiudad + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            $(xObjetojQuery).fillSelect(msg);
            if (!valorPorDefecto) {
            }
            else {
                var valorDef = $('#' + xObjetojQuery.attr('id').replace('lstLista', 'txtlstLista')).attr('value');
                $(xObjetojQuery).val(valorDef);
            }
        }
    });

}

$.fn.ajaxFillHTMLPaquete = function(xObjetojQuery, xTemplate, xTemplateAlternate, xCategoria, xRegion, xPais, xCiudad, xPaqFechaDesde, xPaqFechaHasta, xCantidadDeResultados, xCriterioOrden,xDestacado) {

    $(xObjetojQuery).fadeOut('fast');
    $('#' + $(xObjetojQuery).attr('id') + 'EnEspera').fadeIn('slow');

    if (!xCriterioOrden) {
        xCriterioOrden = ""
    }

    $.ajax({
        type: "POST",
        url: "_scripts/jsonWebServices/GetDataPaquetes.asmx/GetPaquetes",
        data: "{ xop: 'Geanttravel', " +
                 "xCategoria:'" + xCategoria + "'," +
                 "xRegion:'" + xRegion + "'," +
                 "xPais:'" + xPais + "'," +
                 "xCiudad:'" + xCiudad + "'," +
                 "xSalidaDesde:'" + xPaqFechaDesde + "'," +
                 "xSalidaHasta:'" + xPaqFechaHasta + "'," +
                 "xCantidadDeResultados:'" + xCantidadDeResultados + "'," +
                 "xCriterioOrden:'" + xCriterioOrden + "'," +
                 "xDestacado:'" + xDestacado + "'}" ,
        contentType: "application/json; charset=utf-8",
        //dataType: "json",
        dataType: "text",
        success: function(data) {

            var result = JSON2.parse(data);

            $(xObjetojQuery).empty();
            var itemAlternate = false;
            $.each(result.d, function(index, paqueteData) {
                var template = $("#" + xTemplate).html();
                var templateAlternate = ((xTemplateAlternate == "") ? $("#" + xTemplate).html() : $("#" + xTemplateAlternate).html());
                if (itemAlternate) {
                    var html = parseTemplate(templateAlternate, paqueteData);
                    itemAlternate = false;
                }
                else {
                    var html = parseTemplate(template, paqueteData);
                    itemAlternate = true;
                }

                $(xObjetojQuery).append(html);
            });
        },
        complete: function() {
            //Se completo la funcion, voy a ocultar el que estaba girando, si habia, y mostrar el que tiene los datos
            $('#' + $(xObjetojQuery).attr('id') + 'EnEspera').fadeOut('slow');
            $(xObjetojQuery).fadeIn('slow');
        }
    });
}

/// Para reemplazar en los templates, se reemplaza <# propiedad #> por su valor
/// based on John Resig's Micro Templating engine
var _tmplCache = {}
this.parseTemplate = function(str, data) {
    var err = "";
    try {
        var func = _tmplCache[str];
        if (!func) {
            var strFunc =
            "var p=[],print=function(){p.push.apply(p,arguments);};" +
                        "with(obj){p.push('" +
            str.replace(/[\r\t\n]/g, " ")
               .replace(/'(?=[^#]*#>)/g, "\t")
               .split("'").join("\\'")
               .split("\t").join("'")
               .replace(/<#=(.+?)#>/g, "',$1,'")
               .split("<#").join("');")
               .split("#>").join("p.push('")
               + "');}return p.join('');";

            func = new Function("obj", strFunc);
            _tmplCache[str] = func;
        }
        return func(data);
    } catch (e) { err = e.message; }
    return "< # ERROR: " + err.htmlEncode() + " # >";
}
// jquery.NetviaxUCBuscadorAereos.js
function OkBA() {
    //En cuanto cargo la pagina (un poquito antes en realidad) escondo los dos divs de busqueda, el de ida o i/v
    //y el de multiciudad
    $("#divIda").hide('fast')
    $("#divIdaYVuelta").hide('fast')
    $("#divMultiCiudad").hide('fast')

    var strMinDate = $('#minDate').val();
    //Ahora nos fijamos cual esta seleccionado y mostramos el correcto solamente
    //esto es por si la pagina se esta recargando y entonces en la primera instancia cambio, aca no muestre
    //el por defecto
    var var_name = $("[name='ctl00$BuscadorAereos$TipoItinerario']:checked").val();
    switch (var_name) {
        case 'rdbIda':
            $("#divIda").show('slow');
            break;

        case 'rdbIdaYVuelta':
            $("#divIdaYVuelta").show('slow');
            break;

        case 'rdbMultiCiudad':
            $("#divMultiCiudad").show('slow');
            break;
    }

    //Le asigo eventos al click del grupo para que cambie las cosas
    //Vamos con el radiobutton de tipo de itinerario, para mostrar u ocultar
    $("[name='ctl00$BuscadorAereos$TipoItinerario']").click(function() {
        var var_name = $("[name='ctl00$BuscadorAereos$TipoItinerario']:checked").val();
        switch (var_name) {
            case 'rdbIda':
                $("#divMultiCiudad").hide('fast');
                $("#divIdaYVuelta").hide('fast');
                $("#divIda").show('slow');
                break;

            case 'rdbIdaYVuelta':
                $("#divMultiCiudad").hide('fast');
                $("#divIda").hide('fast');
                $("#divIdaYVuelta").show('slow');
                break;

            case 'rdbMultiCiudad':
                $("#divIda").hide('fast');
                $("#divIdaYVuelta").hide('fast');
                $("#divMultiCiudad").show('slow');
                break;
        }
    });

    //Para el buscador IDA
    // Date picker
    $('#txtFechaIdaOW').datepicker($.extend({},
    $.datepicker.regional["es"], {
        numberOfMonths: 2,
        showOn: "both",
        //minDate: "today",
        minDate: strMinDate,
        maxDate: "+300d",
        onSelect: function(dateText, input) {
            var leaving = $('#txtFechaIdaOW').datepicker("getDate");
            //Seteamos la fecha de ida del primer y segundo tramo del multiciudad con la misma fecha
            $('#txtMultiFecha1').datepicker("setDate", leaving);
            $('#txtMultiFecha2').datepicker("setDate", leaving);
            $('#txtMultiFecha2').datepicker("option", "minDate", leaving)
            //Seteamos las fechas del ida y vuelta
            $('#txtFechaIda').datepicker("setDate", leaving);
            $('#txtFechaVuelta').datepicker("setDate", leaving);
            $('#txtFechaVuelta').datepicker("option", "minDate", leaving);
        },
        buttonImage: "http://imagenes.netviax.com/corp.netviax.com/_images/cal.jpg",
        buttonImageOnly: true
    }));

    //Para el buscador ida y vuelta
    // Date Pickers
    // Date picker de ida. Al seleccionar fecha, seteamos la fecha del de la vuelta
    $('#txtFechaIda').datepicker($.extend({},
                $.datepicker.regional["es"], {
                    numberOfMonths: 2,
                    showOn: "both",
                    //minDate: "today",
                    minDate: strMinDate,
                    maxDate: "+300d",
                    onSelect: function(dateText, input) {
                        var leaving = $('#txtFechaIda').datepicker("getDate");
                        var returning = $('#txtFechaVuelta').datepicker("getDate");
                        if (returning != null && leaving > returning) {
                            //Deshabilitamos el datepicker para que no lo abra cuando hacemos el set date
                            $('#txtFechaVuelta').datepicker("disable");
                            //Valor seleccionado
                            $('#txtFechaVuelta').datepicker("setDate", leaving);
                            //Lo volvemos a habilitar
                            $('#txtFechaVuelta').datepicker("enable");
                            //Seteamos la fecha de ida del primer y segundo tramo del multiciudad con la misma fecha
                            $('#txtMultiFecha1').datepicker("setDate", leaving);
                            $('#txtMultiFecha2').datepicker("setDate", leaving);
                            $('#txtMultiFecha2').datepicker("option", "minDate", leaving)
                            //Seteamos la fecha de ida
                            $('#txtFechaIdaOW').datepicker("setDate", leaving);

                        }
                        $('#txtFechaVuelta').datepicker("option", "minDate", leaving)
                    },
                    buttonImage: "http://imagenes.netviax.com/corp.netviax.com/_images/cal.jpg",
                    buttonImageOnly: true
                }));

    // Date picker de la vuelta, le ponemos un customrange para que muestre A PARTIR de la fecha del de la ida
    $('#txtFechaVuelta').datepicker($.extend({},
                $.datepicker.regional["es"], {
                    numberOfMonths: 2,
                    showOn: "both",
                    //minDate: "today",
                    minDate: strMinDate,
                    maxDate: "+300d",
                    buttonImage: "http://imagenes.netviax.com/corp.netviax.com/_images/cal.jpg",
                    buttonImageOnly: true
                }));

    //Para el buscador MultiCiudad
    //Si hay valor puesto en el textbox lo mostramos
    if ($('#txtMultiCiudadHasta3').attr('value') != '') {
        $("#divTramo3").removeClass("invisible");
        //Removemos el link mostrar
        $("#lnkMostrarTramo3").addClass("invisible");
        //Removemos el link ocultar el tramo 2
        $("#lnkEsconderTramo3").removeClass("invisible");
    }
    if ($('#txtMultiCiudadHasta4').attr('value') != '') {
        $("#divTramo4").removeClass("invisible");
        //Removemos el link mostrar
        $("#lnkMostrarTramo4").addClass("invisible");
        //Removemos el link ocultar el tramo 2
        $("#lnkEsconderTramo3").removeClass("invisible");
    }
    if ($('#txtMultiCiudadHasta5').attr('value') != '') {
        $("#divTramo5").removeClass("invisible");
        //Removemos el link mostrar
        $("#lnkMostrarTramo5").addClass("invisible");
        //Removemos el link ocultar el tramo 2
        $("#lnkEsconderTramo4").removeClass("invisible");
    }

    //Para el tercer tramo
    //Link para mostrar
    $("#lnkMostrarTramo3").click(function() {
        //Mostramos el div
        $("#divTramo3").removeClass("invisible");
        //Removemos el link mostrar
        $("#lnkMostrarTramo3").addClass("invisible");
        //Removemos el link ocultar el tramo 2
        $("#lnkEsconderTramo3").removeClass("invisible");
        //Aca hacemos que se coloque el valor del campo anterior
        $('#txtMultiCiudadDesde3').attr('value', $('#txtMultiCiudadHasta2').attr('value'))
        //Agregamos validacion
        agrRAV_TramoX("txtMultiCiudadDesde3", "txtMultiCiudadHasta3", "rdbMultiCiudad")
    });
    //Link para ocultar
    $("#lnkEsconderTramo3").click(function() {
        //Escondemos el div
        $("#divTramo3").addClass("invisible");
        //Mostramos el link para poder volver a mostrarlo
        $("#lnkMostrarTramo3").removeClass("invisible");
        //Mostramos el link para esconder el tramo anterior
        $("#lnkEsconderTramo3").removeClass("invisible");
        //Borramos los textboxes
        $('#txtMultiCiudadDesde3').attr('value', '')
        $('#txtMultiCiudadHasta3').attr('value', '')
        //Removemos la validacion
        $('#txtMultiCiudadHasta3').rules("remove");
    });
    //Para el cuarto tramo
    //Link para mostrar
    $("#lnkMostrarTramo4").click(function() {
        //Mostramos el div
        $("#divTramo4").removeClass("invisible");
        //Removemos el link mostrar
        $("#lnkMostrarTramo4").addClass("invisible");
        //Removemos el link ocultar el tramo 3
        $("#lnkEsconderTramo3").addClass("invisible");
        //Aca hacemos que se coloque el valor del campo anterior
        $('#txtMultiCiudadDesde4').attr('value', $('#txtMultiCiudadHasta3').attr('value'))
        //Agregamos validacion
        agrRAV_TramoX("txtMultiCiudadDesde4", "txtMultiCiudadHasta4", "rdbMultiCiudad")
    });
    //Link para ocultar
    $("#lnkEsconderTramo4").click(function() {
        //Escondemos el div
        $("#divTramo4").addClass("invisible");
        //Mostramos el link para poder volver a mostrarlo
        $("#lnkMostrarTramo4").removeClass("invisible");
        //Mostramos el link para esconder el tramo anterior
        $("#lnkEsconderTramo3").removeClass("invisible");
        //Borramos los textboxes
        $('#txtMultiCiudadDesde4').attr('value', '')
        $('#txtMultiCiudadHasta4').attr('value', '')
        //Removemos la validacion
        $("#txtMultiCiudadHasta4").rules("remove");
    });
    //Para el quinto tramo
    //Link para mostrar
    $("#lnkMostrarTramo5").click(function() {
        //Mostramos el div
        $("#divTramo5").removeClass("invisible");
        //Removemos el link mostrar
        $("#lnkMostrarTramo5").addClass("invisible");
        //Removemos el link ocultar el tramo 3
        $("#lnkEsconderTramo4").addClass("invisible");
        //Aca hacemos que se coloque el valor del campo anterior
        $('#txtMultiCiudadDesde5').attr('value', $('#txtMultiCiudadHasta4').attr('value'))
        //Agregamos validacion
        agrRAV_TramoX("txtMultiCiudadDesde5", "txtMultiCiudadHasta5", "rdbMultiCiudad")
    });
    //Link para ocultar
    $("#lnkEsconderTramo5").click(function() {
        //Escondemos el div
        $("#divTramo5").addClass("invisible");
        //Mostramos el link para poder volver a mostrarlo
        $("#lnkMostrarTramo5").removeClass("invisible");
        //Mostramos el link para esconder el tramo anterior
        $("#lnkEsconderTramo4").removeClass("invisible");
        //Borramos los textboxes
        $('#txtMultiCiudadDesde5').attr('value', '')
        $('#txtMultiCiudadHasta5').attr('value', '')
        //Removemos la validacion
        $('#txtMultiCiudadHasta5').rules("remove");
    });

    //El onchange de los HASTA para completar el desde . PK 28/10/2009 cambio la funcion change por la blur para que funcione mejor.
    $('#txtMultiCiudadHasta1').blur(function() {
        $('#txtMultiCiudadDesde2').attr('value', $('#txtMultiCiudadHasta1').attr('value'))
    });

    // Date Pickers
    //Tramo 1
    // Date picker de la Tramo 1
    $('#txtMultiFecha1').datepicker($.extend({},
        $.datepicker.regional["es"], {
            numberOfMonths: 2,
            showOn: "both",
            //minDate: "today",
            minDate: strMinDate,
            maxDate: "+300d",
            onSelect: function (dateText, input) {
                var leaving = $('#txtMultiFecha1').datepicker("getDate");
                var returning = $('#txtMultiFecha2').datepicker("getDate");
                if (returning != null && leaving > returning) {
                    //Valor seleccionado
                    $('#txtMultiFecha2').datepicker("setDate", leaving)
                    $('#txtMultiFecha3').datepicker("setDate", leaving)
                    $('#txtMultiFecha4').datepicker("setDate", leaving)
                    $('#txtMultiFecha5').datepicker("setDate", leaving)
//                    //Seteamos las fechas del ida y vuelta
                    $('#txtFechaVuelta').datepicker("setDate", leaving).datepicker("option", "minDate", leaving);
//                    //Seteamos la fecha de ida
                    $('#txtFechaIda').datepicker("setDate", leaving).datepicker("setDate", leaving);
                }
            },
            buttonImage: "http://imagenes.netviax.com/corp.netviax.com/_images/cal.jpg",
            buttonImageOnly: true
        }));
    //Tramo 2
    // Date picker de la Tramo 2
    $('#txtMultiFecha2').datepicker($.extend({},
        $.datepicker.regional["es"], {
            numberOfMonths: 2,
            showOn: "both",
            //minDate: "today",
            minDate: strMinDate,
            maxDate: "+300d",
            beforeShow: function (input, inst) {
                $('#txtMultiFecha2').datepicker("option", "minDate", $('#txtMultiFecha1').datepicker("getDate"));
            },
            onSelect: function(dateText, input) {
                var leaving = $('#txtMultiFecha2').datepicker("getDate");
                var returning = $('#txtMultiFecha3').datepicker("getDate");
                if (returning != null && leaving > returning) {
                    //Valor seleccionado
                    $('#txtMultiFecha3').datepicker("setDate", leaving);
                    $('#txtMultiFecha4').datepicker("setDate", leaving);
                    $('#txtMultiFecha5').datepicker("setDate", leaving);
                }
            },
            buttonImage: "http://imagenes.netviax.com/corp.netviax.com/_images/cal.jpg",
            buttonImageOnly: true
        }));
    //Tramo 3
    // Date picker de la Tramo 3
    $('#txtMultiFecha3').datepicker($.extend({},
        $.datepicker.regional["es"], {
            numberOfMonths: 2,
            showOn: "both",
            // minDate: "today",
            minDate: strMinDate,
            maxDate: "+300d",
            beforeShow: function (input, inst) {
                $('#txtMultiFecha3').datepicker("option", "minDate", $('#txtMultiFecha2').datepicker("getDate"));
            },
            onSelect: function(dateText, input) {
                var leaving = $('#txtMultiFecha3').datepicker("getDate");
                var returning = $('#txtMultiFecha4').datepicker("getDate");
                if (returning != null && leaving > returning) {
                    //Valor seleccionado
                    $('#txtMultiFecha4').datepicker("setDate", leaving);
                    $('#txtMultiFecha5').datepicker("setDate", leaving);
                }
            },
            buttonImage: "http://imagenes.netviax.com/corp.netviax.com/_images/cal.jpg",
            buttonImageOnly: true
        }));
    //Tramo 4
    // Date picker de la Tramo 4
    $('#txtMultiFecha4').datepicker($.extend({},
    $.datepicker.regional["es"], {
        numberOfMonths: 2,
        showOn: "both",
        //minDate: "today",
        minDate: strMinDate,
        maxDate: "+300d",
        beforeShow: function (input, inst) {
            $('#txtMultiFecha4').datepicker("option", "minDate", $('#txtMultiFecha3').datepicker("getDate"));
        },
        onSelect: function(dateText, input) {
            var leaving = $('#txtMultiFecha4').datepicker("getDate");
            var returning = $('#txtMultiFecha5').datepicker("getDate");
            if (returning != null && leaving > returning) {
                //Deshabilitamos el datepicker para que no lo abra cuando hacemos el set date
                $('#txtMultiFecha5').datepicker("disable");
                //Valor seleccionado
                $('#txtMultiFecha5').datepicker("setDate", leaving);
                //Lo volvemos a habilitar
                $('#txtMultiFecha5').datepicker("enable");
            }
        },
        buttonImage: "http://imagenes.netviax.com/corp.netviax.com/_images/cal.jpg",
        buttonImageOnly: true
    }));
    //Tramo 5
    // Date picker de la Tramo 5
    $('#txtMultiFecha5').datepicker($.extend({},
    $.datepicker.regional["es"], {
        numberOfMonths: 2,
        showOn: "both",
        minDate: strMinDate,
        maxDate: "+300d",
        beforeShow: function (input, inst) {
            $('#txtMultiFecha5').datepicker("option", "minDate", $('#txtMultiFecha4').datepicker("getDate"));
        },
        buttonImage: "http://imagenes.netviax.com/corp.netviax.com/_images/cal.jpg",
        buttonImageOnly: true
    }));

    // Seteamos autocomplete para las ciudades
    $(".autocompleteCiudades").autocomplete('wsBridgeCiudades.aspx', {
        minChars: 3,
        width: 246,
        multiple: false,
        matchContains: true,
        cacheLength: 50,
        max: 50
    });

    // Seteamos autocomplete para las companias
    $(".autocompleteCompanias").autocomplete('wsBridgeCompanias.aspx', {
        minChars: 3,
        width: 200,
        multiple: false,
        matchContains: true,
        cacheLength: 50,
        max: 50
    });

    // Seteamos autocomplete para las companias
    $(".autocompletePaises").autocomplete('wsBridgePaises.aspx', {
        minChars: 2,
        width: 200,
        multiple: false,
        matchContains: true,
        cacheLength: 50,
        max: 50
    });

    //Colapsamos los que por defecto haya que colapsar
    $(".jq-divCollapsibleHeaderCollapsed").next(".divCollapsibleBody").slideUp(1);
    $(".jq-divCollapsibleHeaderCollapsed").attr('collapsed', 'true');
    //En el caso de que haya algo seleccionado en la busqueda avanzada, lo ponemos como mostrado.
    if ($('#txtCompaniaPreferida1').attr('value') != '' ||
         $('#txtCompaniaPreferida2').attr('value') != '' ||
         $('#txtCompaniaPreferida3').attr('value') != '' ||
         $('#txtNacionalidadPax').attr('value') != '' ||
         $('#txtResidenciaPax').attr('value') != ''
        ) {
        $('#collapsiblePrecioHeader').collapsed = 'true';
        $('#collapsiblePrecioHeader').removeClass('jq-divCollapsibleHeaderNotCollapsed');
        $('#collapsiblePrecioHeader').addClass('jq-divCollapsibleHeaderCollapsed');
        $('#collapsiblePrecioHeader').next(".divCollapsibleBody").slideDown(300);
    }

    //Seteamos el Collapse
    $(".divCollapsibleHeader").click(function() {
        if (this.collapsed != 'true') {
            this.collapsed = 'true';
            $(this).removeClass('jq-divCollapsibleHeaderNotCollapsed');
            $(this).addClass('jq-divCollapsibleHeaderCollapsed');
            $(this).next(".divCollapsibleBody").slideUp(300);
        }
        else {
            this.collapsed = 'false';
            $(this).removeClass('jq-divCollapsibleHeaderCollapsed');
            $(this).addClass('jq-divCollapsibleHeaderNotCollapsed');
            $(this).next(".divCollapsibleBody").slideDown(300);
        }
    });

    if ($("#txtNacionalidadPax").attr('text') != '') {
        $("[name='ctl00$BuscadorAereos$NacRes']:eq(1)").attr('checked', true);
        $(".divPais").removeClass('invisible');
        $("#txtNacionalidadPax").attr('disabled', false);
        $("#txtNacionalidadPax").removeClass('invisible');

        $("#txtResidenciaPax").attr('disabled', true);
        $("#txtResidenciaPax").addClass('invisible');
        $("#txtResidenciaPax").attr('value', '');
        $("#txtResidenciaPax_COGIGO").attr('value', '');
    }

    if ($("#txtResidenciaPax").attr('text') != '') {
        $("[name='ctl00$BuscadorAereos$NacRes']:eq(2)").attr('checked', true);
        $(".divPais").removeClass('invisible');
        $("#txtResidenciaPax").attr('disabled', false);
        $("#txtResidenciaPax").removeClass('invisible');

        $("#txtNacionalidadPax").attr('disabled', true);
        $("#txtNacionalidadPax").addClass('invisible');
        $("#txtNacionalidadPax").attr('value', '');
        $("#txtNacionalidadPax_CODIGO").attr('value', '');
    }

    $("[name='ctl00$BuscadorAereos$NacRes']").click(function() {

        var var_name = $("[name='ctl00$BuscadorAereos$NacRes']:checked").val();
        switch (var_name) {
            case 'rdbNiResNiNac':
                $(".divPais").addClass('invisible');
                $("#txtNacionalidadPax").attr('disabled', true);
                $("#txtNacionalidadPax").addClass('invisible');
                $("#txtNacionalidadPax").attr('value', '');
                $("#txtNacionalidadPax_COGIGO").attr('value', '');

                $("#txtResidenciaPax").attr('disabled', true);
                $("#txtResidenciaPax").addClass('invisible');
                $("#txtResidenciaPax").attr('value', '');
                $("#txtResidenciaPax_COGIGO").attr('value', '');
                break;

            case 'rdbResidencia':
                $(".divPais").removeClass('invisible');
                $("#txtNacionalidadPax").attr('disabled', true);
                $("#txtNacionalidadPax").addClass('invisible');
                $("#txtNacionalidadPax").attr('value', '');
                $("#txtNacionalidadPax_COGIGO").attr('value', '');

                $("#txtResidenciaPax").attr('disabled', false);
                $("#txtResidenciaPax").removeClass('invisible');
                break;

            case 'rdbNacionalidad':
                $(".divPais").removeClass('invisible');
                $("#txtNacionalidadPax").attr('disabled', false);
                $("#txtNacionalidadPax").removeClass('invisible');

                $("#txtResidenciaPax").attr('disabled', true);
                $("#txtResidenciaPax").addClass('invisible');
                $("#txtResidenciaPax").attr('value', '');
                $("#txtResidenciaPax_COGIGO").attr('value', '');
                break;

        }
    });

    $("#iBtnBuscar").click(function(e) {
        //Chequeamos si la form es valida
        if ($(".formConBuscador").valid()) {
            //Como es valida, chequeamos algunas cositas, por ejemplo si es ida y vuelta, SI tiene la misma
            //fecha de ida que de vuelta, y le pedimos confirmacion
            if ($("[name='ctl00$BuscadorAereos$TipoItinerario']:checked").val() == "rdbIdaYVuelta") {
                if ($("#txtFechaIda").attr('value') == $("#txtFechaVuelta").attr('value')) {
                    e.preventDefault();
                    $.alerts.okButton = "Sí, deseo continuar la búsqueda";
                    $.alerts.cancelButton = "No, modificar mi búsqueda";
                    jConfirm('Detectamos que Ud. ha escogido la misma fecha de partida que de regreso', 'Confirme su búsqueda', function(r) {
                        if (r) {
                            $.blockUI({ message: $('#domMessage') });
                            //Sacamos la imagen del boton para que no apreten dos veces.
                            $(this).removeClass("btnContinuarActivo");
                            $(this).addClass("btnContinuarEnEspera");
                            $(this).prev(".divbtnContinuar").removeClass("divbtnContinuarActivo");
                            $(this).prev(".divbtnContinuar").addClass("divbtnContinuarEnEspera");
                            ConfirmoAsiQueMandoElCallBack(function() { __doPostBack($("#iBtnBuscar").attr("name"), ""); });
                        }
                    });
                }
                else {
                    $.blockUI({ message: $('#domMessage') });
                    //Sacamos la imagen del boton para que no apreten dos veces.
                    $(this).removeClass("btnContinuarActivo");
                    $(this).addClass("btnContinuarEnEspera");
                    $(this).prev(".divbtnContinuar").removeClass("divbtnContinuarActivo");
                    $(this).prev(".divbtnContinuar").addClass("divbtnContinuarEnEspera");
                }
            }
            else {
                $.blockUI({ message: $('#domMessage') });
                //Sacamos la imagen del boton para que no apreten dos veces.
                $(this).removeClass("btnContinuarActivo");
                $(this).addClass("btnContinuarEnEspera");
                $(this).prev(".divbtnContinuar").removeClass("divbtnContinuarActivo");
                $(this).prev(".divbtnContinuar").addClass("divbtnContinuarEnEspera");
            }
        }
    });

}

function ConfirmoAsiQueMandoElCallBack(CallBackYes) {
    if ($.isFunction(CallBackYes)) {
        CallBackYes.apply();
    }
}

function agrRAV() {

    //Agregamos las reglas para los aereos

    //Ida
    //Agregamos la validacion para la CiudadOrigen
    agrRAV_TramoX("txtCiudadDesdeOW", "txtCiudadHastaOW", "rdbIda")

    //Ida y vuelta
    agrRAV_TramoX("txtCiudadDesde", "txtCiudadHasta", "rdbIdaYVuelta")

    //MultiCiudad
    agrRAV_TramoX("txtMultiCiudadDesde1", "txtMultiCiudadHasta1", "rdbMultiCiudad")
    agrRAV_TramoX("txtMultiCiudadDesde2", "txtMultiCiudadHasta2", "rdbMultiCiudad")

    //Busqueda avanzada
    agrRAV_CiaPreferidaX("txtCompaniaPreferida1")
    agrRAV_CiaPreferidaX("txtCompaniaPreferida2")
    agrRAV_CiaPreferidaX("txtCompaniaPreferida3")

    //Agregamos la validacion para la nacionalidad
    $("#txtNacionalidadPax").rules("add", {
        paisCheck: true,
        messages: {
            paisCheck: "<br />No se puede encontrar un pais coincidente"
        }
    });

    //Agregamos la validacion para la residencia
    $("#txtResidenciaPax").rules("add", {
        paisCheck: true,
        messages: {
            paisCheck: "<br />No se puede encontrar un pais coincidente"
        }
    });
}

function agrRAV_TramoX(x, y, z) {
    //Agregamos la validacion para la CiudadOrigen Tramo x
    $("#" + x).rules("add", {
        required: {
            depends: function(element) {
                return ($("#" + z).attr('checked'))
            }
        },
        cityCheck: {
            depends: function(element) {
                return ($("#" + z).attr('checked'))
            }
        },
        messages: {
            required: "<br />Ingrese una ciudad de Origen",
            cityCheck: "<br />No se puede encontrar una ciudad coincidente"
        }
    });
    //Agregamos la validacion para la CiudadDestino Tramo x
    $("#" + y).rules("add", {
        required: {
            depends: function(element) {
                return ($("#" + z).attr('checked'))
            }
        },
        cityCheck: {
            depends: function(element) {
                return ($("#" + z).attr('checked'))
            }
        },
        messages: {
            required: "<br />Ingrese una ciudad de Destino",
            cityCheck: "<br />No se puede encontrar una ciudad coincidente"
        }
    });
}

function agrRAV_CiaPreferidaX(x) {
    //Agregamos la validacion para la CompaniaPreferida X
    $("#" + x).rules("add", {
        ciaCheck: true,
        messages: {
            ciaCheck: "<br />No se puede encontrar una aerolinea coincidente"
        }
    });
}

function remRAV() {

    $("#txtCiudadDesdeOW").rules("remove");
    $("#txtCiudadHastaOW").rules("remove");

    $("#txtCiudadDesde").rules("remove");
    $("#txtCiudadHasta").rules("remove");

    $("#txtMultiCiudadHasta1").rules("remove");
    $("#txtMultiCiudadHasta2").rules("remove");

    $("#txtCompaniaPreferida1").rules("remove");
    $("#txtCompaniaPreferida2").rules("remove");
    $("#txtCompaniaPreferida3").rules("remove");
    $("#txtNacionalidadPax").rules("remove");
    $("#txtResidenciaPax").rules("remove");

}



// jquery.NetviaxUCBuscadorPaquetes.js
function OkBP() {

    //Cargado inicial de regiones
    $("#lstListaRegiones").ajaxFillSelect($("#lstListaRegiones"),
                                                                    "_scripts/jsonWebServices/GetDataPaquetes.asmx/GetRegiones",
                                                                        '*',
                                                                        '*',
                                                                        '*',
                                                                        '*',
                                                                        'buscarvalorpordefecto');

    //Cargado inicial de paises
    $("#lstListaPaises").ajaxFillSelect($("#lstListaPaises"),
                                                                    "_scripts/jsonWebServices/GetDataPaquetes.asmx/GetPaises",
                                                                        '*',
                                                                        '*',
                                                                        '*',
                                                                        '*',
                                                                        'buscarvalorpordefecto');

    //Cargado inicial de ciudades
    $("#lstListaCiudades").ajaxFillSelect($("#lstListaCiudades"),
                                                                    "_scripts/jsonWebServices/GetDataPaquetes.asmx/GetCiudades",
                                                                        '*',
                                                                        '*',
                                                                        '*',
                                                                        '*',
                                                                        'buscarvalorpordefecto');

    //Cargado inicial de regiones
    $("#lstListaCategoria").ajaxFillSelect($("#lstListaCategoria"),
                                                                    "_scripts/jsonWebServices/GetDataPaquetes.asmx/GetCategorias",
                                                                        '*',
                                                                        '*',
                                                                        '*',
                                                                        '*',
                                                                        'buscarvalorpordefecto');

    //Click Function, cuando cambia la region cambian los paises y las ciudades disponibles
    $("#lstListaRegiones").change(function() {

        $("#lstListaPaises").ajaxFillSelect($("#lstListaPaises"),
                                                                        "_scripts/jsonWebServices/GetDataPaquetes.asmx/GetPaises",
                                                                            '*',
                                                                            $("#lstListaRegiones").val(),
                                                                            '*',
                                                                            '*');

        $("#lstListaCiudades").ajaxFillSelect($("#lstListaCiudades"),
                                                                        "_scripts/jsonWebServices/GetDataPaquetes.asmx/GetCiudades",
                                                                            '*',
                                                                            $("#lstListaRegiones").val(),
                                                                            '*',
                                                                            '*');
        $('#txtlstListaRegiones').attr('value', $("#lstListaRegiones").val());

    });

    //Click Function, cuando cambia el pais cambian las ciudades disponibles
    $("#lstListaPaises").change(function() {

        $("#lstListaCiudades").ajaxFillSelect($("#lstListaCiudades"),
                                                                        "_scripts/jsonWebServices/GetDataPaquetes.asmx/GetCiudades",
                                                                            '*',
                                                                            '*',
                                                                            $("#lstListaPaises").val(),
                                                                            '*');
        $('#txtlstListaPaises').attr('value', $("#lstListaPaises").val());
    });

    //Click Function
    $("#lstListaCiudades").change(function() {
        $('#txtlstListaCiudades').attr('value', $("#lstListaCiudades").val());
    });

    //Click Function
    $("#lstListaCategoria").change(function() {
        $('#txtlstListaCategoria').attr('value', $("#lstListaCategoria").val());
    });

    // Seteamos los datepicker
    // Date picker de ida. Al seleccionar fecha, seteamos la fecha del de la vuelta
    $('#txtPaqFechaDesde').datepicker($.extend({},
                $.datepicker.regional["es"], {
                    numberOfMonths: 2,
                    showOn: "both",
                    minDate: "today",
                    maxDate: "+300d",
                    onSelect: function(dateText, input) {
                        var leaving = $('.txtPaqFechaDesde').datepicker("getDate");
                        var returning = $('.txtPaqFechaHasta').datepicker("getDate");
                        // if (returning != null && leaving > returning) {
                        //Deshabilitamos el datepicker para que no lo abra cuando hacemos el set date
                        $('.txtPaqFechaHasta').datepicker("disable");
                        //Valor seleccionado
                        $('.txtPaqFechaHasta').datepicker("setDate", leaving);
                        $('.txtPaqFechaHasta').datepicker("option", "minDate", leaving);
                        //Lo volvemos a habilitar
                        $('.txtPaqFechaHasta').datepicker("enable");
                        //}
                    },
                    buttonImageOnly: true,
                    buttonImage: "_images/cal.jpg"
                }));

    $('#txtPaqFechaHasta').datepicker($.extend({},
                $.datepicker.regional["es"], {
                    numberOfMonths: 2,
                    showOn: "both",
                    minDate: "today",
                    maxDate: "+300d",
                    buttonImage: "_images/cal.jpg",
                    buttonImageOnly: true
                }));
    $("#imBtnBuscarPaquetes").click(function() {
        if ($(".formConBuscador").valid()) {
            $(this).removeClass("btnContinuarActivo");
            $(this).addClass("btnContinuarEnEspera");
            //$("#iBtnBuscarPaquetes").removeClass("btnContinuarEnEspera");
            //$("#iBtnBuscarPaquetes").addClass("btnContinuarActivo");
            $(this).prev(".divbtnContinuar").removeClass("divbtnContinuarActivo");
            $(this).prev(".divbtnContinuar").addClass("divbtnContinuarEnEspera");
        }
    });


}
function customRangePaquetes(input) {return { minDate: $('.txtPaqFechaDesde').datepicker("getDate")}};
function agrRPV() {return}
function remRPV() { return }

function OkBS() {
    $('#cboOptions').change(
        function () {
            $('.divDetallesSeguros').fadeOut('slow');
            $('#div' + $('#cboOptions').val()).fadeIn('slow');
        });
}
