// Precargador de imágenes
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

// Permite restaurar imágenes en un onrollover
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

// Busca un elemento determinado
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

// Permite intercambiar imágenes en un rollover
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Recarga la págna
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

// Abre una ventana tipo popup
function MM_openBrWindow(theURL,winName,features, myWidth, myHeight, isCenter) { //v3.0
  if(window.screen)if(isCenter)if(isCenter=="true"){
    var myLeft = (screen.width-myWidth)/2;
    var myTop = (screen.height-myHeight)/2;
    features+=(features!='')?',':'';
    features+=',left='+myLeft+',top='+myTop;
  }
  window.open(theURL,winName,features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
}

// Nos abre una ventana tipo popup con una imágen dentro
function CargarFoto(img, ancho, alto, titulo){
derecha=(screen.width-ancho)/2;
arriba=(screen.height-alto)/2;
string="toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width="+ancho+",height="+alto+",left="+derecha+",top="+arriba+"";
fin=window.open(img,"cargaFoto",string);
fin.document.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" ");
fin.document.write("\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
fin.document.write("<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><title>"+titulo+"</title>");
fin.document.write("<style>body{margin:0;padding:0;</style>\n</head><body>");
fin.document.write("<img src=\""+img+"\" alt=\"Haga click para cerrar la ventana\" title=\"Haga click para cerrar la ventana\" onclick=\"window.close();\" />");
fin.document.write("</body></html>");
}

//Validación de Email
function validarEmail(valor) 
	{
  		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor))
			{
   				return 1;
  			} else {
   				return 0;
  			}
	}

// Validación del sistema de envío de noticias
function validaEnviaNoticia()
	{
		valida = 0;
		
		// Validamos TU nombre
		if(document.getElementById('tunombre').value=="")
			{
				document.getElementById('tunombre').style.borderColor = "#CC0000";
				document.getElementById('tunombre').value = "Tu nombre no es válido";
				valida = 1;
			}
		
		// Validamos TU email
		validarEmail(tuemail);
		if(validarEmail(tuemail)==0)
			{
				document.getElementById('tuemail').style.borderColor = "#CC0000";
				document.getElementById('tuemail').value = "Tu email no es válido";
				valida = valida + 1;
			}
		
		// Validamos SU nombre
		if(document.getElementById('sunombre').value=="")
			{
				document.getElementById('sunombre').style.borderColor = "#CC0000";
				document.getElementById('sunombre').value = "El nombre de tu amigo no es válido";
				valida = valida + 1;
			}
		
		// Validamos SU email
		validarEmail(suemail);
		if(validarEmail(suemail)==0)
			{
				document.getElementById('suemail').style.borderColor = "#CC0000";
				document.getElementById('suemail').value = "El email de tu amigo no es válido";
				valida = valida + 1;
			}
			
		if(valida>0) { return false;} else { alert(1);}
		
	}

// Estas 3 funciones nos permiten mostrar la miniatura de los thumb
function toolTip(texto,me) 
	{
		theObj=me;
		theObj.onmousemove=updatePos;
		$('toolTipBox').innerHTML = "<img src=\"images/tip.gif\" id=\"toolTipImg\" /><div>" + texto + "</div>";
		$('toolTipBox').style.display="block";
		//window.onscroll=updatePos;
 }
 
// Actualiza la posición del tip
function updatePos()
	{
		var ev=arguments[0]?arguments[0]:event;
		var x=ev.clientX;
		var y=ev.clientY;
		diffX=-40;
		diffY=20;
		$('toolTipBox').style.top  = y-2+diffY+document.body.scrollTop+ "px";
		$('toolTipBox').style.left = x-2+diffX+document.body.scrollLeft+"px";
		theObj.onmouseout=hideMe;
	}

// Oculta el tip
function hideMe() 
	{
		$('toolTipBox').style.display="none";
	}

// Estas tres funciones nos permiten escribir cookies, leerlas y eliminarlas.
function SetCookie(name, value, expires, path, domain)
	{ 
		document.cookie = name + "=" + escape(value) +
  		((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
  		((path == null)	? "" : "; path=" + path) +
  		((domain == null)  ? "" : "; domain=" + domain);
	}
//Recojemos el valor de la cookie
function GetCookie(name)
	{ 
		var cname = name + "=";
  		var dc = document.cookie;
 		if (dc.length> 0)
  			{ 
				begin = dc.indexOf(cname);
				if (begin != -1)
					{ 
						begin += cname.length;
	  					end = dc.indexOf(";", begin);
	  					if (end == -1) end = dc.length;
	  					return unescape(dc.substring(begin, end));
					}
  			}
  		return null;
	}

// Eliminamos la cookie
function DelCookie (name,path,domain)
	{ 
		if (getCookie(name))
  			{
				document.cookie = name + "=" +
				((path == null) ? "" : "; path=" + path) +
				((domain == null) ? "" : "; domain=" + domain) + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  			}
	}

/* Función para aumentar o disminuir el tamaño del texto */
var tSize = 100;
function txtSize(div,tipo)
	{
		if(tipo==1)
			{
				tSize = tSize + 10;
				if(tSize > 150) { tSize = 150; }
				Element.setContentZoom(div, tSize);
				
			} else {
				tSize = tSize - 10;
				if(tSize < 100) { tSize = 100; }
				Element.setContentZoom(div, tSize);		
			}
	}

// Para seleccionar elementos por clase
function getElementsByClass(searchClass,node,tag) 
	{
		var classElements = new Array();
		if ( node == null )
			{
				node = document;
			}
		if ( tag == null )
			{
				tag = '*';
			}
		var els = node.getElementsByTagName(tag);
		var elsLen = els.length;
		var pattern = new RegExp('(^|\s)'+searchClass+'(\s|$)');
		for (i = 0, j = 0; i < elsLen; i++) 
			{
				if ( pattern.test(els[i].className) ) 
					{
						classElements[j] = els[i];
						j++;
					}
			}
		return classElements;
	}

// Para que usar document.getElementById si tenemos esta función ?
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) 
		{
			var element = arguments[i];
			if (typeof element == 'string')
				{
					element = document.getElementById(element);
				}
			if (arguments.length == 1)
				{
					return element;
				}
			elements.push(element);
		}
	return elements;
}

// Añadimos un nuevo evento onLoad
function addLoadEvent(func) 
	{
		var oldonload = window.onload;
		if (typeof window.onload != 'function') 
			{
				window.onload = func;
			} else {
				window.onload = function() 
					{
						oldonload();
						func();
					}
			}
	}

// Añadimos un evento determinado a un elemento
function addEvent(obj, evType, fn)
	{
		 if (obj.addEventListener)
		 	{
		   		obj.addEventListener(evType, fn, false);
		   		return true;
		 	} else if (obj.attachEvent){
		   		var r = obj.attachEvent("on"+evType, fn);
		   		return r;
		 	} else {
		   		return false;
		 	}
	}
// En este array metemos todos los elementos que no validen
var arrayValida = new Array;
// Esta función comprueba si existe un elemento dentro de un array
in_array = function(a,e)
	{
		// Creamos un bucle que nos muestra todos los elementos del array
		for(i=0;i<a.length;i++)
			{
				// En caso de existir, nos devuelve el índice de ese elemento
				if(a[i] === e) { return i; } 		
			}	
		return false;	
	}
	
// Añadimos o eliminamos un elemento de un array
comprueba_array = function(a)
	{
		// Creamos un nuevo array donde iremos añadiendo los elementos NO eliminados
		var comprobacion = new Array;
		nuevoValor = 0;
		
		// Mediante un bucle, imprimimos "imaginariamente" el array "a" (arrayValida)
		for(i=0;i<a.length;i++)
			{
				// Comprobamos si tiene algún elemento vacío
				if(a[i]!=null)
					{
						// En ese caso lo eliminamos
						comprobacion[nuevoValor] = a[i];
						nuevoValor ++;
					}
			}
		// Devolvemos el nuevo valor para "arrayValida"
		return comprobacion;
	}

buscaNeutro = function(a,e)
	{				
		// Esta variable es igual al resultado de comprobar si existe determinado elemento en el array
		var array_comprobado = in_array(arrayValida,a);
		
		// En caso de que un campo no valide, lo añadimos al array
		if(e == 1)
			{	
				if(array_comprobado === false)
					{
						// Concat nos permite "añadir" un nuevo elemento al final del array
						arrayValida = arrayValida.concat(a);		
						// y comprobamos si existe algún otro elemento el el campo de "no validados"
						arrayValida = comprueba_array(arrayValida);
					}
			// En el caso de validar, lo eliminamos de ese array
			} else {
				// Como el campo ya valida, lo eliminamos del array
				arrayValida[array_comprobado] = null;
				// y comprobamos si existe algún otro elemento el el campo de "no validados"
				arrayValida = comprueba_array(arrayValida);
			}
		// En caso de que el array esté vacío y todos los campos validen
		/*if(arrayValida == "") 
			{
				// Habilitamos y mostramos el botón de enviar
				$('submit').disabled = false;
				$('submit').style.display = "block";
			} else {
				// Deshabilitamos y ocultamos el botón de enviar
				$('submit').style.display = "none";
				$('submit').disabled = true;
			}*/
	}
	
// Nada de campos vacíos con esta función
requerido = function(a,e,i)
	{				
		$(e).style.display = "none";
		accion = function() 
			{
					campo = $(a);
					mensaje = $(e);
		
					if(campo.value.length >= i)
						{
							// Si el total de caracteres es superior o igual al requerido, todo va bien
							buscaNeutro(a,0);
							mensaje.style.display = "block";
							mensaje.className = "aviso correcto";
							mensaje.innerHTML = "Formato correcto "
						} else {
							// Si el total de caracteres es inferior al requerido, siga intentándolo
							buscaNeutro(a,1);
							mensaje.style.display = "block";
							mensaje.className = "aviso incorrecto";
							mensaje.innerHTML = "Es necesario introducir " + ( i - campo.value.length );
							if(( i - campo.value.length ) == 1)
								{
									mensaje.innerHTML+= " caracter";
								} else {
									mensaje.innerHTML+= " caracteres";	
								}
						}
			}
		addLoadEvent(accion);
		addEvent($(a), 'keyup', accion);
	}
	
// Para validad la extensión
valida_extension = function(a,e,extensiones)
	{
		accion = function() 
			{
				campo = $(a);
				mensaje = $(e);	
				//extensiones_permitidas = extensiones.split(",");
				extensiones_permitidas = new Array(".jpg",".jpeg",".png");
   		
				if (campo.value === "") 
					{
      					//Si no tengo archivo, es que no se ha seleccionado un archivo en el formulario
       					buscaNeutro(a,1);
						mensaje.className = "aviso incorrecto";
						mensaje.innerHTML = "No has seleccionado ningún archivo";
   					} else {
      					//recupero la extensión de este nombre de archivo
      					extension = ((campo.value).substring((campo.value).lastIndexOf("."))).toLowerCase();
						//compruebo si la extensión está entre las permitidas
      					permitida = false;
						
						if(in_array(extensiones_permitidas,extension)=== false)
							{
								buscaNeutro(a,1);
								mensaje.className = "aviso incorrecto";
								mensaje.innerHTML = "Extensión no permitida, solo " + extensiones_permitidas.join();
         					} else {
								buscaNeutro(a,0);
								mensaje.className = "aviso correcto";
								mensaje.innerHTML = "Correcto. ";
							}
  	 				}
			}
		addLoadEvent(accion);
		addEvent($(a), 'keyup', accion);
		addEvent($(a), 'change', accion);
	}

// Para validar email
valida_email = function(a,e)
	{
		$(e).style.display = "none";	
		accion = function()
			{					
				correo = $(a);
				mensaje_email = $(e);
				
				if(emailCheck(correo.value) == true)	
					{
						buscaNeutro(a,0);
						mensaje_email.style.display = "block";
						mensaje_email.className = "aviso correcto";
						mensaje_email.innerHTML = "Formato de email correcto";
						return true;
					} else {
						buscaNeutro(a,1);
						mensaje_email.style.display = "block";
						mensaje_email.className = "aviso incorrecto";
						mensaje_email.innerHTML = "Formato de email incorrecto";
						return false;
					}
			}
		addLoadEvent(accion);
		addEvent($(a), 'keyup', accion);
		addEvent($(a), 'change', accion);
	}

// Para validar campos iguales de contraseña
function compara(estatico,campo1,campo2,aviso1,aviso2)
	{
		$(aviso1).style.display = "none";
		$(aviso2).style.display = "none";
		
		campo_estatico = $(estatico);
		campo_inicio = $(campo1);
		campo_final = $(campo2);
		campo_aviso1 = $(aviso1);
		campo_aviso2 = $(aviso2);
		
		campo_inicio.onkeyup = function()
			{
				if(campo_inicio.value.length>=6 &&
				((campo_estatico.value == campo_inicio.value && campo_final.value == "") ||
				(campo_estatico.value != campo_inicio.value && campo_inicio.value == campo_final.value)))
					{
						
						campo_aviso1.style.display = "block";
						campo_aviso2.style.display = "block";
						campo_aviso1.className = "aviso correcto";
						campo_aviso2.className = "aviso correcto";
						campo_aviso1.innerHTML = "Entrada correcta";
						campo_aviso2.innerHTML = "Entrada correcta";
						return true;
					} else {
						campo_aviso1.style.display = "block";
						campo_aviso2.style.display = "block";
						campo_aviso1.className = "aviso incorrecto";
						campo_aviso2.className = "aviso incorrecto";
						campo_aviso1.innerHTML = "Las contraseñas no son iguales";
						campo_aviso2.innerHTML = "Las contraseñas no son iguales";	
						return false;
					}
			}
		campo_final.onkeyup = function()
			{
				if(campo_inicio.value.length>=6 &&
				((campo_estatico.value == campo_inicio.value && campo_final.value == "") ||
				(campo_estatico.value != campo_inicio.value && campo_inicio.value == campo_final.value)))
					{
						
						campo_aviso1.style.display = "block";
						campo_aviso2.style.display = "block";
						campo_aviso1.className = "aviso correcto";
						campo_aviso2.className = "aviso correcto";
						campo_aviso1.innerHTML = "Entrada correcta";
						campo_aviso2.innerHTML = "Entrada correcta";
						return true;
					} else {
						campo_aviso1.style.display = "block";
						campo_aviso2.style.display = "block";
						campo_aviso1.className = "aviso incorrecto";
						campo_aviso2.className = "aviso incorrecto";
						campo_aviso1.innerHTML = "Las contraseñas no son iguales";
						campo_aviso2.innerHTML = "Las contraseñas no son iguales";
						return false;
					}
			}
	}

// Valida un email
function emailCheck(emailStr) 
	{
		// Verificar si el email tiene el formato user@dominio.
		var emailPat=/^(.+)@(.+)$/

		//Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] 
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"

		//Verifica los caracteres que son válidos en una dirección de email */
		var validChars="\[^\\s" + specialChars + "\]"
		var quotedUser="(\"[^\"]*\")"

		//Verifica si la dirección de email está representada con una dirección IP Válida
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/

		//Verificar caracteres inválidos 
		var atom=validChars + '+'
		var word="(" + atom + "|" + quotedUser + ")"
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		/*domain, as opposed to ipDomainPat, shown above. */
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

		var matchArray=emailStr.match(emailPat)
		if (matchArray==null) 
			{
				return false
			}
		var user=matchArray[1]
		var domain=matchArray[2]

		// Si el user "user" es valido 
		if (user.match(userPat)==null) 
			{
				// Si no
				return false
			}

		//Si la dirección IP es válida
		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) 
			{
				for (var i=1;i<=4;i++) 
					{
						if (IPArray[i]>255) 
							{
								return false
							}
					}
				return true
			}

		var domain_array=domain.match(domainPat)
		if (domain_array==null) 
			{
				return false
			}

		var atomPat=new RegExp(atom,"g")
		var domArr=domain.match(atomPat)
		var len=domArr.length
		if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
			{
				return false
			}
		if (len<2) 
			{
				return false
			}

		//La dirección de email ingresada es Válida
		return true;
	}

//
function EstiloComillas() 
	{
		//Recibo todas las citas que haya en la web
		var Citas = document.getElementsByTagName("cite");
		//Por cada una de ellas
		for (k = 0; k< Citas.length; k++) 
			{
				//Defino una función que contiene la cita
				var TextoEntreComillas = Citas[k].innerHTML
				//Le sumo las comillas, cada una con su clase
				Citas[k].innerHTML = '<span class="ComillasInicio">&#8220;</span>' + TextoEntreComillas; 
				Citas[k].innerHTML+= '<span class="ComillasFinal">&#8222;</span>';
			}
	}

window.onerror = function()
	{
		return true
	}

function prende() 
	{
    	anclas=document.getElementsByTagName("a").length;
    	for (i=0;i<anclas;i++) 
			{
				document.getElementsByTagName("a").item(i).onfocus = new Function("if(this.blur)this.blur()");
			}
	}

window.onload =  function()
	{
		prende();
		EstiloComillas();
		MM_reloadPage(true);
	}