// JavaScript Document

//Declaraciones-------------------------------
var mensaje_en_pantalla = false;
var carga_en_pantalla = 0;
var navegador = detectBrowser();
var ultimo_error = "";
var div_mensaje_error = false;
var elemento_tapa = "tapa_mensaje_error";
var acordeon_activo = false;
var id_img_seleccionada;
var id_evento_sel;
var tamano_ventana;
var tamano_scroll;
var amper = "&";
//Detect browser version
var userAgent = navigator.userAgent.toLowerCase();
// Figure out what browser is being used
var browser = {
version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
safari: /webkit/.test( userAgent ),
opera: /opera/.test( userAgent ),
msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
};
var navegador_explorer=browser.msie;
var version_navegador=browser.version.toString();
//end browser detection

var mensaje_cargando = "<div align='center'><br/><br/><br/><br/>Conectando...<br/><div align='center'><img src='images/loading.gif' width='220' height='19' alt='Cargando...' /></div><br/><a href='javascript:oculta_tapa();'><img src='images/cerra_mensaje.png' alt='Cerrar' width='51' height='13' border='0'></a></div>";


var itemOrig;
function desplegar_menu(nombre,sn)
{
obj = document.getElementById(nombre);
element = document.getElementById(nombre).style;
if (sn>0)
	 //acordeon(nombre)
	 obj.style.display = "inline";
     //Effect.BlindDown(nombre,{duration:1,afterFinish:function() {acordeon_activo=false;}});
else
	 obj.style.display = "none";
	 //Effect.BlindUp(nombre,{afterFinish:function() {acordeon_activo=false;}});
}



function acordeon(elemento)//Expande las listas
	{
	var elementodiv = "div_"+elemento;
	var elementoimg = "img_"+elemento;

	element = document.getElementById(elemento).style;
	if (acordeon_activo==false){
		acordeon_activo = true;
		if (element.display == 'none')
			{
			Effect.BlindDown(elemento,{duration:1,afterFinish:function() {acordeon_activo=false;}});
			//$(elementoimg).src='images/simbolo_expandir.gif';
			}
		else
			{
			Effect.BlindUp(elemento,{afterFinish:function() {acordeon_activo=false;}});
			//$(elementoimg).src='images/simbolo_contraer.gif';
			}
		}
	}

function acordeon_rapido(elemento)//Expande las listas
	{
	var elementodiv = "div_"+elemento;
	var elementoimg = "img_"+elemento;

	element = document.getElementById(elemento).style;
	if (acordeon_activo==false){
		acordeon_activo = true;
		if (element.display == 'none')
			{
			Effect.BlindDown(elemento,{duration:0.4,afterFinish:function() {acordeon_activo=false;}});
			//$(elementoimg).src='images/simbolo_expandir.gif';
			}
		else
			{
			Effect.BlindUp(elemento,{afterFinish:function() {acordeon_activo=false;}});
			//$(elementoimg).src='images/simbolo_contraer.gif';
			}
		}
	}

function acordeon2(elemento)//Expande las listas
	{
	var elementodiv = "div_"+elemento;
	var elementoimg = "img_"+elemento;

	element = document.getElementById(elemento).style;
	if (acordeon_activo==false){
		acordeon_activo = true;
		if (element.display == 'none')
			{
			Effect.Grow(elemento,{duration:0.6,afterFinish:function() {acordeon_activo=false;}});
			//$(elementoimg).src='images/simbolo_expandir.gif';
			}
		else
			{
			Effect.Shrink(elemento,{duration:0.6,afterFinish:function() {acordeon_activo=false;}});
			//$(elementoimg).src='images/simbolo_contraer.gif';
			}
		}
	}

function cargar_div_boton(div,num_div){
	for (i=0; i<=num_div; i++){
		$("contenido_"+i).style.display='none';
		$("boton_"+i).className='boton_cabecera_div'
	}
	$("contenido_"+div).show()
		$("boton_"+div).className='boton_cabecera_div_activo'
}

function cargar_div_boton_s(div,num_div){
	for (i=0; i<=num_div; i++){
		$("contenido_"+i).style.display='none';
	}
	$("contenido_"+div).show()
}

function muestra_tapa(tipo,url,parametros) //Función para mostrar la tapa con fade en toda la ventana
	{
	if(mensaje_en_pantalla && tipo=='error'){oculta_tapa();}
	switch (tipo)
		{
		//case "upload": $('tapa').style.background='#F4F5FF';$('mensaje').style.width = 400+'px';$('mensaje').style.height = 300+'px'; break
		case "encuesta": $('tapa').style.background='#5b5a5a';$('mensaje').style.background='url(images/fondo825x600.gif)';  break
		default: $('tapa').style.background='#5b5a5a'; $('mensaje').style.width = 400+'px';$('mensaje').style.height = 300+'px';$('mensaje').style.background='url(images/fondo400x300_s.gif)';  break
		}
	$('tapa').style.width = arrayPageSize[0]+'px';
	$('tapa').style.height = arrayPageSize[1]+'px';
	calcula_tamano();
	Element.update('mensaje', mensaje_cargando);
	Effect.Appear('tapa', { duration: 0.3, from: 0.0, to: 0.8 });
	Effect.Appear('mensaje', { duration: 0.3, from: 0.0, to: 1.0 });
	mensaje_en_pantalla = true;
	carga_contenido("mensaje",url,"&accion=mensaje"+parametros,'');
	}
	
	
function oculta_tapa() //Función para ocultar la tapa con fade en toda la ventana
	{
	Effect.Fade('mensaje', { duration: 0.3, from: 1.0, to: 0.0, afterFinish : function(){Element.update('mensaje','');} });
	Effect.Fade('tapa', { duration: 0.3, from: 0.8, to: 0.0 });
	mensaje_en_pantalla = false;
	}
	
	
function muestra_carga(mensaje) //Función para mostrar la barra de carga y el mensaje
	{
	var contenido_mensaje = '<div align="center">'+mensaje+'</div>'
	var imagen = '<div align="center"><img src="images/loading.gif" width="220" height="19" alt="Cargando..." /></div>'

	if(carga_en_pantalla == 0)
		{
		Element.update( 'carga', contenido_mensaje+imagen);
		Effect.Appear('carga', { duration: 0.2, from: 0.0, to: 1.0 });
		carga_en_pantalla = carga_en_pantalla+1;
		}
	}

function muestra_carga_grande(mensaje,div) //Función para mostrar la barra de carga y el mensaje
	{
	var contenido_mensaje = '<div align="center"><br/><br/><br/><br/>'+mensaje+'</div>'
	var imagen = '<div align="center"><br/><img src="images/cargando3.gif" alt="Cargando datos..." /></div>'

	if(carga_en_pantalla == 0)
		{
		Element.update( div, contenido_mensaje+imagen);
		Effect.Appear(div, { duration: 0.2, from: 0.0, to: 1.0 });
		carga_en_pantalla = carga_en_pantalla+1;
		}
	}
	
function muestra_carga_peq(mensaje,div) //Función para mostrar la barra de carga y el mensaje
	{
	var contenido_mensaje = '<div align="center">'+mensaje+'</div>'
	var imagen = '<div align="center"><img src="images/loading3.gif" alt="Cargando..." /></div>'

	if(carga_en_pantalla == 0)
		{
		Element.update( div, contenido_mensaje+imagen);
		Effect.Appear(div, { duration: 0.2, from: 0.0, to: 1.0 });
		carga_en_pantalla = carga_en_pantalla+1;
		}
	}
	
function muestra_carga_div(mensaje,div) //Función para mostrar la barra de carga y el mensaje
	{
	var contenido_mensaje = '<div align="center">'+mensaje+'</div>'
	var imagen = '<div align="center"><img src="images/loading.gif" width="220" height="19" alt="Cargando..." /></div>'

	if(carga_en_pantalla == 0)
		{
		Element.update( div, contenido_mensaje+imagen);
		Effect.Appear(div, { duration: 0.2, from: 0.0, to: 1.0 });
		carga_en_pantalla = carga_en_pantalla+1;
		}
	}
	
	
function oculta_carga() //Función para ocultar la barra de carga y el mensaje
	{
	if(carga_en_pantalla <= 1)
		{
		Element.update( 'carga', '');
		Effect.Appear('carga', { duration: 0.1, from: 1.0, to: 0.0 });
		carga_en_pantalla = 0;
		}
	else
		{
		carga_en_pantalla = carga_en_pantalla-1;
		}
	}

function calcula_tamano() //Función para redimensionar las DIV en función del tamaño de la ventana
	{
	arrayPageSize = getPageSize();
	tamano_ventana = Position.GetWindowSize();
	tamano_scroll = document.viewport.getScrollOffsets();
	
	if (($('mensaje_contenido')!=undefined) &&($('mensaje')!=undefined))
		{
		$('mensaje').setStyle({'width':($('mensaje_contenido').getWidth())+'px'});
		}
	if ($('mensaje')!=undefined)
		{
		$('mensaje').setStyle({'left':((tamano_ventana.width/2)-($('mensaje').getWidth()/2))+'px'});
		$('mensaje').setStyle({'top':(((tamano_ventana.height/2)-($('mensaje').getHeight()/2))-30)+'px'});
		}
	}

function carga_cadena(id_elemento,cadena) //Función de control de errores
	{
	if(cadena.indexOf('<!--##OK##-->')>-1)
		{Element.update(id_elemento, cadena);calcula_tamano();$(id_elemento).show();}
	if(cadena.indexOf('<!--##FINSESION##-->')>-1)
		{muestra_tapa('advertencia',mensaje_findesesion,'excepcion');}
	}
	
Position.GetWindowSize = function(w) {
	var width, height;
        w = w ? w : window;
        this.width = w.innerWidth || (w.document.documentElement.clientWidth || w.document.body.clientWidth);
        this.height = w.innerHeight || (w.document.documentElement.clientHeight || w.document.body.clientHeight);
        
        return this;
}

function getPageSize() //Función de calculo del tamaño de la ventana
	{
	var xScroll, yScroll, windowWidth, windowHeight;
	
	if (window.innerHeight && window.scrollMaxY) 
		{	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
		}
	else if (document.body.scrollHeight > document.body.offsetHeight)
			{ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
			} 
		else 
			{ // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
			}
	if (self.innerHeight) 
		{	// all except Explorer
		if(document.documentElement.clientWidth)
			{
			windowWidth = document.documentElement.clientWidth; 
			} 
		else 
			{
			windowWidth = self.innerWidth;
			}
		windowHeight = self.innerHeight;
		} 
	else if (document.documentElement && document.documentElement.clientHeight) 
			{ // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
			} 
		else if (document.body) 
				{ // other Explorers
				windowWidth = document.body.clientWidth;
				windowHeight = document.body.clientHeight;
				}	
	if(yScroll < windowHeight)
		{
		pageHeight = windowHeight;
		} 
	else 
		{
		pageHeight = yScroll;
		}
	if(xScroll < windowWidth){	
		pageWidth = xScroll;} 
	else 
		{
		pageWidth = windowWidth;
		}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
	}

function detectBrowser() //Función para detectar el navegador del cliente
	{
    var ie = document.all != undefined;
    var opera = window.opera != undefined;
    
    if (opera) return "opera";
    if (ie) return "ie";
    if ((window)&&(window.netscape)&&(window.netscape.security)) {
      if (window.XML) 
	  	{
        return "firefox";
		}
      else return "firefox";
	  }
    return "ie"; 
	}

function carga_contenido(id_elemento,url,parametros,acciones_post)  //Función de carga de las páginas
	{
	var aleatorio=Math.random(); 
	var path_final;
	
	path_final='';

	new Ajax.Request(path_final+url+'?nocache='+aleatorio+parametros, 
					{
					method: 'get', 
					onSuccess: function(transport) 
					 	{
						if(id_elemento!='no_elem')
							{
							carga_cadena(id_elemento, transport.responseText);
							}
						eval(acciones_post);
						pageTracker._trackPageview(path_final+url+'?'+parametros);
						},
					onFailure: function(failure)
					 	{
						if(!mensaje_en_pantalla)
							{
							var win = window.open("", "win", "width=1200,height=800,status=yes,toolbar=yes,menubar=yes,location=yes"); // a window object
							win.document.open("text/html", "replace");
							win.document.write("<HTML><HEAD><TITLE>New Document</TITLE></HEAD><BODY>"+failure.status+" // "+failure.responseText+"</BODY></HTML>");
							win.document.close();
							error_registro(failure.responseText,'ASP');

							//alert(failure.status+" // "+failure.responseText);
							muestra_tapa('error',eval("error_"+failure.status),'excepcion');
							}
						else
							{
							}
						}
					});
	} 

function inicializa() //Función de inicialización, carga onLoad de general.asp
	{
	calcula_tamano();
	//carga_upload();
	}
	
function validar_envio_noticia(){
var error = " Se han producido los siguientes errores al intentar realizar el envío: \n \n";
var devolver = "True";
	if (document.form1.id_not.value == "") 
	{
	error =  error + "- No ha seleccionado ninguna noticia/evento para reenviar. \n";
	devolver = "False";
	}
	if (document.form1.email.value == "" && document.form1.email_2.value == "") 
	{
	error =  error + "- Ha de rellenar al menos uno de los correos electronicos. \n";
	devolver = "False";
	}
	if (document.form1.email.value != "") 
	{
		if (document.form1.nombre.value == "") 
		{
		error =  error + "- El campo nombre de Tus datos esta vacio. \n";
		devolver = "False";
		}
		if (document.form1.apellidos.value == "") 
		{
		error =  error + "- El campo apellidos de Tus datos esta vacio. \n";
		devolver = "False";
		}
		if( !(/^[A-Za-z][A-Za-z0-9_\-]*@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-.]+[A-za-z]$/.test(document.form1.email.value)) ) 
		{
		error =  error + "- El formato de correo electronico de Tus datos no es correcto. \n";
		devolver = "False";
		}
	}
	if (document.form1.email_2.value != "") 
	{
		if (document.form1.nombre.value == "") 
		{
		error =  error + "- El campo nombre de Tus datos esta vacio. \n";
		devolver = "False";
		}
		if (document.form1.apellidos.value == "") 
		{
		error =  error + "- El campo apellidos de Tus datos esta vacio. \n";
		devolver = "False";
		}
		if (document.form1.nombre_2.value == "") 
		{
		error =  error + "- El campo nombre de Datos de tu amigo/a esta vacio. \n";
		devolver = "False";
		}
		if (document.form1.apellidos_2.value == "") 
		{
		error =  error + "- El campo apellidos de Datos de tu amigo/a esta vacio. \n";
		devolver = "False";
		}
		if( !(/^[A-Za-z][A-Za-z0-9_\-]*@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-.]+[A-za-z]$/.test(document.form1.email_2.value)) ) 
		{
		error =  error + "- El formato de correo electronico de Datos de tu amigo/a no es correcto. \n";
		devolver = "False";
		}
	}
		if (devolver == "False")
		{
		alert(error);
		return false;
		}
		else
		{
		document.form1.nombre.value = reemplazar(document.form1.nombre.value);
		document.form1.apellidos.value = reemplazar(document.form1.apellidos.value);
		document.form1.email.value = reemplazar(document.form1.email.value);
		document.form1.nombre_2.value = reemplazar(document.form1.nombre_2.value);
		document.form1.apellidos_2.value = reemplazar(document.form1.apellidos_2.value);
		document.form1.email_2.value = reemplazar(document.form1.email_2.value);
		return true;
		}
}

function reemplazar(cadena)
{
	var cadena_final = cadena;
	
	cadena_final = cadena_final.replace(/&/g,"&amp;");
	cadena_final = cadena_final.replace(/'/g,"\"");
	cadena_final = cadena_final.replace(/\“/g,"&quot;");
	cadena_final = cadena_final.replace(/\”/g,"&quot;");
	cadena_final = cadena_final.replace(/\"/g,"&quot;");
	cadena_final = cadena_final.replace(/\n/g,'<br />');
	cadena_final = cadena_final.replace(/</g,"< ");
	cadena_final = cadena_final.replace(/>/g," >");
	cadena_final = cadena_final.replace(/<  /g,"< ");
	cadena_final = cadena_final.replace(/  >/g," >");
	cadena_final = cadena_final.replace(/< br \/ >/g,"<br />");
	cadena_final = cadena_final.replace(/< b >/g,"<b>");
	cadena_final = cadena_final.replace(/< \/b >/g,"</b>");
	cadena_final = cadena_final.replace(/< em >/g,"<em>");
	cadena_final = cadena_final.replace(/< \/em >/g,"</em>");
	cadena_final = cadena_final.replace(/< hr\/ >/g,"<hr/>");
	cadena_final = cadena_final.replace(/< span/g,"<span");
	cadena_final = cadena_final.replace(/< \/span >/g,"</span>");
	
	return cadena_final;
}


