/*************************************
 * FUNCIONES DEL WIDGET ESP_BUSCADOR *
 *************************************/
var cambiando_pestanya = false;//esta vble sólo será true en el momento q un usuario ha clicado una pestaña y mientras no se cargue el buscador por ajax
var url_pestanya_activa = ""; //url de la categoría de la pestaña activada por el usuario

Array.prototype.in_array=function(){ 
    for(var j in this){ 
        if(this[j]==arguments[0]){ 
            return true; 
        } 
    } 
    return false;     
} 

function inicializar_buscador(){ 
        //especificamos la fecha de hoy como fecha límite
        var now = new Date();
        var dd = now.getDate();
        var mm = now.getMonth()+1;//January is 0!
        var yyyy = now.getFullYear().toString();
        var yy = yyyy.substr(2,2);
        if(dd<10){dd='0'+dd};
        if(mm<10){mm='0'+mm};
        var hoy = dd + '-' + mm + '-' + yy;       

        //Convertir los inputs de rangos de fecha en objetos datepicker de la UI de Jquery
        //Con este código obligamos al usuario a elegir un rango
        var dates = jQuery("#fecha_ini, #fecha_fin").datepicker({
            changeMonth: true,
            dateFormat: "dd-mm-yy",
            minDate: hoy,
            onSelect: function(selectedDate){
                var option = this.id == "fecha_ini" ? "minDate" : "maxDate";
                var instance = jQuery(this).data("datepicker");
                var date = jQuery.datepicker.parseDate(instance.settings.dateFormat || jQuery.datepicker._defaults.dateFormat, selectedDate, instance.settings);
                dates.not(this).datepicker("option", option, date);
            }
        });
}

/**
 * Activa la pestaña de la categoría especificada en el widget del buscador
 * Nota: 0 es para Todas la Categorías y -1 Para la pestaña Otros
 * @param num_pestanya
 * @return
 */
function activar_pestanya_buscador(id_categoria, url_categoria){
    
    if (cambiando_pestanya) return true;
    cambiando_pestanya = true;

    //Activar la pestaña
    url_pestanya_activa = url_categoria;
    jQuery(".pestanya_buscador").removeClass("ui-tabs-selected ui-state-active");
    jQuery("#pestanya_buscador_" + id_categoria).addClass("ui-tabs-selected ui-state-active");

    //Reflejar la selección en el buscador
    // 1. Recargar la caja con las opciones
    id_provincia = (jQuery('#select_provincia').val()) ? jQuery('#select_provincia :selected').attr('id').substring(2) : 0; //Nota: quitamos el prefijo o_ de todas las opciones
    id_poblacion = (jQuery('#select_poblacion').val()) ? jQuery('#select_poblacion :selected').attr('id').substring(2) : 0; //para obtener el id
    id_pais      = (jQuery('#select_pais').val())      ? jQuery('#select_pais :selected').attr('id').substring(2)      : 0;
    id_ciudad    = (jQuery('#select_ciudad').val())    ? jQuery('#select_ciudad :selected').attr('id').substring(2)    : 0;
    id_cuando    = (jQuery('#select_cuando').val())    ? jQuery('#select_cuando').val()                                : 0;

    old_provincia = jQuery('#select_provincia :selected').attr('id');
    old_poblacion = jQuery('#select_poblacion :selected').attr('id');
    old_pais      = jQuery('#select_pais :selected').attr('id');
    old_ciudad    = jQuery('#select_ciudad :selected').attr('id');
    old_categoria = jQuery('#select_categoria :selected').attr('id');

    mostrar_internacional = jQuery('#cb_int').is(':checked');

    jQuery("#caja_buscador").html('<div align="middle" style="width:100%; height:150px;"><img src="/images_new/common/indicator16x16.gif"/>&nbsp;' + str_actualizando  + '</div>');
    var str_params = "pg_action/home_caja_buscador/ids_pestanyas/" + ids_pestanyas + 
                     "/id_categoria/" + id_categoria + 
                     "/id_destino_usr/" + id_destino_usr +
                     "/id_provincia/" + id_provincia + 
                     "/id_poblacion/" + id_poblacion + 
                     "/id_pais/" + id_pais + 
                     "/id_ciudad/" + id_ciudad +
                     "/cuando/" + id_cuando + 
                     "/mostrar_internacional/" + mostrar_internacional + "/";
    jQuery("#caja_buscador").load(url_ajax_widgets + str_params, 
            function(){
                // 2. Ver si se puede mantener la selección actual y, si no es así, quitar los criterios que convengan
                if (old_poblacion != jQuery('#select_poblacion :selected').attr('id')){
                    pop_poblacion();
                }
                if (old_provincia != jQuery('#select_provincia :selected').attr('id')){
                    pop_provincia();
                }
                if (old_ciudad != jQuery('#select_ciudad :selected').attr('id')){
                    pop_ciudad();
                }
                if (old_pais != jQuery('#select_pais :selected').attr('id')){
                    pop_pais();
                }
                if (old_categoria != jQuery('#select_categoria :selected').attr('id')){
                    pop_categoria();
                }

                //3. Rehabilitar el cambio de pestañas
                cambiando_pestanya = false;
            }
         ); 

    //Recargar el contenido de los widgets que varían en función de la categoría
    if (url_ajax_widgets != '' && widgets_recargables.length > 0){
        //añadimos una imagen de actualización para que el usuario vea q se está recargando el contenido
        jQuery(".widget_title").append('<span class"indicador"> <img alt="' + str_actualizando + '" src="/images_new/A/960/indicator.gif"></span>');
        //buscamos todos los widgets susceptibles de ser recargados
        for (var i = 0; i < widgets_recargables.length; i++){
            /*jQuery("#widget_" + widgets_recargables[i]).load(url_ajax_widgets, 
            {"widget" : widgets_recargables[i], "id_categoria" : id_categoria, "id_destino_usr" : id_destino_usr, "id_destino_home" : id_destino_home});*/
            jQuery("#widget_" + widgets_recargables[i]).load(url_ajax_widgets + "widget/" + widgets_recargables[i] + "/id_categoria/" + id_categoria + "/id_destino_usr/" + id_destino_usr + "/id_destino_home/" + id_destino_home + "/");
        }
    }
}

/**
 * Funcion para mostrar/ocultar las "cajas" / selects de criterios del buscador.
 * Ahora sólo se combinan categorias y cuandos
 * 
 * @param num
 * @return
 */
function toogle_caja(num){
    if (num == 1){
        jQuery('#select_cuando').hide();
        jQuery('#select_categoria').show();
    }else if (num == 2){
        jQuery('#select_cuando').show();
        jQuery('#select_categoria').hide();
    }
}


/**
 * Muestra u oculta la frase indicando al usuario que puede filtrar los resultados de búsqueda
 */
function frase_inicial(){
    //si hay algun criterio seleccionado no aparecerá la frase
    if (jQuery('#select_poblacion').attr("selectedIndex") >= 0
            || jQuery('#select_provincia').attr("selectedIndex") >= 0
            || jQuery('#select_pais').attr("selectedIndex") >= 0
            || jQuery('#select_ciudad').attr("selectedIndex") >= 0
            || jQuery('#select_categoria').attr("selectedIndex") >= 0
            || jQuery('#select_cuando').attr("selectedIndex") >= 0
           ){
        jQuery('#filtros').show();//jQuery('#lbl_fraseinicial').hide();
    }
    else{
        jQuery('#filtros').hide();//jQuery('#lbl_fraseinicial').show();
    }
}

function push_categoria(){
  //Mostrar el filtro al usuario
    if (jQuery('#select_categoria').val()){
        nombre = jQuery('#select_categoria :selected').text().replace(/ \([0-9]+\)/i, '');
        jQuery('#f_categoria_nombre').html(nombre);
        jQuery('#f_categoria').show();
    }
    else    {
        jQuery('#f_categoria').hide();
    }
    frase_inicial(); //Muestra u oculta la frase al usuario
}

function pop_categoria(){
    //Ocultar el filtro
    jQuery('#f_categoria').hide();

    //deseleccionar el elemento
    jQuery('#select_categoria option').attr('selected', false); 
    jQuery('#select_categoria').attr('selectedIndex', '-1');

    frase_inicial(); //Muestra u oculta la frase al usuario
}

function push_cuando(){
    //Mostrar el filtro al usuario
    if (jQuery('#select_cuando').val()){
        if (jQuery('#select_cuando').val() != 'rango')
        {
            jQuery('#f_cuando_nombre').html(jQuery('#select_cuando :selected').text());
            jQuery('#f_cuando_rango').hide();
        }
        else
        {
            jQuery('#f_cuando_nombre').html('');
            jQuery('#f_cuando_rango').show();
        }
        jQuery('#f_cuando').show();
    }
    else    {
        jQuery('#f_cuando').hide();
    }

    frase_inicial(); //Muestra u oculta la frase al usuario
}

function pop_cuando(){
    //Ocultar el filtro
    jQuery('#f_cuando').hide();
    jQuery('#f_cuando_rango').hide();

    //deseleccionar el elemento
    jQuery('#select_cuando option').attr('selected', false); 
    jQuery('#select_cuando').attr('selectedIndex', '-1');

    frase_inicial(); //Muestra u oculta la frase al usuario
}

function push_provincia(){
    //Mostrar el filtro al usuario
    if (jQuery('#select_provincia').val()){
        nombre = jQuery('#select_provincia :selected').text().replace(/ \([0-9]+\)/i, '');
        jQuery('#f_provincia_nombre').html(nombre);
        jQuery('#f_provincia').show();
    }
    else    {
        jQuery('#f_provincia').hide();
    }

    frase_inicial(); //Muestra u oculta la frase al usuario
    poblaciones_dinamicas();
}

function pop_provincia(){
    //Ocultar el filtro
    jQuery('#f_provincia').hide();

    //deseleccionar el elemento
    jQuery('#select_provincia option').attr('selected', false); 
    jQuery('#select_provincia').attr('selectedIndex', '-1');

    frase_inicial(); //Muestra u oculta la frase al usuario
    categorias_dinamicas();
}

function push_poblacion(){
    //Mostrar el filtro al usuario
    if (jQuery('#select_poblacion').val()){
        nombre = jQuery('#select_poblacion :selected').text().replace(/ \([0-9]+\)/i, '');
        jQuery('#f_poblacion_nombre').html(nombre);
        jQuery('#f_poblacion').show();
    }
    else    {
        jQuery('#f_poblacion').hide();
    }

    frase_inicial(); //Muestra u oculta la frase al usuario
    categorias_dinamicas();
}

function pop_poblacion(){
    //Ocultar el filtro
    jQuery('#f_poblacion').hide();
    
    //deseleccionar el elemento
    jQuery('#select_poblacion option').attr('selected', false); 
    jQuery('#select_poblacion').attr('selectedIndex', '-1');

    frase_inicial(); //Muestra u oculta la frase al usuario
    categorias_dinamicas();
}

function push_pais(){
    //Mostrar el filtro al usuario
    if (jQuery('#select_pais').val()){
        nombre = jQuery('#select_pais :selected').text().replace(/ \([0-9]+\)/i, '');
        jQuery('#f_pais_nombre').html(nombre);
        jQuery('#f_pais').show();
    }
    else    {
        jQuery('#f_pais').hide();
    }

    frase_inicial(); //Muestra u oculta la frase al usuario
    ciudades_dinamicas();
}

function pop_pais(){
    //Ocultar el filtro
    jQuery('#f_pais').hide();

    //deseleccionar el elemento
    jQuery('#select_pais option').attr('selected', false); 
    jQuery('#select_pais').attr('selectedIndex', '-1');

    frase_inicial(); //Muestra u oculta la frase al usuario
    categorias_dinamicas();
}

function push_ciudad(){
    //Mostrar el filtro al usuario
    if (jQuery('#select_ciudad').val()){
        nombre = jQuery('#select_ciudad :selected').text().replace(/ \([0-9]+\)/i, '');
        jQuery('#f_ciudad_nombre').html(nombre);
        jQuery('#f_ciudad').show();
        
    }
    else    {
        jQuery('#f_ciudad').hide();
    }

    frase_inicial(); //Muestra u oculta la frase al usuario
    categorias_dinamicas();
}

function pop_ciudad(){
    //Ocultar el filtro
    jQuery('#f_ciudad').hide();
    
    //deseleccionar el elemento
    jQuery('#select_ciudad option').attr('selected', false); 
    jQuery('#select_ciudad').attr('selectedIndex', '-1');

    frase_inicial(); //Muestra u oculta la frase al usuario
    categorias_dinamicas();
}

/**
 * recarga el listado de poblaciones en función de la provincia
 */
function poblaciones_dinamicas()
{
    id_provincia = (jQuery('#select_provincia').val()) ? jQuery('#select_provincia :selected').attr('id').substring(2) : 0;
    id_poblacion = (jQuery('#select_poblacion').val()) ? jQuery('#select_poblacion :selected').attr('id').substring(2) : 0;
    id_categoria = jQuery('.ui-tabs-selected.pestanya_buscador').attr('id').substring(18); //id="pestanya_buscador_{$id_pestanya}"

    old_poblacion = jQuery('#select_poblacion :selected').attr('id');

    //Resetear listado de poblacciones
    jQuery('#select_poblacion').children().remove().end().append('<option value="">' + str_cargando + '</option>');
    var str_params = "pg_action/home_destinos_buscador/ids_pestanyas/" + ids_pestanyas + 
                     "/id_categoria/" + id_categoria + "/id_provincia/" + id_provincia + "/";
    jQuery.getJSON( url_ajax_widgets + str_params,
                    function(destinos){
                        jQuery('#select_poblacion').children().remove(); //eliminar el texto Cargando.. del select

                        //Agregar los nuevos destinos
                        for ( var id_destino in destinos ){
                            //Workaround Para que el append de opciones funcione en I.E se tiene que hacer así para setear el atributo text. 
                            jQuery("<option>").attr("value", destinos[id_destino].url_destino).text(destinos[id_destino].nombre + " (" + destinos[id_destino].eventos + ")").appendTo("#select_poblacion");
                            jQuery('#select_poblacion').children(":last").attr('id', "o_" + id_destino);
                            if (id_poblacion == id_destino) jQuery('#select_poblacion').children(":last").attr('selected', true);
                        }

                        //Ver si se puede mantener la selección actual y, si no es así, quitar el criterio población
                        if (old_poblacion != jQuery('#select_poblacion :selected').attr('id')){
                            pop_poblacion();
                        }

                        //después de actualizar la selección de destinos recargamos el listado de categorías
                        categorias_dinamicas();
                    });
}

/**
 * recarga el listado de ciudades en función del pais
 */
function ciudades_dinamicas()
{
    id_pais      = (jQuery('#select_pais').val())   ? jQuery('#select_pais :selected').attr('id').substring(2) : 0;
    id_ciudad    = (jQuery('#select_ciudad').val()) ? jQuery('#select_ciudad :selected').attr('id').substring(2) : 0;
    id_categoria = jQuery('.ui-tabs-selected.pestanya_buscador').attr('id').substring(18); //id="pestanya_buscador_{$id_pestanya}"

    old_ciudad    = jQuery('#select_ciudad :selected').attr('id');

    //Resetear listado de ciudades
    jQuery('#select_ciudad').children().remove().end().append('<option value="">' + str_cargando + '</option>');
    var str_params = "pg_action/home_destinos_buscador/ids_pestanyas/" + ids_pestanyas + 
    "/id_categoria/" + id_categoria + "/id_pais/" + id_pais + "/";
    jQuery.getJSON( url_ajax_widgets + str_params,
                    function(destinos){
                        jQuery('#select_ciudad').children().remove(); //eliminar el texto Cargando.. del select
                        
                        //Agregar los nuevos destinos
                        for ( var id_destino in destinos ){
                            //Workaround Para que el append de opciones funcione en I.E se tiene que hacer así para setear el atributo text. 
                            jQuery("<option>").attr("value", destinos[id_destino].url_destino).text(destinos[id_destino].nombre + " (" + destinos[id_destino].eventos + ")").appendTo("#select_ciudad");
                            jQuery('#select_ciudad').children(":last").attr('id', "o_" + id_destino);                            
                            if (id_ciudad == id_destino) jQuery('#select_ciudad').children(":last").attr('selected', true);
                        }

                        //Ver si se puede mantener la selección actual y, si no es así, quitar el criterio ciudad
                        if (old_ciudad != jQuery('#select_ciudad :selected').attr('id')){
                            pop_ciudad();
                        }

                        //después de actualizar la selección de destinos recargamos el listado de categorías
                        categorias_dinamicas();
                    });
}

/**
 * Cuando el usuario cambia el valor del checkbox de destinos internacionales se cambian los listados de destinos
 * que aparecen en el buscador y la selección de destinos previa del usuario
 * @return
 */
function toogle_destinos_int(){ 
    if (jQuery('#cb_int').is(':checked')){ 
        jQuery('#caja_provincia').hide();
        jQuery('#caja_poblacion').hide();

        jQuery('#caja_pais').show();
        jQuery('#caja_ciudad').show();

        pop_poblacion();
        pop_provincia();
    }else{
        jQuery('#caja_provincia').show();
        jQuery('#caja_poblacion').show();

        jQuery('#caja_pais').hide();
        jQuery('#caja_ciudad').hide();

        pop_ciudad();
        pop_pais();
    }
}

/**
 * recarga el listado de categorias en función del estado del buscador
 */
function categorias_dinamicas()
{
    if (jQuery('#select_categoria').length > 0){
        id_provincia    = (jQuery('#select_provincia').val()) ? jQuery('#select_provincia :selected').attr('id').substring(2) : 0; //Nota: quitamos el prefijo o_ de todas las opciones
        id_poblacion    = (jQuery('#select_poblacion').val()) ? jQuery('#select_poblacion :selected').attr('id').substring(2) : 0; //para obtener el id
        id_pais         = (jQuery('#select_pais').val())      ? jQuery('#select_pais :selected').attr('id').substring(2)      : 0;
        id_ciudad       = (jQuery('#select_ciudad').val())    ? jQuery('#select_ciudad :selected').attr('id').substring(2)    : 0;
        id_categoria    = jQuery('.ui-tabs-selected.pestanya_buscador').attr('id').substring(18); //id="pestanya_buscador_{$id_pestanya}"
        id_subcategoria = (jQuery('#select_categoria').val()) ? jQuery('#select_categoria :selected').attr('id').substring(2) : 0;
        id_destino      = (id_ciudad) ? id_ciudad : ((id_pais) ? (id_pais) : ( (id_poblacion) ?  (id_poblacion) : (id_provincia ? id_provincia : 0)));
        mostrar_internacional = jQuery('#cb_int').is(':checked');
        old_categoria   = (jQuery('#select_categoria').val()) ? jQuery('#select_categoria :selected').attr('id'): 0;

        //Resetear listado de categorias
        jQuery('#select_categoria').children().remove().end().append('<option value="">' + str_cargando + '</option>');
        var str_params = "pg_action/home_categorias_buscador/ids_pestanyas/" + ids_pestanyas + 
        "/id_categoria/" + id_categoria + "/id_destino/" + id_destino +
        "/id_destino_usr/" + id_destino_usr + "/mostrar_internacional/" + mostrar_internacional + "/";
        jQuery.getJSON( url_ajax_widgets + str_params,
                        function(categorias){
                            jQuery('#select_categoria').children().remove();

                            //Agregar las nuevas categorias
                            for ( var id_c in categorias ){
                                if (typeof(categorias[id_c].value) == "undefined"){
                                    jQuery("<option>").attr("value", categorias[id_c].url_categoria).text(categorias[id_c].nombre).appendTo("#select_categoria");
                                    jQuery('#select_categoria').children(":last").attr('id', "o_" + id_c);
                                    if (id_subcategoria == id_c) jQuery('#select_categoria').children(":last").attr('selected', true);
                                }else{
                                    var grupo = document.createElement("optgroup");
                                    grupo.label = categorias[id_c].nombre;
                                    for (id_sc in categorias[id_c].value){
                                        jQuery("<option>").attr("value", categorias[id_c].value[id_sc].url_categoria).text(categorias[id_c].value[id_sc].nombre).appendTo(grupo);
                                        jQuery(grupo).children(":last").attr('id', "o_" + id_sc);
                                        if (id_subcategoria == id_sc) jQuery(grupo).children(":last").attr('selected', true);
                                    }
                                    jQuery('#select_categoria').append(grupo);
                                }
                            }

                            if (old_categoria != jQuery('#select_categoria :selected').attr('id')){
                                pop_categoria();
                            }
                        });
    }
}

/**
 * Resetea la selección del usuario
 * @return
 */
function resetBuscador()
{
    jQuery('select').attr('selectedIndex', '-1');
    //En función de la configuración inicial de la home, deja el buscador en el estado original
    if (id_destino_usr == 0){ //home normal
            jQuery('cb_int').attr('checked', false);
            jQuery('#caja_provincia').show();
            jQuery('#caja_poblacion').show();

            jQuery('#caja_pais').hide();
            jQuery('#caja_ciudad').hide();

            jQuery('#caja_categorias').remove();
            
            if (jQuery('#select_categoria').length > 0){
                jQuery('#select_cuando').show();
                jQuery('#select_categoria').remove();
                
                jQuery('#label_caja_cuando').html(str_cuando);
            }
    }else if (id_destino_usr == -1){ //home internacional
        if (jQuery('#select_categoria').length > 0){
            jQuery('#select_cuando').show();
            jQuery('#select_categoria').remove();

            jQuery('#label_caja_cuando').html(str_cuando);
        }
    }
    //Inicializo los campos de las fechas
    jQuery("#fecha_ini").val("");
    jQuery("#fecha_fin").val("");
}

/**
 * Devuelve la url del destino actual
 * @return
 */
function get_url_destino()
{
    var url_destino;
    
    if (id_destino_usr > 0){
        //Home X Provincia
        if (jQuery('#select_poblacion').attr('selectedIndex') != -1 && ('select_poblacion').value != ''){
            url_destino = $('select_poblacion').value;
        }else{
            url_destino = url_destino_usr;
        }
    }else if(id_destino_usr == -1){
        //Home Internacional
        if ($('select_pais').selectedIndex == -1 && $('select_ciudad').selectedIndex == -1){
            url_destino = '';
        }else{
            if ($('select_ciudad').value != ''){
                url_destino = $('select_ciudad').value;
            }else if ($('select_pais').value != ''){
                url_destino = $('select_pais').value;
            }
        }
    }else{
        //Home Normal
        if ( jQuery('#select_provincia').attr('selectedIndex')== -1 && jQuery('#select_poblacion').attr('selectedIndex')== -1 && jQuery('#select_pais').attr('selectedIndex')== -1 && jQuery('#select_ciudad').attr('selectedIndex')== -1){
            url_destino = '';
        }else{
            if ($('select_poblacion').value != ''){
                url_destino = $('select_poblacion').value;
            }else if ($('select_provincia').value != ''){
                url_destino = $('select_provincia').value;
            }else if ($('select_ciudad').value != ''){
                url_destino = $('select_ciudad').value;
            }else if ($('select_pais').value != ''){
                url_destino = $('select_pais').value;
            }
        }
    }
    return url_destino;
}

/**
 * Buscar resultados con los criterios del buscador
 * @return
 */
function buscar_eventos(){
    var param = '';
    var clave = '';
    var url = '';
    var url_destino = get_url_destino();
    var subproducto_invertido = false;

    // - Destino
    if (url_destino != ''){
        //Mirar si el destino tiene clave detrás o no
        trozos_destino = url_destino.split("/");
        //la clave estará en el último trozo
        if (trozos_destino[trozos_destino.length -1] != ""){
            clave = trozos_destino[trozos_destino.length -1];
            trozos_destino[trozos_destino.length -1] = ""; //quitamos la clave del array
        }
        url += trozos_destino.join("/");
    }

    // - Categoria -> substituir para que lea las categorias de
    if (jQuery('#select_categoria').length > 0 && $('select_categoria').value != ''){
        url += $('select_categoria').value;

        /*
        //#1003 Si la categoria es de un subproducto distinto, habrá que cambiar la url base
        if (YUD.hasClass($('id_categoria').options[$('id_categoria').selectedIndex],'is_c_combinada'))
            subproducto_invertido = true;
            */
    } else if (jQuery('#select_categoria').length > 0 && url_pestanya_activa == '') {
        // Sirve para que si es la pestaña otras, se filtre por las opciones que hay en la lista de categorias
        var arr_urls= {};
        var txt_url= "";
        for (var i= 0; i < $("select_categoria").childNodes.length; i++) {
            var tmpchilds= $("select_categoria").childNodes[i];
            if (tmpchilds.nodeName.toUpperCase() == "OPTGROUP") {
                for (var j= 0; j < tmpchilds.childNodes.length; j++) {
                    if (tmpchilds.childNodes[j].nodeName.toUpperCase() == "OPTION") {
                        var txt_split= tmpchilds.childNodes[j].getAttribute("value").split("/");
                        if (txt_split.length > 0 && txt_split[0] != "") {
                            var tmp_url= txt_split[0];
                            if (!arr_urls[tmp_url] || arr_urls[tmp_url] == 0) {
                                txt_url += tmp_url + "/";
                                arr_urls[tmp_url]= "1";
                            }
                        }
                    }
                }
            }
        }
        url += txt_url;
    } else {
        //si hay pestaña, cojemos la url de la pestaña
        if (url_pestanya_activa != '') {
            url += url_pestanya_activa;
        }
        
        /*if (jQuery(".pestanya_buscador.ui-tabs-selected > a").attr('id') != ''){
            url += jQuery(".pestanya_buscador.ui-tabs-selected > a").attr('id');
        }*/
        
    }
    // - Cuando
    if ($('select_cuando').value != ''){
        if ($('select_cuando').value == 'rango'){
            if (($('fecha_ini').value != "") && ($('fecha_fin').value != "")) 
                url = url + prefijo_fecha_desde + '-' + $('fecha_ini').value + '-' + prefijo_fecha_hasta + '-' + $('fecha_fin').value + '/';
        }else{
            url += $('select_cuando').value + '/';
        }
    }

    // - Flags (Internacional)
    if ( (((url_destino == '') && $('cb_int').checked) || (id_destino_usr == -1)) && (url_destino == '')){
        //Si es home internacional o está clicado el checkbox de destinos internacionales y no se ha seleccionado ningún destino añadir la condicion
        url += url_internacional;
    }

    //Añadir la clave de la url si es necesario
    if (clave != ''){
        url += clave;
    }

    if (url == ''){
        if (subproducto_invertido){
            resultados_url = url_base_inv + url_controlador;
        }else{
            resultados_url = url_base + url_controlador;
        }
    }else{
        if (subproducto_invertido){
            resultados_url = url_base_inv + url;
        }else{
            resultados_url = url_base + url;
        }
    }

    resetBuscador();

    // cargar la página de resultados de búsqueda 
    //alert(resultados_url);return;
    location.href = resultados_url;
}

/****************************************************
 * FUNCIONES DEL WIDGET ESP_BUSCADOR_PALABRAS_CLAVE *
 ****************************************************/

jQuery(function($) {
    var inputPalabrasClave = $('#palabras_clave');

    ATR.initPlaceholders(inputPalabrasClave);

    /**
     * Se llama a esta función una vez cargado el widget del buscador por palabras
     * Cambia el formulario normal y corriente por el que genera urls bonitas y traquea en Analytics
     * @return
     */
    window.inicializar_buscador_palabras = function() {

        //añadir el evento keypress para poder forzar el submit cuando el usuario pulsa intro
        inputPalabrasClave.keypress(function(evento){
            var keyCode = evento ? (evento.which ? evento.which : evento.keyCode) : event.keyCode;
            if (keyCode == 13) {
                GATrackEvent("buscador_keyword", "click", nombre_subproducto, 0);
                buscar_palabras_clave();
                return false;
            }
        });

        //cambiar la acción click del botón del buscador
        jQuery("#btn_buscador_palabras").click(function(){
            GATrackEvent("buscador_keyword", "click", nombre_subproducto, 0);
            buscar_palabras_clave();
            return false;
        });
    }

    /**
     * verifica que los datos obligatorios del formulario de búsqueda por palabras se han rellenado.
     */
    window.comprobar_palabras_clave = function () {
        var val= inputPalabrasClave.val();
        // El unico criterio a comprobar es palabras clave.
        if (val == '' || val == str_palabras_clave || val == 'palabras clave') {
            alert(no_keywords); //Debes escribir alguna palabra clave
            inputPalabrasClave.focus();
            return false;
        }
        return true;
    }

    /**
     * Realiza la búsqueda de palabras clave
     */
    window.buscar_palabras_clave = function () {
        if (comprobar_palabras_clave()){
            var url_keywords = url_base + inputPalabrasClave.val() + "_k/";
            location.href = url_keywords;
        }
    }

    inicializar_buscador_palabras(); // Inicializamos el buscador.
});

/*************************************************
 * FUNCIONES DEL WIDGET ESP_EVENTOS_MAS_BUSCADOS *
 *************************************************/
function inicializar_eventos_mas_buscados(){
    jQuery("#titulo_caja_historial").append('<span id="indicator_historial" class"indicador"> <img alt="' + str_actualizando + '" src="/images_new/A/960/indicator.gif"></span>');
}

function inicializar_eventos_historial(){
    try{
        //if(!historial) initHistorial(); //cargar el historial de espectáculos del usuario
        var h = new ESPHistorial();
        var enlacesFichas = h.getEnlacesFichas(3);
        if( enlacesFichas.length > 0 ){
            enlacesFichas.reverse(); //invertir el orden del array para inserir primero la visita más antigua y que la más nueva quede arriba
            for (i=0; i < enlacesFichas.length; i++)
            {
                //eliminar el último enlace actual del widget (el menos interesante)
                jQuery("#ul_ultimas_busquedas li:last").remove();

                //añadir el enlace del usuario al principio de la lista
                jQuery("#ul_ultimas_busquedas").prepend(enlacesFichas[i]);
            }

            //cambiar el títulio del widget
            if (enlacesFichas.length >= 3)
            jQuery("#titulo_caja_historial").html('<#t id="titulo_caja_historial_usuario" escape="js"#>M<#/t#>');
        }
    }catch(e){}
    jQuery("#indicator_historial").remove();
}

/**********************************************
 * FUNCIONES DEL WIDGET ESP_EVENTOS_AGRUPADOS *
 **********************************************/
function inicializar_eventos_agrupados(){
    //ocultar todas las pestañas menos la primera
    activar_bloque_eventos_agrupados(1);

    //activar la función onclick de cada una
    jQuery("#pestanyas_eventos_agrupados a").click(function(){
        var index = jQuery("#pestanyas_eventos_agrupados a").index(this);
        activar_bloque_eventos_agrupados(index +1);
        return false;
    });
}

/**
 * Activa la pestaña del bloque especificado en el widget de eventos agrupados
 * @param num_bloque
 * @return
 */
function activar_bloque_eventos_agrupados(num_bloque){
    //Activar la pestaña
    jQuery(".pestanya_eventos_agrupados").removeClass("activo");
    jQuery("#pestanya_eventos_agrupados" + num_bloque).addClass("activo");

    //Mostrar el bloque
    jQuery(".bloque_eventos_agrupados").addClass("hidden");
    jQuery("#bloque" + num_bloque).removeClass("hidden");
}

/**
 * Llama a las funciones necesarias para inicializar la home en el ready
 */
function init_home(){
     inicializar_eventos_historial();
     initCrazyEggTracking();
}
 
/**
 * Inyecta el código de analítica de Crazy Egg (#59787)
 */
function initCrazyEggTracking(){
    try { var insertaCrazyEgg = ATRDATA.ESP.home.insertaCrazyEgg; } catch(e) {}
    if (typeof insertaCrazyEgg != 'undefined' && insertaCrazyEgg) {
        setTimeout(function(){var a=document.createElement("script");
        var b=document.getElementsByTagName('script')[0];
        a.src=document.location.protocol + 
        "//dnn506yrbagrg.cloudfront.net/pages/scripts/0011/7483.js?"
        + Math.floor(new Date().getTime()/3600000);
        a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b)}, 1);
    }
}

 
$j(document).ready(init_home);
