//NUEVO JS PARA RESULTADOS DE BUSQUEDA
function cargar_pagina_resultados()
{
    //esta función se llama al cargar la página de resultados.
    //Si en la url hay anchors, quiere decir que el usuario ha vuelto a una búsqueda anterior.
    var anchors_str = window.location.hash;
    if (anchors_str != '')
    {
        //alert("aloha");
        //Quitar el anchor para obtener una nueva url
        anchors_str = anchors_str.replace('#', '');
        //Redirigir al usuario a la página que le interesa (los filtros que corresponda)
        location.href = anchors_str;
    }
}

function filtrar_resultados()
{
    var param = '';
    var query_str = '';
    var clave = '';
    var url = url_base;
    var hash_url = '';
    var YUD = YAHOO.util.Dom;

    // Preparar los parametros
    // - Localización
    if (url_localizacion != '') url += url_localizacion + '/';

    // - 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("/");
    }

    // - Categoría
    var i = 1;
    while (isObject($('categoria_m_' + i)))
    {
        if(YUD.hasClass('categoria_m_' + i,'is_c'))
        {
            //inicializar la info en la url sobre la última categoria
            ultima_categoria = $('categoria_m_' + i).value + '/';
            hay_c = false;
        }

        if ($('categoria_m_' + i).checked)
        {
            if(YUD.hasClass('categoria_m_' + i,'is_c'))
            {
                url  += ultima_categoria;
                hay_c = true;
            }
            else
            {
                if (hay_c)
                {
                    //si ya está la categoria, añadir la subcategoria en la url tal cualtal cual
                    url  += $('categoria_m_' + i).value + '/'; 
                }
                else
                {
                    //añadir la categoria y después la subcategoria
                    url  += ultima_categoria + $('categoria_m_' + i).value + '/';
                    hay_c = true;
                }
            }
        }
        i++;
    }

    // - Cuando
    if ($('buscador_eventos_form').cuando.value != '')
    {
        if($('buscador_eventos_form').cuando.value == 'rango')
        {
            if (($('buscador_eventos_form').fecha_desde.value != "") && ($('buscador_eventos_form').fecha_hasta.value != "")) 
                url = url + prefijo_fecha_desde + '-' + $('buscador_eventos_form').fecha_desde.value + '-' + prefijo_fecha_hasta + '-' + $('buscador_eventos_form').fecha_hasta.value + '/';
        }else{
            url +=  $('buscador_eventos_form').cuando.value + '/';
        }
    }

    // - Ordenacion
    if (url_ordenacion != '') url += url_ordenacion + '/';

    // - Palabras clave
    if (url_palabras_clave != '') url += url_palabras_clave;

    // - Top
    if (url_top != '') url += url_top;

    // - Flags
    // · Ajax
    url += 'es_ajax/';

    //·  Destinos nacionales o internacionales
    if ($('destinos_int').checked) url += url_destinos_int;
    if ((subproducto == 1) && ($('destinos_nac').checked))  url += url_destinos_nac;

    // · Extras (con checkbox)
    if (subproducto == 0)
    {
        // - Ticketing
        if (isObject($('o_ticketing')) && $('o_ticketing').checked)
        {
            url += $('o_ticketing').value;
        }

        // - Mapa de Butacas
        if (isObject($('o_mb')) && $('o_mb').checked)
        {
            url += $('o_mb').value;
        }

        // - MP3
        if (isObject($('o_mp3')) && $('o_mp3').checked)
        { 
            url += $('o_mp3').value;
        }

        // - Video
        if (isObject($('o_video')) && $('o_video').checked)
        { 
            url += $('o_video').value;
        }
    }
    // - Pago Online
    if (isObject($('o_fp1')) && $('o_fp1').checked)
    { 
        //indicar en la url el pago online sólo si no está activado el checkbox de pago en taquilla
        if (isObject($('o_fp0')) && !$('o_fp0').checked)
        {
            url += $('o_fp1').value;
            $('o_fp1').disabled = true; //no podemos tener los dos checks desactivados
        }
        else $('o_fp1').disabled = false;
    }

    // - Pago en Taquilla
    if (isObject($('o_fp0')) && $('o_fp0').checked)
    { 
        //indicar en la url el pago en taquilla sólo si no está activado el checkbox de pago online
        if (isObject($('o_fp1')) && !$('o_fp1').checked)
        {
            url += $('o_fp0').value;
            $('o_fp0').disabled = true; //no podemos tener los dos checks desactivados
        }
        else $('o_fp0').disabled = false;
    }

    // - Paginacion: este es el último parámetro en url bonita antes de la key y el query string
    if (pagina != 0) url += 'p-' + pagina + '/';

    // - Extras (sin checkbox)
    url += url_flags;

    // - Descuento
    if ($('buscador_eventos_form').descuento.value != '')
    {
        if (param != '')
        {
            param += '&';
        }
        param += 'descuento=' + $('buscador_eventos_form').descuento.value;
    }
    
    // - Enlaces Patrocinados
    if (enlaces_patrocinados != '')
    {
        if (param != '')
        {
            param += '&';
        }
        param += 'enlaces_patrocinados=' + enlaces_patrocinados;
    }

    // Campos multiples:
    // - Precio (multiple, select)
    for (var i = 0; i < $('buscador_eventos_form').precio_desde.options.length; i++)
    {
        if ($('buscador_eventos_form').precio_desde.options[i].selected && $('buscador_eventos_form').precio_desde.options[i].value != 0)
        {
            if (param != '')
            {
                param += '&';
            }
            param += 'precio_desde%5B%5D=' + $('buscador_eventos_form').precio_desde.options[i].value;
        }
    }

    // - Rango Descuento (multiple, select)
    for (var i = 0; i < $('rango_dto').options.length; i++)
    {
        if ($('buscador_eventos_form').rango_dto.options[i].selected && $('buscador_eventos_form').rango_dto.options[i].value != 0)
        {
            if (param != '')
            {
                param += '&';
            }
            param += 'rango_dto%5B%5D=' + $('buscador_eventos_form').rango_dto.options[i].value;
        }
    }

    // Mostrar icono cargando
    obj_maskara_modal.show();

    //Añadir el nombre del controlador si es necesario
    if (url == url_base)
        url += 'resultados/';

    //Añadir la clave de la url si es necesario

    if (clave != '')
    {
        url += clave;
    }

    //Añadir parametros query string si es necesario
    if (param != '')
    {
        query_str += '?' + param;
    }

    load_url = url + query_str; //alert(load_url);return;

    //Setear los anchors para retener los filtros
    hash_url = load_url
    window.location.hash = load_url.replace('es_ajax/','') ;

    // Llamada ajax    
    YAHOO.util.Connect.asyncRequest("get", load_url,{
        timeout: 10000,
        success: function(o) {
        $('div_resultados').innerHTML = o.responseText;

        // ocultar icono cargando
        obj_maskara_modal.hide();
        return true;
    },
    failure: function() {
        // ocultar icono cargando
        obj_maskara_modal.hide();
        return false;
    }
    });
}

function cargar_resultados()
{
    pagina = 0;
    filtrar_resultados();
}

function set_pagina(pagina_nueva)
{
    pagina = pagina_nueva;
    filtrar_resultados();
}

function ordenar_resultados(criterio)
{
    url_ordenacion = criterio;
    pagina = 0;
    filtrar_resultados();
}

var obj_maskara_modal = {
        init : function (el)
        {
    if (!this.overlay2)
    {
        this.overlay2=new YAHOO.widget.Panel("overlay2", {zIndex:9999,fixedcenter:true, monitorresize:false, visible: false, constrainToViewport: true,modal:false,
            modalPartial: false,close:false, draggable:false, width:"200px"});
        this.overlay2.setBody('<img align="middle" alt="' + str_actualizando + '" src="/images_new/hoteles/indicator_big.gif"/>&nbsp;' + str_actualizando);
        this.overlay2.render(document.body);
    }
        },
        show : function () { if(!this.overlay2){this.init();} this.overlay2.show(); },
        hide : function () { this.overlay2.hide(); }
};

//Funcion que hace una llamada ajax para la carga de categorías dinámicas
function cargar_categorias_dinamicas()
{
    var clave = '';
    var url = '';

    // - 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("/");
    }

    // - Categoría
    var i = 1;        
    while (isObject($('categoria_m_' + i)))
    {
        if ($('categoria_m_' + i).checked)
        {
            url  += $('categoria_m_' + i).value + '/';
        }
        i++;
    }

    load_url = url_base + 'do_ajax/' + url + clave + '?pg_action=categorias_en_destino&is_resultados=true';
    YAHOO.util.Connect.asyncRequest("get", load_url, {
        timeout: 10000,
        success: function(o){//alert(o.responseText); return;
        $('select_categoria').innerHTML = o.responseText;
        cargar_resultados();
        return true;
    },failure: function(){
        // ocultar icono cargando
        obj_maskara_modal.hide();
        return false;
    }
    });
}


//Funcion que hace una llamada ajax para la carga de poblaciones de una provincia.
function cargar_poblaciones_filtro()
{
    var new_url_destino = $('buscador_eventos_form').id_provincia.value;

    if (new_url_destino != '')
    {
        // Llamada ajax de destinos
        load_url = url_base + 'do_ajax/' + new_url_destino + '?pg_action=destinos_poblaciones&is_resultados=true';
        YAHOO.util.Connect.asyncRequest("get", load_url, {
            timeout: 10000,
            success: function(o) {
            $('buscador_eventos_form').id_poblacion.options.length = 0;
            //recibimos la cadena value_destino:texto_destino:rojo separada por comas
            var opciones = o.responseText.split(",");
            for (var i = 0; i < opciones.length; i++)
            {
                var partes = opciones[i].split(":");
                var opcion = new Option(partes[1],partes[0]);
                opcion.id = "o_" + partes[0]; //Nota: en lugar de o_id_destino, ahora el id de la opción es o_url destino pero da igual porque no se utiliza para nada
                if(partes[2])
                    opcion.className = "rojo";
                $('buscador_eventos_form').id_poblacion.options[$('buscador_eventos_form').id_poblacion.options.length] = opcion;
            }

            poner_criterio_provincia();
            return true;
        },
        failure: function() {
            return false;
        }
        });
    }
}

//Funcion que hace una llamada ajax para la carga de ciudades de un país
function cargar_ciudades_filtro()
{
    var new_url_destino = $('buscador_eventos_form').id_pais.value;
    if (new_url_destino != '')
    {
        // Llamada ajax de destinos
        //load_url = url_base + 'do_ajax?pg_action=destinos_ciudades_int&is_resultados=true&url_destino=' + new_url_destino;
        load_url = url_base + 'do_ajax/' + new_url_destino + '/?pg_action=destinos_ciudades_int&is_resultados=true';
        YAHOO.util.Connect.asyncRequest("get", load_url, {
            timeout: 10000,
            success: function(o){
            $('buscador_eventos_form').id_ciudad.options.length = 0;
            //recibimos la cadena value_destino:texto_destino separada por comas
            var opciones = o.responseText.split(",");
            for (var i = 0; i < opciones.length; i++) {
                var partes = opciones[i].split(":");
                var opcion = new Option(partes[1], partes[0]);
                opcion.id = "o_" + partes[0];                    
                $('buscador_eventos_form').id_ciudad.options[$('buscador_eventos_form').id_ciudad.options.length] = opcion;
            }
            poner_criterio_pais();
            return true;
        },
        failure: function(){
            return false;
        }
        });
    }
}

function deseleccionar_poblacion()
{
    url_destino = $('buscador_eventos_form').id_provincia.value;
    $('buscador_eventos_form').id_poblacion.selectedIndex = -1;

    cargar_categorias_dinamicas();
}

function deseleccionar_provincia()
{
    url_destino = '';
    $('buscador_eventos_form').id_provincia.selectedIndex = -1;
    $('buscador_eventos_form').id_poblacion.selectedIndex = -1;

    cargar_categorias_dinamicas();
}

function deseleccionar_ciudad()
{
    url_destino = $('id_pais').value;
    $('buscador_eventos_form').id_ciudad.selectedIndex = -1;

    cargar_categorias_dinamicas();
}

function deseleccionar_pais()
{
    url_destino = '';
    $('buscador_eventos_form').id_pais.selectedIndex = -1;
    $('buscador_eventos_form').id_ciudad.selectedIndex = -1;

    cargar_categorias_dinamicas();
}

function quitar_criterio_poblacion()
{
    // Mostrar poblaciones.
    mostrar_div_tit('poblacion');

    // Quitar criterio poblacion
    YAHOO.util.Dom.addClass('div_criterios_poblacion','oculto');
}

function quitar_criterio_provincia()
{
    // Ocultar poblacion.
    ocultar_div_tit('poblacion');

    // Mostrar provincias.
    mostrar_div_tit('provincia');

    // Quitar criterio provincia
    YAHOO.util.Dom.addClass('div_criterios_poblacion','oculto');
    YAHOO.util.Dom.addClass('div_criterios_provincia','oculto');

    if (subproducto == 1) //actividades
    {
        //seleccionar checkbox de destinos nacionales e internacionales (mostrar eventos de todos los destinos)
        $('buscador_eventos_form').destinos_nac.checked = true;
        $('buscador_eventos_form').destinos_int.checked = true;

        //habilitar nacional
        $('buscador_eventos_form').destinos_nac.disabled = false;
    }
}

function quitar_criterio_ciudad()
{
    // Mostrar ciudades
    mostrar_div_tit('ciudad');

    // Quitar criterio ciudad
    YAHOO.util.Dom.addClass('div_criterios_ciudad','oculto');
}

function quitar_criterio_pais()
{
    // Ocultar ciudad.
    ocultar_div_tit('ciudad');

    // Mostrar paises.
    mostrar_div_tit('pais');

    // Quitar criterio pais.
    YAHOO.util.Dom.addClass('div_criterios_ciudad','oculto');
    YAHOO.util.Dom.addClass('div_criterios_pais','oculto');

    if (subproducto == 1) //actividades
    {
        //seleccionar checkbox de destinos nacionales e internacionales (mostrar eventos de todos los destinos)
        $('buscador_eventos_form').destinos_nac.checked = true;
        $('buscador_eventos_form').destinos_int.checked = true;

        //habilitar internacional
        $('buscador_eventos_form').destinos_int.disabled = false;
    }
}

function poner_criterio_provincia()
{
    url_destino = $('buscador_eventos_form').id_provincia.value;
    cargar_categorias_dinamicas();

    var nombre_destino = $('buscador_eventos_form').id_provincia[$('buscador_eventos_form').id_provincia.selectedIndex].text;
    nombre_destino = nombre_destino.replace(/ \([0-9]+\)/i, '');

    // Mostrar criterio provincia
    $('nombre_provincia').innerHTML = nombre_destino;
    YAHOO.util.Dom.removeClass('div_criterios_provincia','oculto');

    // Ocultar provincias.
    ocultar_div_tit('provincia');

    // Mostrar poblacion.
    mostrar_div_tit('poblacion');

    //Resetear internacional
    $('buscador_eventos_form').id_pais.selectedIndex = -1;
    ocultar_div_tit('ciudad');
    mostrar_div_tit('pais');
    YAHOO.util.Dom.addClass('div_criterios_ciudad', 'oculto');    
    YAHOO.util.Dom.addClass('div_criterios_pais', 'oculto');

    if (subproducto == 1)
    {
        //seleccionar checkbox de destinos nacionales y deseleccionar los internacionales
        $('buscador_eventos_form').destinos_nac.checked = true;
        $('buscador_eventos_form').destinos_nac.disabled = true;
        $('buscador_eventos_form').destinos_int.checked = false;
        $('buscador_eventos_form').destinos_int.disabled = false;
    }
}

function poner_criterio_poblacion()
{
    url_destino = $('buscador_eventos_form').id_poblacion.value;
    cargar_categorias_dinamicas();

    var nombre_destino = $('buscador_eventos_form').id_poblacion[$('buscador_eventos_form').id_poblacion.selectedIndex].text;
    nombre_destino = nombre_destino.replace(/ \([0-9]+\)/i, '');

    // Mostrar criterio poblacion
    $('nombre_poblacion').innerHTML = nombre_destino;
    YAHOO.util.Dom.removeClass('div_criterios_poblacion','oculto');

    // Ocultar poblacion
    ocultar_div_tit('poblacion');    
}

function poner_criterio_pais()
{
    url_destino = $('buscador_eventos_form').id_pais.value;
    cargar_categorias_dinamicas();

    var nombre_destino = $('buscador_eventos_form').id_pais[$('buscador_eventos_form').id_pais.selectedIndex].text;
    nombre_destino = nombre_destino.replace(/ \([0-9]+\)/i, '');

    // Mostrar criterio pais
    $('nombre_pais').innerHTML = nombre_destino;
    YAHOO.util.Dom.removeClass('div_criterios_pais','oculto');

    // Ocultar paises
    ocultar_div_tit('pais');

    // Mostrar ciudades
    mostrar_div_tit('ciudad');

    //Resetear nacional
    $('buscador_eventos_form').id_provincia.selectedIndex = -1;
    ocultar_div_tit('poblacion');
    mostrar_div_tit('provincia');

    YAHOO.util.Dom.addClass('div_criterios_poblacion','oculto');
    YAHOO.util.Dom.addClass('div_criterios_provincia','oculto');

    if (subproducto == 1) //actividades
    {
        //seleccionar checkbox de destinos internacionales y deseleccionar los internacionales
        $('buscador_eventos_form').destinos_int.checked = true;
        $('buscador_eventos_form').destinos_int.disabled = true;
        $('buscador_eventos_form').destinos_nac.checked = false;
        $('buscador_eventos_form').destinos_nac.disabled = false;
    }
}

function poner_criterio_ciudad()
{
    url_destino = $('buscador_eventos_form').id_ciudad.value;
    cargar_categorias_dinamicas();

    var nombre_destino = $('buscador_eventos_form').id_ciudad[$('buscador_eventos_form').id_ciudad.selectedIndex].text;
    nombre_destino = nombre_destino.replace(/ \([0-9]+\)/i, '');

    // Mostrar criterio ciudad
    $('nombre_ciudad').innerHTML = nombre_destino;
    YAHOO.util.Dom.removeClass('div_criterios_ciudad','oculto');

    // Ocultar ciudad
    ocultar_div_tit('ciudad');
}

function mostrar_div_tit(sufijo_target) {
    var YUD = YAHOO.util.Dom;
    YUD.removeClass('div_titulo_'+sufijo_target,'oculto');	
    YUD.removeClass('div_id_'+sufijo_target,'oculto');
} 

function ocultar_div_tit(sufijo_target) {
    var YUD = YAHOO.util.Dom;
    // si ya tiene el estilo oculto, no agregar mas
    if(!YUD.hasClass('div_titulo_'+sufijo_target,'oculto'))
    {
        YUD.addClass('div_titulo_'+sufijo_target,'oculto');
    }	
    if(!YUD.hasClass('div_id_'+sufijo_target,'oculto'))
    {
        YUD.addClass('div_id_'+sufijo_target,'oculto');
    }
} 

//muestra los destinos nacionales (provincias/poblaciones) o los internacionales (paises/ciudades) [y filtra los resultados]*
function destinosInt()
{
    //Esta función sólo se llama cuando el subproducto es espectáculos
    //* NOTA: Sólo mostramos los listados de destinos nacionales o internacionales sin filtrar porque en caso de que haya keywords se mostrará todo el producto

    //mostrar los destinos nacionales o internacionales
    if ($('destinos_int').checked) 
    {
        //Internacionales
        YAHOO.util.Dom.removeClass('internacional', 'oculto');
        YAHOO.util.Dom.addClass('nacional', 'oculto');
    }
    else 
    {
        //Nacionales
        YAHOO.util.Dom.addClass('internacional', 'oculto');
        YAHOO.util.Dom.removeClass('nacional', 'oculto');
    }
}

//Se llama cuando el usuario hace click sobre el checkbox de destinos nacionales de actividades
function destinosNacAct()
{
    if ($('buscador_eventos_form').destinos_nac.checked == true)
    {
        //Resetear internacional
        $('buscador_eventos_form').id_pais.selectedIndex = -1;
        ocultar_div_tit('ciudad');
        mostrar_div_tit('pais');

        YAHOO.util.Dom.addClass('div_criterios_ciudad', 'oculto');    
        YAHOO.util.Dom.addClass('div_criterios_pais', 'oculto');

        deseleccionar_pais(); //esta llamada llama a categorias_dinámicas que recarga los resultados

        //habilitar internacional
        $('buscador_eventos_form').destinos_int.disabled = false;
    }
    else
    {
        //deshabilitar internacional
        $('buscador_eventos_form').destinos_int.disabled = true;
        cargar_resultados();
    }
}

//Se llama cuando el usuario hace click sobre el checkbox de destinos internacionales de actividades
function destinosIntAct()
{
    if ($('buscador_eventos_form').destinos_int.checked == true)
    {
        //Resetear nacional
        $('buscador_eventos_form').id_provincia.selectedIndex = -1;
        ocultar_div_tit('poblacion');
        mostrar_div_tit('provincia');

        YAHOO.util.Dom.addClass('div_criterios_poblacion','oculto');
        YAHOO.util.Dom.addClass('div_criterios_provincia','oculto');

        deseleccionar_provincia(); //esta llamada llama a categorias_dinámicas que recarga los resultados

        //habilitar nacional
        $('buscador_eventos_form').destinos_nac.disabled = false;
    }
    else
    {
        //deshabilitar nacional
        $('buscador_eventos_form').destinos_nac.disabled = true;
        cargar_resultados();
    }
}

//Actualiza el cuando del filtro
function poner_criterio_cuando()
{
    if ($('buscador_eventos_form').cuando.value == 'rango')
    {
        pagina = 0;
        YAHOO.util.Event.onAvailable('calendar_trigger', function(){setUpCalendar()});
    }
    else
    {
        YAHOO.util.Dom.addClass('rango_fechas', 'oculto');
        cargar_resultados();
    }
}


//deselecciona todas las subcategorías de la categoría que se modifica y las habilita o deshabilita
function check_categorias(indice_categoria)
{
    //averiguar de qué categoría se trata
    var YUD = YAHOO.util.Dom;
    var categoria = $('categoria_m_' + indice_categoria).value;
    var checked   = $('categoria_m_' + indice_categoria).checked;

    indice_categoria ++;
    while (isObject($('categoria_m_' + indice_categoria)))
    {
        if(YUD.hasClass('categoria_m_' + indice_categoria, categoria))
        {
            //actualizar subcategoria
            $('categoria_m_' + indice_categoria).checked = false;
            $('categoria_m_' + indice_categoria).disabled = checked;
        }
        else
        {
            //ya hemos terminado
            return true;
        }
        indice_categoria++;
    }
}

//---------------------------------------
//funciones para el calendario
//---------------------------------------

//Generar calendario YUI
function setUpCalendar()
{
    var calOptions ={iframe:true,PAGES:2,close:true,pagedate: (d.getMonth()+1)+"/"+d.getFullYear(),  mindate: (d.getMonth()+1)+"/"+d.getDate()+"/"+d.getFullYear(),  maxdate: (d.getMonth()+1)+"/"+d.getDate()+"/"+(d.getFullYear()+1)};
    var calOptions2={iframe:true,PAGES:2,close:true,pagedate: (d.getMonth()+1)+"/"+d.getFullYear(),  mindate: (d.getMonth()+1)+"/"+d.getDate()+"/"+d.getFullYear(),  maxdate: (d.getMonth()+1)+"/"+d.getDate()+"/"+(d.getFullYear()+1)};
    cal1 = new YAHOO.widget.CalendarGroup("cal1","cal1Container",calOptions);
    cal2 = new YAHOO.widget.CalendarGroup("cal2","cal2Container",calOptions2);
    YAHOO.util.Event.purgeElement("trigger1",false, "click");
    YAHOO.util.Event.addListener("trigger1", "click", showCal, cal1, true);
    YAHOO.util.Event.purgeElement("fecha_desde",false, "click");
    YAHOO.util.Event.addListener("fecha_desde", "click", showCal, cal1, true);
    YAHOO.util.Event.purgeElement("trigger2",false, "click");
    YAHOO.util.Event.addListener("trigger2", "click", showCal, cal2, true);
    YAHOO.util.Event.purgeElement("fecha_hasta",false, "click");
    YAHOO.util.Event.addListener("fecha_hasta", "click", showCal, cal2, true);
    cal1.selectEvent.subscribe(calSelectDate, cal1, true);
    cal2.selectEvent.subscribe(calSelectDate, cal2, true);
    cal1.cfg.setProperty("MONTHS_LONG",months_long);
    cal1.cfg.setProperty("WEEKDAYS_SHORT",day_short);
    cal1.cfg.setProperty("START_WEEKDAY",1);
    cal1.cfg.setProperty("NAV_ARROW_LEFT","/images_new/flecha_iz.gif");
    cal1.cfg.setProperty("NAV_ARROW_RIGHT","/images_new/flecha_de.gif");
    cal2.cfg.setProperty("MONTHS_LONG",months_long);
    cal2.cfg.setProperty("WEEKDAYS_SHORT",day_short);
    cal2.cfg.setProperty("START_WEEKDAY",1);
    cal2.cfg.setProperty("NAV_ARROW_LEFT","/images_new/flecha_iz.gif");
    cal2.cfg.setProperty("NAV_ARROW_RIGHT","/images_new/flecha_de.gif");
    if($('buscador_eventos_form').fecha_desde.value!='')
    {
        tmp=$('buscador_eventos_form').fecha_desde.value.split("-");
        cal1.cfg.setProperty("selected",tmp[1]+'/'+tmp[0]+'/'+tmp[2],false);
        cal1.cfg.setProperty("pagedate",tmp[1]+'/'+tmp[2],false);
    }
    if($('buscador_eventos_form').fecha_hasta.value!='')
    {
        tmp=$('buscador_eventos_form').fecha_hasta.value.split("-");
        cal2.cfg.setProperty("selected",tmp[1]+'/'+tmp[0]+'/'+tmp[2],false);
        cal2.cfg.setProperty("pagedate",tmp[1]+'/'+tmp[2],false);
    }
    cal1.render();
    cal2.render();

    YAHOO.util.Dom.removeClass('rango_fechas', 'oculto');
}

//vale true cuando el calSelectDate se llama por una actualización y no hay que hacer comprovaciones de fechas (evitando llemadas recursivas inecesarias)
var act_cal = false;
//Insertar en el campo de fecha, el dia seleccionado en el calendario
function calSelectDate(type, args, obj)
{
    if(act_cal) return;
    var dates = args[0][0];
    var year = dates[0], month = dates[1], day = dates[2];
    if(obj.id=="cal1")
    {
        //Actualizar fecha_hasta si no hay seleccionada ninguna fecha o si ésta es anterior a la fecha_desde
        var actualizar_cal2 = false;
        if ($('buscador_eventos_form').fecha_hasta.value == '')
        {
            actualizar_cal2 = true;
        }else{
            tmp = $('buscador_eventos_form').fecha_hasta.value;
            hasta_d = tmp.substring(0,2); 
            hasta_m = tmp.substring(3,5);
            hasta_y = tmp.substring(6,10);
            fecha_hasta = new Date(hasta_y, hasta_m, hasta_d);
            fecha_desde = new Date(year, month, day);
            if(fecha_hasta.getTime() < fecha_desde.getTime())
                actualizar_cal2 = true;         
        }           
        if (actualizar_cal2)
        {
            act_cal = true;
            var next_day = new Date(year, month, day + 2);
            var nday = next_day.getDate();
            var nmonth = next_day.getMonth();
            var nyear = next_day.getFullYear();

            if (parseInt(nday) < 10) 
                nday = "0" + nday;
            if (parseInt(nmonth) < 10) 
                nmonth = "0" + nmonth;
            if (nmonth == "00")
            {
                //hay un pequeño bug cuando la fecha es de diciembre de este año
                nmonth = "12";
                nyear  = nyear -1;
            }

            $('buscador_eventos_form').fecha_hasta.value = nday + "-" + nmonth + "-" + nyear;
            cal2.select(nmonth + "/" + nday + "/" + nyear);
            cal2.setMonth(nmonth - 1);
            cal2.setYear(nyear);
            cal2.render();
        }       
        if (parseInt(day) < 10) 
            day = "0" + day;
        if (parseInt(month) < 10) 
            month = "0" + month;
        $('buscador_eventos_form').fecha_desde.value = day + "-" + month + "-" + year;
    }else if(obj.id=="cal2"){
        //Actualizar fecha_desde si no hay seleccionada ninguna fecha o si ésta es posterior a la fecha_hasta
        var actualizar_cal1 = false;
        if ($('buscador_eventos_form').fecha_desde.value == '')
        {
            actualizar_cal1 = true;
        }else{
            tmp = $('buscador_eventos_form').fecha_desde.value;
            desde_d = tmp.substring(0,2); 
            desde_m = tmp.substring(3,5);
            desde_y = tmp.substring(6,10);
            fecha_desde = new Date(desde_y, desde_m, desde_d);
            fecha_hasta = new Date(year, month, day);
            if(fecha_hasta.getTime() < fecha_desde.getTime())
                actualizar_cal1 = true; 
            t1 = fecha_desde.getTime();  
            t2 = fecha_hasta.getTime();
        }
        if (actualizar_cal1)
        {
            act_cal = true;
            var prev_day = new Date(year, month, day - 2);
            var pday = prev_day.getDate();
            var pmonth = prev_day.getMonth();
            var pyear = prev_day.getFullYear();

            if (parseInt(pday) < 10) 
                pday = "0" + pday;
            if (parseInt(pmonth) < 10) 
                pmonth = "0" + pmonth;
            if (pmonth == "00")
            {
                //hay un pequeño bug cuando la fecha es de diciembre de este mes
                pmonth = "12";
                pyear = pyear -1;
            }

            $('buscador_eventos_form').fecha_desde.value = pday + "-" + pmonth + "-" + pyear;
            cal1.select(pmonth + "/" + pday + "/" + pyear);
            cal1.setMonth(pmonth - 1);
            cal1.setYear(pyear);
            cal1.render();
        }
        if (parseInt(day) < 10) 
            day = "0" + day;
        if (parseInt(month) < 10) 
            month = "0" + month;
        $('buscador_eventos_form').fecha_hasta.value = day + "-" + month + "-" + year;
    }
    eval(obj.id+".hide()");
    act_cal = false;
    filtrar_resultados();
}

//Mostrar/ocultar el calendario
function showCal(even, obj)
{    
    if(obj.oDomContainer.style.display=='none' || obj.oDomContainer.style.display=='')
    {
        if(obj.id=='cal1') {
            cal1.show(); cal2.hide();
        }else{
            cal1.hide(); cal2.show();
        }
    }else eval(obj.id+".hide()");
}
//---------------------------------------
//end funciones para el calendario
//---------------------------------------

//---------------------------------------
//funciones para ver más información
//---------------------------------------

function verMasInfo(enlace, titulo, imagen, fila)
{
    $('div_mas_info'+fila).style.top = eval(150+(70*fila)) + 'px';
    $('txt_mas_info'+fila).innerHTML = $('span_' + fila).innerHTML;
    $('link_mas_info'+fila).href = enlace;
    $('link_mas_info'+fila).title = titulo;
    //$('img_mas_info'+fila).title = titulo;
    //$('img_mas_info'+fila).alt = titulo;
    $('img_mas_info'+fila).src = imagen;
    YAHOO.util.Dom.removeClass('div_mas_info'+fila,'oculto');
}

function ocultarMasInfo(fila)
{
    YAHOO.util.Dom.addClass('div_mas_info'+fila,'oculto');        
}

//---------------------------------------
//end funciones para ver más información
//---------------------------------------

function checkSetCookieHomeXDestino(name, value, expires)
{
    //Miramos si la cookie contenia algun valor en caso que si la dejamos tal cual sino le assignamos el nuevo valor
    var cookie_resultados = Atrapalo.util.cookie.getCookie(name);
    if (cookie_resultados == null){
        setCookieHomeXDestino(name, value, expires);
    }
}