// Devuelve la url del destino actual
function get_url_destino()
{
	var url_destino;
	
	if (id_destino_usr > 0)
    {
    	//Home X Provincia
    	if ( $('id_poblacion').selectedIndex == -1)
        {
    		url_destino = url_destino_usr;
        }
    	else if (('id_poblacion').value != '')
		{
			url_destino = $('id_poblacion').value;
		}
    	else
    	{
    		url_destino = url_destino_usr;
    	}
    }
    else if(id_destino_usr == -1)
    {
    	//Home Internacional
    	if ($('id_pais').selectedIndex == -1 && $('id_ciudad').selectedIndex == -1)
        {        
        	url_destino = '';
        }
    	else
    	{
    		if ($('id_ciudad').value != '')
    		{
    			url_destino = $('id_ciudad').value;
    		}
    		else if ($('id_pais').value != '')
    		{
    			url_destino = $('id_pais').value;
    		}
        }
    }
    else
    {
    	//Home Normal
    	if ( $('id_provincia').selectedIndex == -1 && $('id_poblacion').selectedIndex == -1 && $('id_pais').selectedIndex == -1 && $('id_ciudad').selectedIndex == -1)
        {        
        	url_destino = '';
        }else{
    		if ($('id_poblacion').value != '')
    		{
    			url_destino = $('id_poblacion').value;
    		}
    		else if ($('id_provincia').value != '')
    		{
    			url_destino = $('id_provincia').value;
    		}
    		else if ($('id_ciudad').value != '')
    		{
    			url_destino = $('id_ciudad').value;
    		}
    		else if ($('id_pais').value != '')
    		{
    			url_destino = $('id_pais').value;
    		}
        }
    }

	return url_destino;
}

// Buscar resultados con los criterios del buscador
function buscar_eventos()
{
	var param = '';
    var clave = '';
    var url = '';
    var url_destino = get_url_destino();
    var subproducto_invertido = false;
    var YUD = YAHOO.util.Dom;

    // - 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
    if ($('id_categoria').value != '')
    {
        url += $('id_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;
    }

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

    // - Flags (Internacional)
    if ( (((id_destino_usr == 0) && $('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;
        }
    }
    
    //resetear todos los valores del formulario para poder volever atrás en el browser
    resetBuscador();
    
    // cargar la página de resultados de búsqueda 
    //alert(resultados_url);return;
    location.href = resultados_url;
}

// Funcion para verificar que los datos obligatorios del formulario se han rellenado.
function comprobar_palabras_clave()
{
	// El unico criterio a comprobar es palabras clave.
    if ($('palabras_clave').value == '' 
     || $('palabras_clave').value == str_escribe_aqui 
     || $('palabras_clave').value == 'Escribe aquí')
    {
        alert(no_key_words);//Debes escribir alguna palabra clave
        return false;
    }
    // Si despues de las comprobaciones hay errores detectados, mostrar mensaje de error.
    if (errores.cuantos() > 0)
    {
        errores.show();
        $('palabras_clave').focus();
        return false;
    }
    else
    {
        // Sino mostrar los resultados.
        return true;
    }
}

function notEnter(e) {}

// Realiza la búsqueda de palabras clave
function buscar_palabras_clave()
{
	if (comprobar_palabras_clave())
	{
		//también enviamos el parámetro por get sólo para que lo pueda utilizar Google Analytics
		var url_keywords = url_base + $('palabras_clave').value + "_k/?keywords=" + $('palabras_clave').value;
		
		//resetear todos los valores del formulario para poder volever atrás en el browser
		resetBuscador();

		//alert(load_url);return;
		location.href = url_keywords;
	}
}

// Funcion para mostrar/ocultar las "paginas" de criterios del buscador.
function mostrar_criterio(num)
{
    if (num == 1)
    {
        YAHOO.util.Dom.addClass('id_cuando', 'oculto'); 
        YAHOO.util.Dom.removeClass('lista_categorias', 'oculto');
    }else if (num == 2){
        YAHOO.util.Dom.addClass('lista_categorias', 'oculto');        
        YAHOO.util.Dom.removeClass('id_cuando', 'oculto');
    }
}

// En función del valor de un criterio lo muestra u oculta
function visualizacion_criterio(id)
{
    var num_seleccion = 0;
    var seleccion_str = '';
    var nombre = '';
    
    for (var i = 0; i < $(id).options.length; i++)
    {        
        if ($(id).options[i].selected)
        {                        
            nombre = $(id).options[i].text;
            nombre = nombre.replace(/ \([0-9]+\)/i, '');

            if ($(id).options[i].value)
            {
                if ((id == 'id_cuando') && ($(id).options[i].value == 'rango'))
                {
                    seleccion_str += '<span id="rango_fechas" name="rango_fechas" class="oculto">';//no mostrar nada hasta haber hecho el setup para evitar problemas de visualizacion
                    seleccion_str += '&nbsp;&nbsp;'+str_desde+': <input type="text" name="fecha_desde" id="fecha_desde" size="12" disabled="disabled" />';
                    seleccion_str += '<div id="cal1Container"></div>';
                    seleccion_str += '&nbsp;<img src="/images_new/common/iconos/ico_calendario.gif" id="trigger1" style="cursor: pointer;" alt="" />'; 
                    seleccion_str += str_hasta+': <input type="text" name="fecha_hasta" id="fecha_hasta" size="12" disabled="disabled" />';
                    seleccion_str += '<div id="cal2Container"></div>';
                    seleccion_str += '&nbsp;<img src="/images_new/common/iconos/ico_calendario.gif" id="trigger2" style="cursor: pointer;" alt="" />';                    
                    seleccion_str += '&nbsp;<a href="#" onclick="javascript:quitar_criterio(\'' + id + '\',\''+ $(id).options[i].value +'\');return false;">[x]</a>';
                    seleccion_str += '</span>';                    
                    YAHOO.util.Event.onAvailable('calendar_trigger', function(){setUpCalendar()});                                        
                }else{
	                seleccion_str = seleccion_str +  ' ' + nombre + '<a href="#" onclick="javascript:quitar_criterio(\'' + id + '\',\''+ $(id).options[i].value +'\');return false;">[x]</a>';	                
                }
                num_seleccion++;
            }
        }
    }
    
     // Poner en la seccion los criterios encontrados como seleccionados.
    if (num_seleccion == 0)
    {
        $('c_' + id).innerHTML = '';
    }
    else
    {
        $('c_' + id).innerHTML = seleccion_str;
    }    
}


// Funcion para poner el criterio de busqueda seleccionado en la lista de criterios del buscador,
// con un botoncillo para eliminar el criterio.
function poner_criterio(id)
{
    visualizacion_criterio(id);

    // En caso de que sea un valor relacionado de destino, limpiarlos.
    if (id == 'id_provincia')
    {
        quitar_criterio('id_poblacion', '');                
    }
    else if (id == 'id_pais')
    {
        quitar_criterio('id_ciudad', '');

    }
    
    if ((id != 'id_categoria') && (id != 'id_cuando'))
        categoriasDinamicas();        

    limpiar_criterios();
}

// Funcion para quitar el criterio de la lista de criterios del buscador, y para que
// se deseleccione el criterio del select pertinente.
function quitar_criterio(id, value)
{

    // Deseleccionar el criterio indicado del select.
	$(id).selectedIndex = -1;
    for (var i = 0; i < $(id).options.length; i++)
    {
        $(id).options[i].selected = false;
    }        

    // Ocultarlo    
    visualizacion_criterio(id);

    //Categorias dinamicas segun destino
    if ((value != '') && (id != 'id_categoria') && (id != 'id_cuando'))
    {
        if (id == 'id_poblacion')
        {
            categoriasDinamicas();
        }else if ((id == 'id_provincia') && ($('id_poblacion').value == "")){
            categoriasDinamicas();
        }else if (id == 'id_ciudad'){
            categoriasDinamicas();
        }else if ((id == 'id_pais') && ($('id_ciudad').value == "")){
            categoriasDinamicas();   
        }    
    } 
    
    //plegar/desplegar categorías si es preciso
    if ((subproducto == 0) && (value != '') && (id == 'id_categoria'))
        desplegar_categorias();

    // Mostrar el mensaje de 'no hay criterios' si es preciso
    limpiar_criterios();
}

//Resetea los valores del formulario
function resetBuscador()
{
	if (id_destino_usr == 0)
    {
		quitar_criterio('id_pais','');
		quitar_criterio('id_provincia','');
		quitar_criterio('id_poblacion','');
		quitar_criterio('id_ciudad','');

		YAHOO.util.Dom.removeClass('lista_provincias', 'oculto');
		YAHOO.util.Dom.removeClass('lista_poblaciones', 'oculto');

		YAHOO.util.Dom.addClass('lista_paises', 'oculto');
		YAHOO.util.Dom.addClass('lista_ciudades', 'oculto');

		$('provincia_titulo').innerHTML = str_provincia;
		$('poblacion_titulo').innerHTML = str_poblacion;
		
		$('cb_int').checked = false;
    }
	else if(id_destino_usr == -1)
	{
		quitar_criterio('id_pais','');
		quitar_criterio('id_ciudad','');
	}
	else
	{
		quitar_criterio('id_poblacion','');
	}
	
	quitar_criterio('id_categoria','');
	quitar_criterio('id_cuando','');
    
    categoriasDinamicas();
}

function destinosInt()
{
    if ($('cb_int').checked)
    {
        quitar_criterio('id_pais','');
        quitar_criterio('id_provincia','');
	    quitar_criterio('id_poblacion','');
	    quitar_criterio('id_ciudad','');
	    quitar_criterio('id_categoria','');
	    quitar_criterio('id_cuando','');

        YAHOO.util.Dom.addClass('lista_provincias', 'oculto');
        YAHOO.util.Dom.addClass('lista_poblaciones', 'oculto');
    
	    YAHOO.util.Dom.removeClass('lista_paises', 'oculto');
	    YAHOO.util.Dom.removeClass('lista_ciudades', 'oculto');
    
        $('provincia_titulo').innerHTML = str_pais;
        $('poblacion_titulo').innerHTML = str_ciudad;
        
        categoriasDinamicas();          
    }else{
        resetBuscador();        
    }
}

function categoriasDinamicas()
{
	var YUD = YAHOO.util.Dom;

    //antes de actualizar el listado, nos guardamos si había una categoría seleccionada
    var old_categoria;
    old_categoria = $('id_categoria').value;
    
    var new_url_destino = get_url_destino();

    if (subproducto == 0)
    {
        //Clear del antiguo listado de categorías disponibles
        $('categorias_ie').options.length = 0;
    }

    load_url = url_base + 'do_ajax/' + new_url_destino + '?pg_action=categorias_en_destino';
    $('buscador_eventos_form').id_categoria.options.length = 0;
    $('buscador_eventos_form').id_categoria.options[0] = new Option(str_cargando, "");
    YAHOO.util.Connect.asyncRequest("get", load_url, {
          timeout: 10000,
          success: function(o)
          {
                $('id_categoria').options.length = 0;
                //recibimos la cadena url_categoria:texto_categoria separada por comas
                var opciones = o.responseText.split(",")
                for (var i = 0; i < opciones.length; i++)
                {
                    var partes = opciones[i].split(":");
                    //#2129 las categorías de escapadas sólo se muestran en CL
                    if ((subproducto == 0) || dominio == 'atrapalo.cl' || str_escapadas !=  partes[1].substring(0, str_escapadas.length))
                    {
                        var opcion = new Option(partes[1], partes[0]);
                        $('id_categoria').options[$('id_categoria').options.length] = opcion;

                        //si la categoria actual es una c, añadimos la clase que así lo indica
                        trozos_categoria = partes[0].split("/"); //si value está separado por una barra es categoria/subcategoria, si no, es una categoria
                        if (typeof(trozos_categoria[1]) == 'undefined')
                        {
                            YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c');
                        }
                    }
                }

                //#1003 Categorias combinadas: añadir manualmente las categorias combinadas
                if (dominio == 'atrapalo.com')
                {
                    if (subproducto == 1)
                    {
                        var opcion = new Option("Entradas para deportes", "deportes");
                        $('id_categoria').options[$('id_categoria').options.length] = opcion;
                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c');
                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c_combinada');

                        var opcion = new Option("Espectáculo + cena", "artes-escenicas/espectaculo-cena");
                        $('id_categoria').options[$('id_categoria').options.length] = opcion;
                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c');
                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c_combinada');
                    }
                    else
                    {
                        var opcion = new Option("Museos", "museos");
                        $('id_categoria').options[$('id_categoria').options.length] = opcion;
                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c');
                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c_combinada');

                        var opcion = new Option("Parques temáticos", "parques-tematicos");
                        $('id_categoria').options[$('id_categoria').options.length] = opcion;
                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c');
                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c_combinada');
                    }
                }

                //Una vez cargadas las categorías, volvemos a seleccionar la que teníamos si se puede o a quitarla si ya no está disponible
                if (old_categoria != "")
                {
                    var quitar;
                    quitar = true;
                    for (var i = 0; i < $('id_categoria').options.length; i++)
                    {
                        if( $('id_categoria').options[i].value == old_categoria)
                        {
                           quitar = false;
                           $('id_categoria').options[i].selected = true;
                           $('id_categoria').value = old_categoria;
                           break; 
                        }
                    }
                    if (quitar)
                        quitar_criterio('id_categoria');
                }
                if (subproducto == 0)
                {
                    //Guardar en categorias_ie las categorías del destino
                    for (var i = 0; i < $('id_categoria').options.length; i++)
                    {
                        $('categorias_ie').options[$('categorias_ie').options.length] = new Option($('id_categoria').options[i].text,$('id_categoria').options[i].value);
                        if (YUD.hasClass($('id_categoria').options[i],'is_c'))
                            YUD.addClass($('categorias_ie').options[$('categorias_ie').options.length-1],'is_c');
                        
                        if (YUD.hasClass($('id_categoria').options[i],'is_c_combinada'))
                            YUD.addClass($('categorias_ie').options[$('categorias_ie').options.length-1],'is_c_combinada');
                    }

                    //Ocultar las subcategorías
                    desplegar_categorias();
                }
              return true;
          },
          failure: function() {
              return false;
          }
        });
}

function cargar_ciudades_int()
{
	var new_url_destino = $('id_pais').value;
    if (new_url_destino != '')
    {
        // Llamada ajax de destinos.
    	load_url = url_base + 'do_ajax/' + new_url_destino + '?pg_action=destinos_ciudades_int';
        $('buscador_eventos_form').id_ciudad.options.length = 0;
        $('buscador_eventos_form').id_ciudad.options[0] = new Option(str_cargando, "");
        YAHOO.util.Connect.asyncRequest("get", load_url, {
            timeout: 10000,
            success: function(o){
                $('buscador_eventos_form').id_ciudad.options.length = 0;
                //recibimos la cadena url_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;
                }
                return true;
            },
            failure: function(){
                return false;
            }
        });
    }
    else
    {
        // No hay país seleccionado
        $('buscador_eventos_form').id_ciudad.options.length = 0;
        $('buscador_eventos_form').id_ciudad.options[0] = new Option(str_sel_ciudad, "");
    }
}

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

    if (new_url_destino != '')
    {
        // Llamada ajax de destinos.
    	load_url = url_base + 'do_ajax/' + new_url_destino + '?pg_action=destinos_poblaciones';
        $('buscador_eventos_form').id_poblacion.options.length = 0;
        $('buscador_eventos_form').id_poblacion.options[0] = new Option(str_cargando, "");
        YAHOO.util.Connect.asyncRequest("get", load_url, {
            timeout: 10000,
            success: function(o){
                $('buscador_eventos_form').id_poblacion.options.length = 0;
                //recibimos la cadena url_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];
                    if (partes[2]) 
                        opcion.className = "rojo";
                    $('buscador_eventos_form').id_poblacion.options[$('buscador_eventos_form').id_poblacion.options.length] = opcion;
                }
                return true;
            },
            failure: function(){
                return false;
            }
        });
    }
}

// Si hay 1 o mas criterios seleccionados, ocultar la frase inicial
function limpiar_criterios()
{
	if ($('c_id_provincia').innerHTML == '' &&
        $('c_id_pais').innerHTML == '' &&
        $('c_id_poblacion').innerHTML == '' &&
        $('c_id_ciudad').innerHTML == '' &&
	    $('c_id_categoria').innerHTML == '' &&
	    $('c_id_cuando').innerHTML == '')
	{
        YAHOO.util.Dom.removeClass('c_fraseinicial', 'oculto');
        YAHOO.util.Dom.addClass('criterios', 'oculto');
	}
	else
	{
        YAHOO.util.Dom.addClass('c_fraseinicial', 'oculto');
        YAHOO.util.Dom.removeClass('criterios', 'oculto');
	}
}

//ocultar las subcategorias del desplegable y mostrar sólo las de la categoría que nos interese
function desplegar_categorias()
{
	var YUD = YAHOO.util.Dom;
    //el select categorias ie contiene todas las categorías disponibles
    if (($('categorias_ie').length > 7))
    {
        if ($('id_categoria').value == '')
        {
            //Sólo aparecerán las categorías
            //Clear del listado a visualizar
            $('id_categoria').options.length = 0;
            
            for (var i = 0; i < $('categorias_ie').options.length; i++)        	
            {
                if(YUD.hasClass($('categorias_ie').options[i],'is_c'))
                {
                    $('id_categoria').options[$('id_categoria').options.length] = new Option('[+]  ' + $('categorias_ie').options[i].text,$('categorias_ie').options[i].value);
                    YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c');

                    //#1003 Categorias combinadas
                    if(YUD.hasClass($('categorias_ie').options[i],'is_c_combinada'))
                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c_combinada');
                }
            }
        }else{
            var old_c = $('id_categoria').value;
            var main_c;
            var c_seleccionada;

            //Si la categoria seleccionada es una sc, averiguar la c q le corresponde
            trozos_categoria = old_c.split("/"); //si value está separado por una barra es categoria/subcategoria, si no, es una categoria
            main_c = trozos_categoria[0];

            //Clear del listado a visualizar
            $('id_categoria').options.length = 0;

            //Agregar las categorías que corresponda                        
            for (var i = 0; i < $('categorias_ie').options.length; i++)
            {
                if(YUD.hasClass($('categorias_ie').options[i],'is_c'))
	            {
                    if ($('categorias_ie').options[i].value == main_c)
                    {
	                    c_seleccionada = true;
	                    $('id_categoria').options[$('id_categoria').options.length] = new Option($('categorias_ie').options[i].text,$('categorias_ie').options[i].value);
	                    YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c');

                        //#1003 Categorias combinadas
	                    if(YUD.hasClass($('categorias_ie').options[i],'is_c_combinada'))
	                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c_combinada');
	                }else{
	                    c_seleccionada = false;
	                    $('id_categoria').options[$('id_categoria').options.length] = new Option('[+]  ' + $('categorias_ie').options[i].text,$('categorias_ie').options[i].value);
	                    YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c');

                        //#1003 Categorias combinadas
	                    if(YUD.hasClass($('categorias_ie').options[i],'is_c_combinada'))
	                        YUD.addClass($('id_categoria').options[$('id_categoria').options.length-1],'is_c_combinada');
	                }

	                if($('id_categoria').options[$('id_categoria').options.length-1].value == old_c)
	                    $('id_categoria').options[$('id_categoria').options.length-1].selected = true;	                    
                }
                else if (c_seleccionada) //cuando tenemos una categoria desplegada, mostrar sus subcategorias
                {
                    $('id_categoria').options[$('id_categoria').options.length] = new Option($('categorias_ie').options[i].text, $('categorias_ie').options[i].value);

                    if($('id_categoria').options[$('id_categoria').options.length-1].value == old_c)
                         $('id_categoria').options[$('id_categoria').options.length-1].selected = true;
                }
            }
            $('id_categoria').value = old_c;
        }
    }
    /* Este código no funciona en IE. Debemos tener dos selects para categorias de espectáculos porque: To hide options in IE, you'll need to remove the options completely.
    //Desplegar/plegar sólo si no hay ninguna categoría seleccionada o si estamos cambiando de categoría
    if (($('id_categoria').value == '') || ($('id_categoria').value.indexOf("sc") == -1) && ($('id_categoria').length > 7))
    {
        var c_seleccionada = false;
        for (var i = 0; i < $('id_categoria').options.length; i++)
        {        
            if ($('id_categoria').options[i].value.indexOf("sc") > -1)
            {
                //alert($('id_categoria').options[i].value);
                if (c_seleccionada)
                {
                    YAHOO.util.Dom.removeClass($('id_categoria').options[i], 'oculto');
                }else{            
                    YAHOO.util.Dom.addClass($('id_categoria').options[i], 'oculto');
                }
            }else{
                c_seleccionada = $('id_categoria').options[i].selected;            
            }        
        }
    }
    */    
}

// ---------------------------------------
// 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($('fecha_desde').value!='')
    {
        tmp=$('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($('fecha_hasta').value!='')
    {
        tmp=$('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 ($('fecha_hasta').value == '')
		{
			actualizar_cal2 = true;
		}else{
		    tmp = $('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;
            }
                
			$('fecha_hasta').value = nday + "-" + nmonth + "-" + nyear;
			cal2.select(nmonth + "/" + nday + "/" + nyear);
			cal2.setMonth(nmonth);
			cal2.setYear(nyear);
			cal2.render();
		}		
		if (parseInt(day) < 10) 
            day = "0" + day;
        if (parseInt(month) < 10) 
            month = "0" + month;
		$('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 ($('fecha_desde').value == '')
        {
            actualizar_cal1 = true;
        }else{
            tmp = $('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;
            }
                
            $('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;                    
		$('fecha_hasta').value = day + "-" + month + "-" + year;
    }
    eval(obj.id+".hide()");
	act_cal = false;    
}

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

/****************
 * HomeXDestino *	
 ****************/

//Cambia la home por defecto del usuario reseteando su valor 
function set_home_usr(home_url)
{
	document.home_x_destino_form.action = home_url;
	document.home_x_destino_form.reset_home_usr.value = "true";
	document.home_x_destino_form.submit();
}

function mostrar_homes()
{
    YAHOO.util.Dom.removeClass('selector_homes', 'oculto');
}

function ocultar_homes()
{
	YAHOO.util.Dom.addClass('selector_homes', 'oculto');
}