function abreCapaAlerta() { // Funcion que abre la capa de alerta
	if ( usuarioEnSesion() ){
		if ( $( "#formularioAlertas" ).is( ".formularioPisosAlertasGrande" ) )
		{	
			$( "#formularioAlertas" ).removeClass( "formularioPisosAlertasGrande" );
			$( "#formularioAlertas" ).addClass( "formularioPisosAlertasPequenio" );
		}
		else if ( $( "#formularioAlertas" ).is( ".formularioCochesAlertasGrande" ) )
		{	
			$( "#formularioAlertas" ).removeClass( "formularioCochesAlertasGrande" );
			$( "#formularioAlertas" ).addClass( "formularioCochesAlertasPequenio" );
		}
		else if ( $( "#formularioAlertas" ).is( ".formularioTrabajoAlertasGrande" ) )
		{	
			$( "#formularioAlertas" ).removeClass( "formularioTrabajoAlertasGrande" );
			$( "#formularioAlertas" ).addClass( "formularioTrabajoAlertasPequenio" );
		}
		$( "#divCorreo" ).hide();
	}
	else{
		if ( $( "#formularioAlertas" ).is( ".formularioPisosAlertasPequenio" ) )
		{	
			$( "#formularioAlertas" ).removeClass( "formularioPisosAlertasPequenio" );
			$( "#formularioAlertas" ).addClass( "formularioPisosAlertasGrande" );
		}
		else if ( $( "#formularioAlertas" ).is( ".formularioCochesAlertasPequenio" ) )
		{	
			$( "#formularioAlertas" ).removeClass( "formularioCochesAlertasPequenio" );
			$( "#formularioAlertas" ).addClass( "formularioCochesAlertasGrande" );
		}
		else if ( $( "#formularioAlertas" ).is( ".formularioTrabajoAlertasPequenio" ) )
		{	
			$( "#formularioAlertas" ).removeClass( "formularioTrabajoAlertasPequenio" );
			$( "#formularioAlertas" ).addClass( "formularioTrabajoAlertasGrande" );
		}
		$( "#divCorreo" ).show();
	}
	$( "#difuminadoAlertas" ).fadeTo( 1, 0.0, function() {
		$( "#difuminadoAlertas" ).show( "fast", function (){
			$( "#difuminadoAlertas" ).fadeTo( "slow", 0.8, function () {
				$( "#formularioAlertas" ).show( "fast" );
			});
		});
	});
}
function cierraCapaAlerta() { // Funcion que cierra la capa de alerta
	$( "#formularioAlertas" ).hide( "fast", function () {
		$( "#difuminadoAlertas" ).fadeTo( "slow", 0.0, function () {
			$( "#difuminadoAlertas" ).hide( "fast" );
		});
	});
}
function usuarioEnSesion() { // Funcion que averigua si el usuario esta en sesion
	var valADevolver = false;
	$.ajax({
		type: "POST",
      		url: "/www/mitula/alertas/usuarioEnSesion.jsp",
      		async: false, // Debe ser asincrona para poder hacer el return
      		success: function( data ) {
      			valADevolver = eval( data );
      		},
      		error: function() {
      			valADevolver = false;
      		}
   	});
   	return valADevolver;
}	
function guardarAlerta() {// Funcion que guarda una alerta
      	if ( usuarioEnSesion() || validaEmail( $( "#emailAl" ).val() ) )
      	{
      		var datas="textoBusqueda=" + $( "#textoBusquedaAl" ).val() + "&email=" + $( "#emailAl" ).val() + 
      				"&periodicidad=" + $( "[name='periodicidadAl']:checked" ).val();
		$.ajax({
			type: "POST",
       		url: "/www/mitula/alertas/crearAlertaAjaxPorEmail.jsp",
       		data: datas,
       		dataType: "script",
       		success: function() {
       			alert( mensaje );
       		},
       		error: function() {
       			alert( "error" );
       		}
    	});
    	cierraCapaAlerta();
    }
    else 
    	alert("error");
}	
function validaEmail(cadena) { // Funcion que valida si una cadena es un email
  var cadenaComp1 = /^[^@]+@[^@.]+\.[^@]*\w\w$/
  var cadenaComp2 = /^[A-Za-z0-9][\w.-]+@\w[\w.-]+\.[\w.-]*[A-Za-z][A-Za-z]$/
  if (!cadenaComp1.test(cadena) || !cadenaComp2.test(cadena)) {
    return false;
  }
  return true;
}
function muestraTextoMensaje(){ // Funcion que muestra u oculta la capa del texto de un mensaje en funcion de si antes era visible o no
	$( "#mensajeAmigo" ).is( ":visible" ) ?  $( "#mensajeAmigo" ).hide():$( "#mensajeAmigo" ).show(); 
}
function muestraDivEnviarMensajes(){ // Funcion que muestra la capa para enviar mensajes y oculta la del mensaje enviado
	$( "#divEnviarMensajes" ).show();
    $( "#divMensajeEnviado" ).hide();
}
function enviarMensajeAmigo(){  // Funcion que envia el mensaje a un amigo
	var nombreBusqueda = $( "#textBusqueda" ).val();
	var emailOrigen = $( "#emailAmigoOrigen" ).val();
	var emailDestino = $( "#emailAmigoDestino" ).val();
	var emailOrigenCorrecto = validaEmail( emailOrigen );
	var emailDestinoCorrecto = validaEmail( emailDestino );
	( emailOrigenCorrecto && emailDestinoCorrecto ) ? $( "#alertasCorreos" ).hide(): $( "#alertasCorreos" ).show();
	emailOrigenCorrecto ? $( "#alertaCorreoOrigen" ).hide(): $( "#alertaCorreoOrigen" ).show();
	emailDestinoCorrecto ? $( "#alertaCorreoDestino" ).hide(): $( "#alertaCorreoDestino" ).show();
      	if ( emailOrigenCorrecto && emailDestinoCorrecto ){
      		var datas="emailOrigen=" + emailOrigen + "&emailDestino=" + emailDestino +
      				  "&nombreBusqueda=" + nombreBusqueda + "&enlaceBusqueda=" + location.href + 
      				  "&comentarios=" + $( "#comentariosAmigo" ).val();
		$.ajax({
			type: "POST",
       		url: "/www/mitula/mytula/enviarMensajeAAmigo.jsp",
       		data: datas,
       		dataType: "script",
       		success: function( data ) {
       			if ( eval( data ) )	{
					$( "#divEnviarMensajes,#divCargandoAmigo,#divErrorAmigo" ).hide();
	       			$( "#divMensajeEnviado" ).show();
	       		}
	       		else{
					$( "#divMensajeEnviado,#divCargandoAmigo,#mensajeAmigo" ).hide();
       				$( "#divErrorAmigo,#divEnviarMensajes" ).show();
	       		}
       		},
       		error: function(){
				$( "#divMensajeEnviado,#divCargandoAmigo,#mensajeAmigo" ).hide();
       			$( "#divErrorAmigo,#divEnviarMensajes" ).show();
       		},
       		beforeSend: function(){
       			$( "#divEnviarMensajes,#divMensajeEnviado,#divErrorAmigo,#mensajeAmigo" ).hide();
       			$( "#emailAmigoEnviado" ).html( $( "#emailAmigoDestino" ).val() );
       			$( "#emailAmigoOrigen,#emailAmigoDestino,#comentariosAmigo" ).val( "" );
       			$( "#divCargandoAmigo" ).show();
       		}
    	});
    	cierraCapaAlerta();
    }
}	
function eliminarPaginacion( cadena ){ //Funcion que elimina la paginacion de una cadena
	var indiceUltimoSeparador = cadena.lastIndexOf("/");
	cadenaAux = cadena.substring( indiceUltimoSeparador + 1, cadena.length );
	if (  !( isNaN( parseFloat( cadenaAux ) ) ) )	cadena = cadena.substring( 0, indiceUltimoSeparador );
	return cadena;
}
function calcularActionPaginado( pagina ){//  Funcion que calcula el action del formulario para la paginacion
	var hash= location.hash;
	var hrefInicial = location.href;
	var hrefSinHash = hrefInicial.substring( 0, hrefInicial.indexOf( "#" ) );
	var cadena = eliminarPaginacion( hrefSinHash );
	cadena = ( cadena + "/" + pagina );
	if (hash != "")
		cadena = ( cadena + hash );
	document.forms.formBusqueda.action = cadena;
}
function mostrarMasBusquedas() {
	if (document.getElementById){ 
		var capa = document.getElementById('masFrases'); 
		capa.style.display = 'block'; 
		var enlace = document.getElementById('enlaceMas'); 
		enlace.style.display = 'none';
	}
}
function actualizarValoresEnFormularioDesdeFiltros(){// Funcion que prepara el envio en funcion de los elementos con la clase seleccionado
	var hash = "";
	$( ".enlaceFiltro.filtroSeleccionado" ).each( 
		function(){
			var valHtmlHermano = encodeURIComponent( $( this ).next().val() );
			$( "#" + this.name.substring(3) ).val( valHtmlHermano );
			if ( valHtmlHermano != "" )
			{
				hash += ( "|" + this.name.substring(3) + "=" + valHtmlHermano );
				document.forms.formBusqueda.action += ( "|" + this.name.substring(3) + "=" + valHtmlHermano );
			}
		}
	);
	location.hash = hash;
}
function crearEventosFiltros(){ // Funcion que crea los eventos asociados a los eventos onclick de los filtros
	$( ".enlaceFiltro" ).click( // Al pulsar sobre uno de los enlaces de los filtros, se llama a la siguiente funcion
		function(){								
			$( "paginaActual" ).val( "1" );    //  Se pone a uno el campo pagina actual, necesario para la busqueda
			$( "[name='" + this.name + "']" ).removeClass( "filtroSeleccionado" ); 		// Se elimina la clase filtroSeleccionado de todos los elementos del mismo filtro que el pulsado(comparten nombre)
			$( this ).addClass( "filtroSeleccionado" ); 								// Se le aņade la clase al elemento pulsado
			//  Aqui la modificacion en el hash es formal para que se entienda el codigo pero innecesaria, 
			// lo realmente necesario es modificar el action del formulario de busqueda
			// Se elimina el hash del action del formulario de busqueda, en caso de que exista
			if ( document.forms.formBusqueda.action.indexOf( "#" ) != -1 ){
				document.forms.formBusqueda.action = 
					document.forms.formBusqueda.action.substring( 
						0, document.forms.formBusqueda.action.indexOf( "#" ) 
					)
			}
			//  Se elimina la paginacion del formulario de busqueda si es que existe
			//  Para cada enlace con la clase seleccionado se pone como valor en el formulario de busqueda, al elemento 
			//  que corresponde, el que tenga el siguiente hermano (es un input oculto) del enlace pulsado.
			//  Este valor se pone en el hash y en el action del formulario
			actualizarValoresEnFormularioDesdeFiltros();
			document.forms.formBusqueda.paginaActual.value = "1"; 	// Y despues se envia el formulario de busqueda
			calcularAction(true); 									// Se calcula el action teniendo en cuenta el hash
			document.forms.formBusqueda.submit();	
		}
	);		
} 

function leeHash( dato ){ // funcion que lee el valor de un dato a partir del hash
	var valHash = $.trim(valorHash(dato));
	if ( valHash == "" ) return ""
	else	return "&" + dato + "=" + valHash;
}

function valorHash( dato ){		// funcion que lee el valor de un dato a partir del hash --%>
	var hash = location.hash; 	
	var filtros = hash.split("|");	
	var parAtributoValor = "";	
	var atributo;
	var valor;
	for ( var nCont=1; nCont < filtros.length; nCont++ ){
		parAtributoValor = filtros[nCont].split( "=" );		
		atributo = parAtributoValor[0];
		valor = parAtributoValor[1];
		if (atributo == dato) 		// Si el atributo es el buscado, se genera la cadena "&atributo=valor"
			return valor;
	}
	return ""; 	// Si se termina el bucle y no se encuentra el atributo buscado, se devuelve ""
}
function cerrarFiltros(){ // Funcion que cierra la pestania de los filtros
	$( "#contFiltros" ).fadeOut( 500,
		function(){ 
			$( "#resultadoBusqueda" ).animate( { width: "100%" }, 500,
				function(){
					$( "#capaAbrirFiltros" ).slideDown( 500	);		
				}
			); 
		} 
	);
}
function abrirFiltros(){ // Funcion que abre la pestania de los filtros
	$( "#capaAbrirFiltros" ).slideUp( 500,
		function(){
			$( "#resultadoBusqueda" ).animate(
				{width: "78%"},
				500, 
				function(){
					$( "#contFiltros" ).fadeIn( 500	); 
				} 
			);
		} 
	);
}
function enviarSinHashNiFiltro(){// Funcion de envio del formulario sin tener en cuenta el hash ni los filtros 
	if ( $.trim( $( "#textBusqueda" ).val() ) != "" ){ // Si el texto es vacio no se hace nada
		calcularAction(false); 
		document.formBusqueda.submit();
	} 
}
function enviarSiIntro(event){ if(event.keyCode == 13){ enviarSinHashNiFiltro(); }}  // Funcion de envio del formulario al pulsar la tecla intro