/*
 * Libreria global de funciones javascript. Incluye
 * - envioAmigo
 * - aumento de fuente
 * - funciones auxiliares
 * 
 * autor: Fco. Javier Antúnez Ruiz, fjantunez@isotrol.com
 * autor: Miguel J. Jiménez, mjjimenez@isotrol.com
 * 
 * */

/**************************************************************************************************************/

function creaPieBloq () 
{
	var pieBloq = document.createElement('div');
	pieBloq.setAttribute('class', 'pie_bloq');
	pieBloq.className = 'pie_bloq';
	return pieBloq;
}

/**
 * Dice si una dirección de correo-e está bien o mal formada
 */
function comprobarEmail(email)
{
	var er_email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return er_email.test(email);
}

function esEdicion()
{
	return false;
} 

var objFuenteLetras = new fuenteLetras();
var	original = 0.8;
var	incremento = 0;

function fuenteLetras () 
{}


/* Función que aumenta la fuente de la letra en todo el contenedor*/
fuenteLetras.prototype.aumentarFuente = function () {
	incremento+=.25;
	var tamano = original + incremento;
	document.getElementById("zonaAmpliarTexto1").style.fontSize = tamano + "em";
	if(document.getElementById("zonaAmpliarTexto2"))
	{
		document.getElementById("zonaAmpliarTexto2").style.fontSize = tamano + "em";
	}
}

/* Función que reduce la fuente de la letra en todo el contenedor*/
fuenteLetras.prototype.reducirFuente = function ()
{
	incremento-=.25;
	var tamano = original + incremento;
	document.getElementById("zonaAmpliarTexto1").style.fontSize = tamano + "em";
	if(document.getElementById("zonaAmpliarTexto2"))
	{
		document.getElementById("zonaAmpliarTexto2").style.fontSize = tamano + "em";
	}
}


/********************************************** ENVIO AMIGO ***********************************************/

var objEnvioAmigo = new envioAmigo();

function envioAmigo () {}

/*Función que cierra la capa de envio amigo. Recibe dos parámetros
 * urlCaptcha, la url de la que obtener el nuevo captcha
 * id, el id de la imagen a recargar*/
envioAmigo.prototype.closeEnvioAmigo = function (urlCaptcha, id)
{
	var bloqueo = document.getElementById('capaBloqueo');
	var t = bloqueo.parentNode;
	t.removeChild(bloqueo);
	reemplazarCaptcha(urlCaptcha, id);
	var envioAmigo = document.getElementById('contenedorEnvioAmigo');
	var padre = envioAmigo.parentNode;
	padre.removeChild(envioAmigo);
}

envioAmigo.prototype.comprobarFormulario = function()
{
	// Comprobamos que los campos obligatorios estén rellenos
	
	var vDestino = trim(document.getElementById("destino").value);
	var vTuCorreo = document.getElementById("tuCorreo").value;
	var vInpCaptchaEA = document.getElementById("inpCaptchaEA").value;
	
	if (vDestino == "" || vTuCorreo == "")
	{
		objMensajeAviso.creaAviso('utilidades', 'Debe rellenar los campos obligatorios.', true);
		return false
	}
	if (vInpCaptchaEA == "")
	{
		objMensajeAviso.creaAviso('utilidades', 'Debe introducir el código que aparece para poder mandar la noticia.', true);
		return false
	}
	if (comprobarEmail(vTuCorreo) == false)
	{
		objMensajeAviso.creaAviso('utilidades', 'Su dirección de correo es incorrecta.', true);
		return false
	}
	
	vDestino = vDestino.replace(/\s*\;\s*/g, ";"); // Sustituimos la expresion "; " por ";"
	vDestino = vDestino.replace(/^\;+|\;+$/, "") // Quitamos los ; del principio y del final
	a_vDestino = vDestino.split(";");
	
	for (var i=0; i<a_vDestino.length; i++)
	{
		if (comprobarEmail(a_vDestino[i]) == false)
		{
			objMensajeAviso.creaAviso('utilidades', 'La dirección de destino \'' + a_vDestino[i] + '\' es incorrecta.', true);
			return false
		}
	}
	
	return true; // Si llegamos hasta aquí es que todo es correcto
}

/*Función que crea la capa para el formulario de envio amigo. Recibe como parámetros:
 * logado, con valores true y false según el usuario está logado o no
 * texto1, el texto de titulo de la capa
 * texto2, el texto para la etiqueta de 'direcciones de destino'
 * texto3, el texto para la etiqueta de 'asunto'
 * texto4, el texto para la etiqueta de 'tu dirección de correo'
 * texto5, el texto para la etiqueta de 'tu nombre'
 * texto6, el texto para la etiqueta de 'comentario'
 * texto7, el texto para las normas de uso
 * texto8, el texto para la etiqueta del checkbox 'Enviar también a tu correo '
 * imgEnviar, la ruta de la imagen que es el botón de enviar
 * idNoticia, la url de la noticia
 * ruta, la sección del articulo
 * titulo, el titulo de la noticia
 * url, la url a la que se envia el formulario
 * basesEstatico, la ruta del directorio estatico
 * urlCaptcha, la ruta de la que obtener el captcha
 * */

envioAmigo.prototype.creaEnviaAmigo = function ( idNoticia, ruta, titulo, pagina, bases_estatico, url, urlCaptcha,
	texto1, texto2, texto3, texto4, texto5, texto6, texto7, texto8, imgEnviar)
{	
	/*textos y parametros temporales*/
	texto1 = 'Enviar la página por correo a:';
	texto2 = 'Direcciones de destino (*)';
	texto3 = 'Asunto';
	texto4 = 'Su dirección de correo (*)';
	texto5 = 'Su nombre';	
	texto6 = 'Comentario';
	texto7 = "Escriba las direcciones de correo a las que quieres enviar la información separadas por punto y coma (;).<br><br>Los campos marcados con (*) son obligatorios";
	texto8 = 'Enviar también a su correo';
	url = 'impe/enviaAmigo';
	bases_estatico = baseEstaticoEspecifico;
	imgEnviar = '/css/cssimg/botonEnvioAmigo.gif';

	var capaBloqueo = document.createElement('div');
	var body = document.getElementsByTagName('body')[0];
	capaBloqueo.id = "capaBloqueo";
	capaBloqueo.className = "estiloBloqueo";
	capaBloqueo.style.height = body.offsetHeight + "px";
	
	/*variable con el nombre del servidor. Puede ser necesario su cambio*/
	var servidor = servidorEspecifico;
	

	var pieBloq1 = creaPieBloq();
	var pieBloq2 = creaPieBloq();
	var pieBloq3 = creaPieBloq();
	var pieBloq4 = creaPieBloq();
	
	var inputCaptcha = document.createElement('input');
	var imagenCaptcha = document.createElement('img');
	var recargaCaptcha = document.createElement('input');
	
	imagenCaptcha.src= urlCaptcha;
	imagenCaptcha.id="captchaEA";
	inputCaptcha.className = "inputEnvioAmigoT2";
	inputCaptcha.id = "inpCaptchaEA";
	inputCaptcha.style.width = "90px";
	inputCaptcha.style.verticalAlign = "top";
	inputCaptcha.style.marginLeft = "5px";
	inputCaptcha.setAttribute("name", "codigo");
	recargaCaptcha.className = "botonRecargarT2";
	recargaCaptcha.value = "Recargar";
	recargaCaptcha.onclick = function () 
	{
		reemplazarCaptcha(urlCaptcha, imagenCaptcha.id)
	}
	
	var rutaVar = document.createElement('input');
	rutaVar.setAttribute('type', 'hidden');
	rutaVar.setAttribute('name', 'seccion');
	rutaVar.setAttribute('id', 'seccion');
	rutaVar.setAttribute('value', ruta);
	
	var idNot = document.createElement('input');
	idNot.setAttribute('type', 'hidden');
	idNot.setAttribute('name', 'idNoticia');
	idNot.setAttribute('id', 'idNoticia');
	idNot.setAttribute('value', idNoticia);
	
	var pag = document.createElement('input');
	pag.setAttribute('type', 'hidden');
	pag.setAttribute('name', 'ruta');
	pag.setAttribute('id', 'ruta');
	pag.setAttribute('value', pagina);
	
	var tituloNoticia = document.createElement('input');
	tituloNoticia.setAttribute('type', 'hidden');
	tituloNoticia.setAttribute('name', 'titulo');
	tituloNoticia.setAttribute('id', 'titulo');
	tituloNoticia.setAttribute('value', titulo);
	
	var contenedorEnvioAmigo = document.createElement('div');
	contenedorEnvioAmigo.className = 'contenedorEnvioAmigo';
	contenedorEnvioAmigo.id = 'contenedorEnvioAmigo';
	
	var subcontenedorEnvioAmigo = document.createElement('div');
	subcontenedorEnvioAmigo.className = 'subcontenedorEnvioAmigo';

	var cerrarEnvioAmigo = document.createElement('div');
	cerrarEnvioAmigo.className = 'cerrarEnvioAmigo';
	
	var imgCerrar = document.createElement('img');
	imgCerrar.alt = "cerrar";
	imgCerrar.className = "puntero";
	imgCerrar.src = bases_estatico + '/css/cssimg/xBlancaSobreFondoGris.gif';
	imgCerrar.onclick = function () {objEnvioAmigo.closeEnvioAmigo(urlCaptcha,'captchaComentario');}; // Cerramos y recargamos el captcha de los comentarios
	cerrarEnvioAmigo.appendChild(imgCerrar);
	
	var formEnvioAmigo = document.createElement('form');
	formEnvioAmigo.className = "formEnvioAmigo";
	formEnvioAmigo.id = 'formEnvioAmigo';
	formEnvioAmigo.setAttribute('method', 'get');
	formEnvioAmigo.setAttribute('action', bases_estatico+url);
	
	var contenidoFormulario = document.createElement('div');
	contenidoFormulario.className = 'contenidoFormulario';
	
	var tituloEnvioAmigo = document.createElement('div');
	tituloEnvioAmigo.className = 'tituloEnvioAmigo';
	tituloEnvioAmigo.innerHTML = texto1;
	
	
/* Elementos de la primera linea */
	var l1b1 = document.createElement('div');
	l1b1.className = 'envioAmigoIzq';
	
	var label1 = document.createElement('label');
	label1.className = 'labelEnvioAmigo';
	label1.setAttribute('for', 'destino');
	label1.innerHTML = texto2;
	var input1 = document.createElement('input');
	input1.className = 'inputEnvioAmigo';
	input1.setAttribute('type', 'text');
	input1.setAttribute('name', 'destino');
	input1.setAttribute('id', 'destino');
	
	l1b1.appendChild(label1);
	l1b1.appendChild(input1);	
	
	var l1b2 = document.createElement('div');
	l1b2.className = 'envioAmigoDrc';
	
	var label2 = document.createElement('label');
	label2.className = 'labelEnvioAmigo';
	label2.setAttribute('for', 'asunto');
	label2.innerHTML = texto3;
	var input2 = document.createElement('input');
	input2.className = 'inputEnvioAmigo';
	input2.setAttribute('type', 'text');
	input2.setAttribute('name', 'asunto');
	input2.setAttribute('id', 'asunto');

	l1b2.appendChild(label2);
	l1b2.appendChild(input2);	

/*Elementos de la segunda linea*/
	var l2b1 = document.createElement('div');
	l2b1.className = 'envioAmigoIzq';
	
	var label3 = document.createElement('label');
	label3.className = 'labelEnvioAmigo';
	label3.setAttribute('for', 'tuCorreo');
	label3.innerHTML = texto4;
	var input3 = document.createElement('input');
	input3.className = 'inputEnvioAmigo';
	input3.setAttribute('type', 'text');
	input3.setAttribute('name', 'tuCorreo');
	input3.setAttribute('id', 'tuCorreo');
	
	l2b1.appendChild(label3);
	l2b1.appendChild(input3);	
	
	var l2b2 = document.createElement('div');
	l2b2.className = 'envioAmigoDrc';
	
	var label4 = document.createElement('label');
	label4.className = 'labelEnvioAmigo';
	label4.setAttribute('for', 'tuNombre');
	label4.innerHTML = texto5;
	var input4 = document.createElement('input');
	input4.className = 'inputEnvioAmigo';
	input4.setAttribute('type', 'text');
	input4.setAttribute('name', 'tuNombre');
	input4.setAttribute('id', 'tuNombre');
	
	l2b2.appendChild(label4);
	l2b2.appendChild(input4);
	
/*Elementos de la tercera linea*/	
	var l3b1 = document.createElement('div');
	l3b1.className = 'envioAmigoIzq';
	
	var label5 = document.createElement('label');
	label5.className = 'labelEnvioAmigo';
	label5.setAttribute('for', 'comentario');
	label5.innerHTML = texto6;
	
	var area = document.createElement('textarea');
	area.className = 'areaEnvioAmigo';
	area.setAttribute('name', 'comentario');
	area.setAttribute('id', 'comentarioEA');
	
	l3b1.appendChild(label5);
	l3b1.appendChild(area)

	
	var l3b2 = document.createElement('div');
	l3b2.className = 'envioAmigoDrc';
	
	var usoEnvioAmigo = document.createElement('div');
	usoEnvioAmigo.className = 'usoEnvioAmigo';
	usoEnvioAmigo.innerHTML = texto7;
	
	var bloqCheck = document.createElement('div');
	bloqCheck.className = 'bloqCheck';
	
	var input5 = document.createElement('input');
	input5.setAttribute('type', 'checkbox');
	input5.setAttribute('name', 'enviarAMi');
	input5.setAttribute('id', 'enviarAMi');
	
	var label6 = document.createElement('label');
	label6.className = 'labelEnvioAmigo';
	label6.setAttribute('for', 'enviarAMi');
	label6.innerHTML = texto8;
	
	bloqCheck.appendChild(input5);
	bloqCheck.appendChild(label6);
	
	var botonEnvioAmigo = document.createElement('img');
	botonEnvioAmigo.className = 'botonEnvioAmigo';
	botonEnvioAmigo.src = bases_estatico + imgEnviar;
	botonEnvioAmigo.onclick = function (e) {
		if (objEnvioAmigo.comprobarFormulario() == true)	
			objEnvioAmigo.envioCorreo(urlCaptcha, servidor + url + "?" + formEnvioAmigo.serialize());
	};
	
	l3b2.appendChild(usoEnvioAmigo);
	l3b2.appendChild(botonEnvioAmigo);	
	
	
	var l4b1 = document.createElement('div');
	l4b1.className ="envioAmigoIzq margen_sup5px";
	
	l4b1.appendChild(imagenCaptcha);
	l4b1.appendChild(inputCaptcha);
	
	var l4b2 = document.createElement('div');
	l4b2.className ="envioAmigoDrc margen_sup5px";
	
	l4b2.appendChild(recargaCaptcha);
	l4b2.appendChild(botonEnvioAmigo);
	l4b2.appendChild(bloqCheck);

	var br = document.createElement('br');

	
	
/*Reuno todos los elementos*/
	contenidoFormulario.appendChild(tituloEnvioAmigo);
	contenidoFormulario.appendChild(l1b1);
	contenidoFormulario.appendChild(l1b2);	
	contenidoFormulario.appendChild(pieBloq1);
	contenidoFormulario.appendChild(l2b1);
	contenidoFormulario.appendChild(l2b2);	
	contenidoFormulario.appendChild(pieBloq2);
	contenidoFormulario.appendChild(l3b1);
	contenidoFormulario.appendChild(l3b2);	
	contenidoFormulario.appendChild(pieBloq3);
	contenidoFormulario.appendChild(l4b1);
	contenidoFormulario.appendChild(l4b2);	
	contenidoFormulario.appendChild(pieBloq4);
	contenidoFormulario.appendChild(idNot);
	contenidoFormulario.appendChild(rutaVar);
	contenidoFormulario.appendChild(pag);	
	contenidoFormulario.appendChild(tituloNoticia);	
	
	formEnvioAmigo.appendChild(contenidoFormulario);
	
	subcontenedorEnvioAmigo.appendChild(cerrarEnvioAmigo);
	subcontenedorEnvioAmigo.appendChild(formEnvioAmigo);
	
	body.appendChild(contenedorEnvioAmigo);	
	contenedorEnvioAmigo.appendChild(subcontenedorEnvioAmigo);	
	body.appendChild(capaBloqueo);
	
	
	/* cálculo de la altura versión IE*/
	if(document.all)
	{
		var posY = (document.body.scrollTop || document.documentElement.scrollTop || 0) 
			+ Math.floor(document.documentElement.clientHeight / 2) - Math.floor(contenedorEnvioAmigo.offsetHeight / 2);
		var posX = Math.floor(document.body.clientWidth  / 2) - Math.floor(contenedorEnvioAmigo.offsetWidth / 2) 
			- (document.body.scrollLeft || document.documentElement.scrollLeft || 0);
		
	}
	/* cálculo de la altura versión Firefox*/
	else
	{
		var posY = window.scrollY + Math.floor(window.innerHeight / 2) - Math.floor(contenedorEnvioAmigo.offsetHeight / 2);
		var posX = Math.floor(window.innerWidth / 2) - Math.floor(contenedorEnvioAmigo.offsetWidth / 2) - window.scrollX;
	}	
	
	posY = (posY < 0) ? 0 : posY;
	contenedorEnvioAmigo.style.top = posY + "px";	
	posX = (posX < 0) ? 0 : posX;		
	contenedorEnvioAmigo.style.left = posX + "px";
}

envioAmigo.prototype.envioCorreo = function (urlCaptcha, url, destinos, asunto, tucorreo, tunombre, comentario, enviarami , rutaVar, idNot, pag)
{
new Ajax.Request(url, {   
			/*parameters: '?destino='+destinos+'&asunto='+asunto+'&tuCorreo='+tucorreo+'&tuNombre='+tunombre+'&comentario='+comentario+'&enviarAMi='+enviarami+'&seccion='+rutaVar+'&idNoticia='+idNot+'&ruta='+pag ,*/
			method: 'get',   
			onSuccess: function(respuesta) 
				{     
					//objEnvioAmigo.closeEnvioAmigo(urlCaptcha, 'captchaComentario' );
					var cadena = respuesta.responseText.toString();
					cadena = trim(cadena);
					var inicio = cadena.indexOf("<error>");
					var fin = cadena.indexOf("</error>");					
					if (inicio != -1 && fin != -1)
					{											
						var mensajeError = cadena.substring (inicio + 7 , fin);
						objMensajeAviso.creaAviso('utilidades', respuesta.responseText, true);		
					}
					else
					{
						objMensajeAviso.creaAviso('utilidades', respuesta.responseText, false);					
					}
					reemplazarCaptcha(urlCaptcha, 'captchaEA');
				}, 
			onFailure: function(respuesta) 
				{     			
					objMensajeAviso.creaAviso('utilidades', respuesta.responseText, true);
					reemplazarCaptcha(urlCaptcha, 'captchaEA');	
				}
		});
}



/********************************************** MENSAJE AVISO ***********************************************/

var objMensajeAviso = new mensajeAviso();

function mensajeAviso () {}

/*Función que cierra la capa de mensajeAviso*/
mensajeAviso.prototype.closeMensajeAviso = function ()
{
	
	var bloqueo = document.getElementById('capaBloqueo');
	var padre = bloqueo.parentNode;
	padre.removeChild(bloqueo);
	
	var mensajeAviso = document.getElementById('contenedorMensajeAviso');
	padre = mensajeAviso.parentNode;
	padre.removeChild(mensajeAviso);
}

/* Función que crea la ventana de un aviso. Recibe como parámetros
 * idContenedor, el id de la capa que es referencia para mostrar el mensaje
 * texto, el texto del mensaje
 * tipoAviso, un boolean. Con true significa que el aviso es un error. 
 * */

mensajeAviso.prototype.creaAviso = function (idContenedor, texto, tipoAviso)
{
	var	bases_estatico = baseEstaticoEspecifico;

	var capaBloqueo = document.createElement('div');
	var body = document.getElementsByTagName('body')[0];
	capaBloqueo.id = "capaBloqueo";
	capaBloqueo.className = "estiloBloqueo";
	capaBloqueo.style.height = body.offsetHeight + "px";


	var contenedorMensajeAviso = document.createElement('div');
	contenedorMensajeAviso.className = 'contenedorMensajeAviso';
	contenedorMensajeAviso.id = 'contenedorMensajeAviso';

	var subcontenedorMensajeAviso = document.createElement('div');
	if(tipoAviso == true)
	{
		subcontenedorMensajeAviso.className = 'subcontenedorMensajeAviso';
	}
	else
	{
		subcontenedorMensajeAviso.className = 'subcontenedorMensajeAviso2';
	}
	contenedorMensajeAviso.appendChild(subcontenedorMensajeAviso);

	var xBlancaSobreFondoGris = document.createElement('div');
	xBlancaSobreFondoGris.className = 'xBlancaSobreFondoGris';
	subcontenedorMensajeAviso.appendChild(xBlancaSobreFondoGris);

	var imgCerrar = document.createElement('img');
	imgCerrar.alt = "cerrar";
	imgCerrar.className = "puntero";
	imgCerrar.src = bases_estatico + '/css/cssimg/xBlancaSobreFondoGris.gif';
	imgCerrar.onclick = function () {objMensajeAviso.closeMensajeAviso(); };	
	xBlancaSobreFondoGris.appendChild(imgCerrar);

	var contenidoMensajeAviso = document.createElement('div');
	contenidoMensajeAviso.className = 'contenidoMensajeAviso';
	subcontenedorMensajeAviso.appendChild(contenidoMensajeAviso);

	var tituloContenidoMensajeAviso = document.createElement('div');
	tituloContenidoMensajeAviso.className = 'tituloContenidoMensajeAviso';
	if(tipoAviso == true)
	{
		tituloContenidoMensajeAviso.innerHTML = 'Error';
	}
	contenidoMensajeAviso.appendChild(tituloContenidoMensajeAviso);

	var subtituloContenidoMensajeAviso = document.createElement('div');
	subtituloContenidoMensajeAviso.className = 'subtituloContenidoMensajeAviso';
	contenidoMensajeAviso.appendChild(subtituloContenidoMensajeAviso);

	var mensajeAviso = document.createElement('div');
	mensajeAviso.className = 'mensajeAviso';
	mensajeAviso.innerHTML = texto;
	contenidoMensajeAviso.appendChild(mensajeAviso);
	
	//document.getElementById(idContenedor).appendChild(contenedorMensajeAviso);
	
	
	body.appendChild(capaBloqueo);
		body.appendChild(contenedorMensajeAviso);
	
	/* cálculo de la altura versión IE*/
	if(document.all)
	{
		var posY = (document.body.scrollTop || document.documentElement.scrollTop || 0) 
			+ Math.floor(document.documentElement.clientHeight / 2) - Math.floor(contenedorMensajeAviso.offsetHeight / 2);
		var posX = Math.floor(document.body.clientWidth  / 2) - Math.floor(contenedorMensajeAviso.offsetWidth / 2) 
			- (document.body.scrollLeft || document.documentElement.scrollLeft || 0);
		
	}
	/* cálculo de la altura versión Firefox*/
	else
	{
		var posY = window.scrollY + Math.floor(window.innerHeight / 2) - Math.floor(contenedorMensajeAviso.offsetHeight / 2);
		var posX = Math.floor(window.innerWidth / 2) - Math.floor(contenedorMensajeAviso.offsetWidth / 2) - window.scrollX;
	}	
		
	posY = (posY < 0) ? 0 : posY;
	contenedorMensajeAviso.style.top = posY + "px";	
	posX = (posX < 0) ? 0 : posX;		
	contenedorMensajeAviso.style.left = posX + "px";
}









/*********************** funciones auxiliares ******************************/

function trim (cadena) {
	return cadena.replace(/^\s+|\s+$/, "");
}

function ltrim (cadena) {
	return cadena.replace(/^\s+/, "");
}

function reemplazarCaptcha(rutaCaptcha, id)
{
//	var contenedor = $('contenedorCaptcha');
	var imagen = document.getElementById(id);
	var nuevaImagen = new Image();
	var rnd = new Date().getTime();
	nuevaImagen.src = rutaCaptcha + "?" + rnd;
	imagen.src = nuevaImagen.src;
	return true;
}

function rtrim (cadena) {
	return cadena.replace(/\s+$/, "");
}

function mostrarLoMas(capa, objA)
{
	var capa = "loMas_" + capa;
	var objUl = document.getElementById(capa);
	var capaPadre = objUl.parentNode;
	
	var cUl = capaPadre.getElementsByTagName("ul");
	for (var i=0; i<cUl.length; i++)
	{
		cUl[i].style.display="none";
	}
	objUl.removeAttribute("style");
	var listaSolapas = document.getElementById("listaSolapas");
	
	var cA = listaSolapas.getElementsByTagName("a");
	for (var i=0; i<cA.length; i++)
	{
		cA[i].className="";
	}
	
	objA.className = "actual";
}



/********************************************** ÚLTIMA HORA **********************************************/

function avanzaUltimaHora(direccion)
{
	if (typeof idIntervaloUltimaHora != "undefined")              
		clearInterval(idIntervaloUltimaHora);
    if (direccion != "+1" && direccion != "-1") direccion = "+1";
    // Vemos qué noticia se está mostrando
    var objSpan = document.getElementById("ultimaHora");
    var cStrong = objSpan.getElementsByTagName("strong");
    for (var i=0; i<cStrong.length; i=i+2)
    {
		if (cStrong[i].style.display == "") {
			break;var er_email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		}
    }
    
    var prefijo = "ultima_hora_titulo_";
    var textoId = cStrong[i].getAttribute("id");
    var index = textoId.substring(prefijo.length, textoId.length - 1);

    var index_sig = ""; // Almacena el índice de la siguiente noticia a mostrar
    switch(direccion)
    {
        case "+1":                                      // Si existe la siguiente mostramos la siguiente y si no volvemos a la primera
	        if (document.getElementById("ultimaHora_titulo_" + (parseInt(index) + 1)) != null)
	            index_sig = parseInt(index) + 1;
	        else
	            index_sig = 0;
	        break;
	   	case "-1":                                      // Si existe la siguiente mostramos la siguiente y si no volvemos a la Última
	        if (document.getElementById("ultimaHora_titulo_" + (parseInt(index) - 1)) != null)
	            index_sig = parseInt(index) - 1;
	        else
	            index_sig = (cStrong.length / 2) - 1;
	        break;
    }

    cStrong[2 * parseInt(index)].style.display = "none";
    cStrong[2 * parseInt(index) + 1].style.display = "none";
    cStrong[2 * parseInt(index_sig)].style.display = "";
    cStrong[2 * parseInt(index_sig) + 1].style.display = "";
    idIntervaloUltimaHora = setInterval(function(){avanzaUltimaHora(direccion);}, 5000);
}
       
/********************************** TITULARES **********************************/
function getPaginaTitulares(url, pag)
{
	var contenedor = document.getElementById('contenedor_titulares');
	
	new Ajax.Request(url, {   
			parameters: '?pag='+pag,
			method: 'get',   
			onSuccess: function(respuesta) 
				{     
					contenedor.innerHTML = respuesta.responseText;
				}, 
			onFailure: function(respuesta) 
				{     				
					//alert("Ocurrió un error determinado");
				} 		
		});
}

/********************************************** BUSCADOR ***********************************************/

function buscadorPag () {}

var objBuscadorPag = new buscadorPag();

/* Función que devuelve una página de resultados del buscador
**/
buscadorPag.prototype.getPagina = function (url, parametros)
{
	var contenedor = document.getElementById('contenedorResultadosBuscador');
	
	new Ajax.Request(url, {   
			parameters: '?'+parametros,
			method: 'get',   
			onSuccess: function(respuesta) 
				{     
					contenedor.innerHTML = respuesta.responseText;
				}, 
			onFailure: function(respuesta) 
				{     				
					//alert("Ocurrió un error indeterminado");
				} 		
		});
}

/* Comprueba que f1 sea menor o igual a f2 */
buscadorPag.prototype.compruebaFechas = function(f1,f2)
{
	// Si los campos están "disabled" no hacemos nada
	if (f1.disabled && f2.disabled)
		return true;

	var af1 = f1.value.split("/");
	var af2 = f2.value.split("/");
	
	var df1 = new Date(af1[2], af1[1], af1[0]);
	var df2 = new Date(af2[2], af2[1], af2[0]);
	
	if (df1.getTime() > df2.getTime())
	{
		alert("La fecha del campo 'Hasta' debe ser igual o superior a la fecha del campo 'Desde'.");
		return false;
	}
	
	return true;
}

/*	Función que oculta el buscador avanzado
 * */
buscadorPag.prototype.ocultaAvanzada = function ()
{
 	var x = document.getElementById('bloqBuscadorAvanzado');
 	
 	document.getElementById("tipo").disabled = true;
 	document.getElementById("s").disabled = true;
 	document.getElementById("finicio").disabled = true;
	document.getElementById("ffin").disabled = true;
 	
 	if (x.style.display != 'none')
	{
 		x.style.display = 'none';
	}
}

/*	Función que muestra el buscador avanzado
 * */
buscadorPag.prototype.muestraAvanzada = function ()
{
	var x = document.getElementById('bloqBuscadorAvanzado');
	
	document.getElementById("tipo").disabled = false;
	document.getElementById("s").disabled = false;
	document.getElementById("finicio").disabled = false;
	document.getElementById("ffin").disabled = false;
	
 	if (x.style.display == 'none')
	{
 		x.style.display = 'block';
	}
}

/********************************************** MINIGALERIAS ***********************************************/

function miniGalerias () {}

var objMiniGalerias = new miniGalerias();

/* Función que actualiza la mini galeria. Recibe cuatro parámetros
 * idSolapaActivar, es el id de la solapa que indica la galeria que se está viendo. Si vale cadena vacia, no se
 * 					realiza cambio de solapa activa
 * url, la url a la que se realiza la petición ajax
 * pag, indica la página que se solicita en la petición. Sirve para facilitar la paginación. 
 * param, los parámetros de la llamada
 * resetSelect, parámetro booleano que nos indica si debemos resetear el select de las secciones
 * */
miniGalerias.prototype.cambiarMGActiva = function (idSolapaActivar, url, param, resetSelect)
{
	new Ajax.Request(url, {   
		parameters: param,
		method: 'get',   
		onSuccess: function(respuesta) 
			{     
				var contenedor = document.getElementById('loMas_galeria');
				contenedor.innerHTML = respuesta.responseText;
				if(idSolapaActivar != '')
				{
					objMiniGalerias.desactivarMG();		
					document.getElementById(idSolapaActivar).className = 'actual';									
				}
				if (resetSelect)
					document.getElementById("selectGaleria").value = "";
			}, 
		onFailure: function(respuesta) 
			{
			} 		
	});
}

/*	Función que desactiva las minigalerias
 * */
miniGalerias.prototype.desactivarMG = function ()
{
	document.getElementById('gUltimas').className = '';
	document.getElementById('gRecomendadas').className = '';
	document.getElementById('gComentadas').className = '';
	document.getElementById('gVistas').className = '';
}


     
/********************************** ESPECIALES **********************************/

/* Función que carga la sección de Última hora mediante ajax. Recibe tres parámetros
 * url, la dirección url a la que se realiza la petición ajax
 * idContenedor, que es el id del contenedor donde se metera la información
 * urlHora, la url de la que conseguir la hora de servidor en texto plano
 * numColumnas, si el elemento ocupa 2 ó 3 columnas
 * */
function getUltimaHora(url, idContenedor, urlHora, numColumnas)
{
	var contenedor = document.getElementById(idContenedor);
	
	new Ajax.Request(url, {   
			parameters: '?numColumnas=' +numColumnas, 
			method: 'get',   
			onSuccess: function(respuesta) 
				{     
					contenedor.innerHTML = respuesta.responseText;
					horaPlana(urlHora);			
				}, 
			onFailure: function(respuesta) 
				{     				
					//alert("Ocurrió un error al cargar bloque Última hora");
				} 		
		});
}

/*	Función que devuelve la hora en texto plano
 * */
function horaPlana (url) {
	new Ajax.Request(url, {   
			method: 'get',   
			onSuccess: function(respuesta) 
				{     
					var padre = document.getElementById("horaUltimaHora");
					padre.innerHTML = respuesta.responseText;
			
				}, 
			onFailure: function(respuesta) 
				{     				
					//alert("Ocurrió un error al cargar bloque Última hora");
				} 		
		});
}


/*	Función para el cambio de solapas y de información del especial "más visto, más enviado". Recibe como
 * 	parámetro el id de la solapa a marcar.
 *  Como resultado marca la solapa e intercambia la capa que se está mostrando por la relacionada con la 
 *  solicitada.
 * */
function cambiarSolapaEspecial(idMarcar)
{
	var listaSolapas = document.getElementById("solapasEspecial");
	var solapas = listaSolapas.getElementsByTagName("li");
	var numSolapas = solapas.length;
	var i=0;
	
	for (i=0; i< numSolapas; i++)
	{		
		
		
		var enlaceActual =  solapas[i].getElementsByTagName('a');
		var idActual = enlaceActual[0].id;
		
		enlaceActual[0].className = "";
		document.getElementById(idActual +"_1").style.display ="none;";
		if (enlaceActual[0].id == idMarcar)
		{
			enlaceActual[0].className = "actual";
			document.getElementById(idActual +"_1").style.display ="block;";
		}
	}	
}


/* Función que carga la sección de Gente ajax. Recibe dos parámetros
 * url, la dirección url a la que se realiza la petición ajax
 * idContenedor, que es el id del contenedor donde se metera la información
 * imagenTop, la imagen que se mostrará en la parte superior del especial
 * paginacion, la pagina que se solicita
 * */ 
function getEspecialGente(url, idContenedor, pagina, imagenTop, paginacion)
{
	var numPagina = null;
	var contenedor = document.getElementById(idContenedor);
	if(paginacion == null || paginacion == 'undefined')
	{
		numPagina = 1;	
	}
	else
	{
		numPagina = paginacion;
	}
	new Ajax.Request(url, {   
			parameters: '?id='+pagina+'&imagenTop='+imagenTop+'&pag='+numPagina+'&bloque='+idContenedor, 
			method: 'get',   
			onSuccess: function(respuesta) 
				{     
					contenedor.innerHTML = respuesta.responseText;						
				}, 
			onFailure: function(respuesta) 
				{     				
					//alert("Ocurrió un error al cargar bloque Gente");
				} 		
		});
}


/* Función que carga la sección de Lo más más enviado con ajax. Recibe cinco parámetros
 * url, la dirección url a la que se realiza la petición ajax
 * idContenedor, que es el id del contenedor donde se meterá la información
 * */ 
function getEspecialLoMas(url, idContenedor)
{
	var contenedor = document.getElementById(idContenedor);
	new Ajax.Request(url, {   
			parameters: '?bloque='+idContenedor, 
			method: 'get',   
			onSuccess: function(respuesta) 
				{     
					contenedor.innerHTML = respuesta.responseText;						
				}, 
			onFailure: function(respuesta) 
				{     				
					//alert("Ocurrió un error al cargar bloque Lo más");
				} 		
		});
}


/**
 * Abre en una ventana la ampliación de la imagen de una noticia
 */
function abrirAmpliacion(url, titulo, autor, pie, alto, ancho)
{
	var imagen = new Image();
	var pieAncho = 0;
	var altoImagen = 0;
	var anchoImagen = 0;
	var ventanaAmpliacion = null;
	var docAmpliacion = null;
	
	imagen.onload = function()
	{
		altoImagen = imagen.height;
		anchoImagen = imagen.width;		
		
		if (trim(alto) != "")
			alto = parseInt(alto) + 15;
		else
			alto = altoImagen + 15;
			
		if (parseInt(alto) > 0 && trim(pie) != "")
			alto = parseInt(alto) + 80;
			
		if (trim(ancho) != "")
		{
			pieAncho = ancho;
			ancho = parseInt(ancho) + 30;
		}
		else
		{
			pieAncho = anchoImagen;
			ancho = anchoImagen + 30;
		}		
				
		ventanaAmpliacion = window.open('about:blank','', 'height=' + alto + ', width=' + ancho + ', resizable=1');
		docAmpliacion = ventanaAmpliacion.document;
		docAmpliacion.write("<html><head><title>" + (document.title || titlePortal) + "</title></head><body>");
		docAmpliacion.write("<div style=\"width: " + pieAncho + "px;\">");
		docAmpliacion.write("<img src=\"" + url + "\" alt=\"" + titulo + "\">");
		
		if (trim(autor) != "")
			autor = autor + " - ";
		
		docAmpliacion.write("<div style=\"background-color: #F3F3F3; padding: 2px; font-size: 11px; font-family: Arial, Helvetica, sans-serif; font-weight: bold;\">" + autor + pie + "</div>");
		docAmpliacion.write("</div>");
		docAmpliacion.write("</body>");
		docAmpliacion.close();
		
	};
	
	imagen.src = url;
}


function votacionArticulo () 
{
		
}
var objVotacionArticulo = new votacionArticulo();


/* Funci�n que realiza la votaci�n por estrelas de una galeria. Recibe como par�metros
 * idGaleria, que es el id de la galer�a sobre la que se est� realizando la votaci�n
 * idVotacion, el id del elemento ul que muestra la votaci�n por estrellas de esta galer�a
 * valorVoto, el voto que se hace sobre la galeria
 * url, la direcci�n a la que se envia la votaci�n
 * 
 * */
votacionArticulo.prototype.votaArticulo = function (idNoticia, idVotacion, valorVoto, url) {
	var altura = document.getElementById ("zonaVotos").offsetHeight + 30;
	var anchura = document.getElementById ("zonaVotos").offsetWidth + 30;
	var opaca = creaCapaOpaca(altura, anchura);
new Ajax.Request(url, {   
			parameters: '?idNoticia='+idNoticia+'&valorVoto='+valorVoto ,
			asynchronous: false,
			method: 'get',   
			onSuccess: function(respuesta) 
				{     
					//objGaleriaFS.actualizaVotacionFS(idVotacion, valorVoto);	
					var cadena = respuesta.responseText;
					cadena = trim(cadena);
					var inicio = cadena.indexOf("<error>");
					var fin = cadena.indexOf("</error>");
					if (inicio != -1 && fin != -1)
					{						
						var padre = document.getElementById("zonaVotos");
						var mensaje = cadena.substring (inicio + 7 , fin);
						setTextoOpaca(opaca, mensaje)
						document.body.style.cursor = "default"; 				
						padre.appendChild(opaca);				
					}
					else 
					{				
						setTextoOpaca(opaca, cadena);
					}
				}, 
			onFailure: function(respuesta) 
				{     				
					objMensaje.creaMensaje(respuesta.responseText);
				}		
		});
}

/********************************** INFOUSUARIO **********************************/
function InfoUsuario() {}

InfoUsuario.prototype.getHTML = function(url, id) {
	new Ajax.Request(url, {   
			method: 'get',
			onSuccess: function(respuesta) {
				var capa = $(id);
				if (capa) { 
					capa.innerHTML = respuesta.responseText.toString();
				}
				
				var formLogin = $('frm_openid');
				if (formLogin) { 
					formLogin.onsubmit = function() {
					 	if (trim($('login_openid').value) == "")
					 	{
					 		return false;
					 	}
					 	else
					 	{
					 		return true;
					 	}
					}
					
					$('login_openid').onfocus = function() {
						this.style.width = "315px";
					}
					
					$('login_openid').onblur = function() {
						this.style.width = "";
					}
				}
				
				try {
					this.tratarFormularioComentarios();
				} catch(e) {
					// No hacemos NADA
				}
			}.bind(this),
			onFailure: function(respuesta) {
				objMensaje.creaMensaje(respuesta.responseText);
			}
	});
}

InfoUsuario.prototype.tratarFormularioComentarios = function() {
	if ($('autenticacion_nombre') == null) // El usuario no está autentificado
		$('email').parentNode.removeAttribute("style"); // Mostramos el correo electrónico
	else // Usuario autenticado
	{
		$('email').parentNode.parentNode.removeChild($('email').parentNode); // Eliminamos la capa que pide el correo electrónico
		// A continuación rellenamos el nombre de usuario
		$('nombre').value = $('autenticacion_nombre').innerHTML + " " + $('autenticacion_apellidos').innerHTML;
	}
}

objInfoUsuario = new InfoUsuario();


