//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
    if (subproducto == 1)
    {
    	//actividades
	    var i = 1;        
	    while (isObject($('categoria_m_' + i)))
	    {
	    	if ($('categoria_m_' + i).checked)
	    	{
	    		url  += $('categoria_m_' + i).value + '/';
	    	}
	    	i++;
	    }
    }
    else
    {
    	//espectaculos
    	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
    url += url_flags;

    // - Forma de pago
    if (url_forma_pago != '') url += url_forma_pago;

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

    // - Extra (mp3, video, etc.)    
    if ($('buscador_eventos_form').extra.value != '')
    {
        if (param != '')
        {
            param += '&';
        }
        param += 'extra=' + $('buscador_eventos_form').extra.value;
    }

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

    // 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
	
	/*
    //deselecionar destino actual
	url_destino = '';
    $('buscador_eventos_form').id_provincia.selectedIndex = -1;
    $('buscador_eventos_form').id_poblacion.selectedIndex = -1;
    $('buscador_eventos_form').id_pais.selectedIndex = -1;
    $('buscador_eventos_form').id_ciudad.selectedIndex = -1;

    quitar_criterio_provincia();
    quitar_criterio_pais();
	 */

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

    //Aplicar la función de categorías dinámicas para tener visibles las categorías con eventos y filtrar los resultados
    //cargar_categorias_dinamicas();
}

//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
// ---------------------------------------
