<!--
function Left(s, n){
	// Devuelve los n primeros caracteres de la cadena
	if(n>s.length)
		n=s.length;
		
	return s.substring(0, n);
}

function Right(s, n){
	// Devuelve los n últimos caracteres de la cadena
	var t=s.length;
	if(n>t)
		n=t;
		
	return s.substring(t-n, t);
}

function Mid(s, n, c){
	// Devuelve una cadena desde la posición n, con c caracteres
	// Si c = 0 devolver toda la cadena desde la posición n
	
	var numargs=Mid.arguments.length;
	
	// Si sólo se pasan los dos primeros argumentos
	if(numargs<3)
		c=s.length-n+1;
		
	if(c<1)
		c=s.length-n+1;
	if(n+c >s.length)
		c=s.length-n+1;
	if(n>s.length)
		return "";
		
	return s.substring(n-1,n+c-1);
}

//Devuelve true si el EMail es correcto
function validaEmail(campoEmail)//Le pasamos el objeto "TextBox"
{
	emailPat = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9-])+(\.[a-zA-Z0-9-]+)+$/;
	//emailPat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	//emailPat = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9-]+)+$/;
	
	if(!emailPat.test(campoEmail.value))//Accedemos a la propiedad value:
	{
		alert("Por favor, escriba un E-Mail válido con el siguiente formato: 'xxx@xxx.xxx'");
		campoEmail.focus();
		campoEmail.select();
		return false;
	}
	//Aquí comprobamos que solo añade 2 o 3 caracteres antes del punto sino está mal diseñado:	
	if(Mid(Right(campoEmail.value, 3), 1, 1)!=".")
	{
		if(Mid(Right(campoEmail.value, 4), 1, 1)!=".")
		{
			if(Right(campoEmail.value, 4)!="coop")
			{
			alert("Por favor, escriba un E-Mail válido con el siguiente formato: 'xxx@xxx.xxx'");
			campoEmail.focus();
			campoEmail.select();
			return false;
			}			
		}
	}
	return true;
}

//Devuelve true si un textarea sobrepasa la longitud máxima de caracteres pasada por parámetro.
function textarea_lng(objeto,campo,longitud)
{
	objeto=eval(objeto);
	if(objeto.value.length>longitud)
	{
		alert("El campo " + campo + " supera el número de caracteres permitidos\nSobran "+(objeto.value.length-longitud));
		objeto.focus();
		//objeto.select();
		return true;
	}
	else
	{
		return false;
	}
}
//Comprueba que el formato del campo teléfono sean sólo números, sin guiones ni espacios de separación
function formatoTelf(objeto)
{
	objeto=eval(objeto);
	if(objeto.value!="")
	{	
		objeto.value=objeto.value.replace(".","");
		objeto.value=objeto.value.replace("e","");
		if (isNaN(objeto.value))
		{
			alert("Teléfonos o fax, introduzca sólo números.\nSin guiones ni espacios separación.");
			objeto.value="";
		}
		objeto.focus();
		return;
	}
	return true;
}
function formatoCorreo(objeto)
{
	if(objeto.value!="")
	{
		/* var esEmail = /^(.+\/.+\/.+)*$/; */
		var esEmail = /^(.+\@.+\...+)*$/;
		//----------------------
   		if (!esEmail.test(objeto.value))
   		{
    		objeto.focus();
    		objeto.select();
			return false;
		}
	}
	return true;
}
function formatoFecha(objeto)
{
	fec = eval(objeto);
	if(fec.value != "")
	{
		var dia,mes,anyo;
		var i=fec.value.indexOf("/");
		dia=fec.value.substring(0,i);
		var cadena=fec.value.substring(i+1,fec.value.length+1);
		var j=cadena.indexOf("/");
		mes=cadena.substring(0,j);
		anyo=cadena.substring(j+1,cadena.length+1)
		//Obligo a introducir una cadena de números de formato "__/__/____" ó "__/__/__"
		var bError=false;
		/* var esFecha = /^(.+\/.+\/.+)*$/; */
		
        var esFecha = /^(..\/..\/....)*$/;
		var esFecha1 = /^(.\/..\/....)*$/;
		var esFecha2 = /^(..\/.\/....)*$/;
		var esFecha3 = /^(.\/.\/....)*$/;
		var esFecha4 = /^(..\/..\/..)*$/;
		var esFecha5 = /^(.\/..\/..)*$/;
		var esFecha6 = /^(..\/.\/..)*$/;
		var esFecha7 = /^(.\/.\/..)*$/;

		if (fec.value != "")
		{
   		 	if (!esFecha.test(fec.value )&& !esFecha1.test(fec.value) && !esFecha2.test(fec.value) && !esFecha3.test(fec.value )&& !esFecha4.test(fec.value)&& !esFecha5.test(fec.value )&& !esFecha6.test(fec.value )&& !esFecha7.test(fec.value) )
   		 	{
				bError=true;
			}
   		}
    	//---------------    	
    		if (bError)
    		{
    			objeto.focus();
    			objeto.select();
    			return false;
    		}
    		else
    		{
    			//Una vez comprobado el formato, si es correcto, compruebo que la fecha sean números:
			var m;
			var n;
			var strg;
    			m=fec.value.indexOf("/");
				if (isNaN(fec.value.substring(0,m)))
				{
					objeto.focus();
    				objeto.select();
					return false;
				}
				strg=fec.value.substring(m+1,fec.value.length+1);
				n=cadena.indexOf("/");
				if (isNaN(cadena.substring(0,n)))
				{
					objeto.focus();
    				objeto.select();
					return false;
				}
				if (isNaN(strg.substring(n+1,strg.length+1)))
				{
					objeto.focus();
    				objeto.select();
					return false;
				}
    		}
		//------------------------
		if (dia>31||dia<1||mes>12||mes<1)
		{
			objeto.focus();
    		objeto.select();
			return false;
		}
		if (dia==31)
		{
			if (mes==4||mes==6||mes==9||mes==11)
			{
				objeto.focus();
    			objeto.select();
				return false;
			}
		}
		if (dia>28&&mes=="2")
		{
			if (dia==30||dia==31)
			{
				objeto.focus();
    			objeto.select();
				return false;
			}
			else
			{
				var bisiesto;
				bisiesto=""+anyo/4;
				//Nota: he tenido que añadir una cadena vacía porque no se otra manera de convertir la variable numérica resultante en string.
				//Usando el método [variable].substring(a,b) ...
				//... a indica el orden de la cadena a partir del cual se comienza contar (¡ojo!, el primer elemento es el 0) ...
				//... y b indica el número de caracteres que se van a tomar contando desde el principio de la cadena.
				for (i=0;i<=bisiesto.length-1;i++)//También puede preguntarse:if(bisiesto.charAt(i)==".")...la función charat(i) devuelve el carácter que ocupa el lugar i de la cadena.
				{
					if(bisiesto.substring(i,i+1)==".")
					{
						objeto.focus();
    					objeto.select();
						return false;
					}
				}
			}
			if(anyo.length==4&&anyo.charAt(2)==0&&anyo.charAt(3)==0&&anyo.substring(1,anyo.length)!=000)
			{
				objeto.focus();
    			objeto.select();
				return false;
			}
		}
	}
	return true;
}
//Cuando día, mes y año viene por separado (distinto de "dd/mm/aaaa"),
//comprueba que fechas no contengan 30 de febrero, 31 de abril, etc
function ddmmaa(bdia, bmes, banyo)
{
	var dia;
	var mes;
	var anyo;
	
	if(bdia.charAt(0) == "0")
	{
		dia = parseInt(bdia.charAt(1));
	}
	else
	{
		dia = parseInt(bdia);
	}
	if(bmes.charAt(0) == "0")
	{
		mes = parseInt(bmes.charAt(1));
	}
	else
	{
		mes = parseInt(bmes);
	}
	anyo = parseInt(banyo);
		
	if (dia == 31)
	{
		if (mes == 4 || mes == 6 || mes == 9 || mes == 11)
		{
			return false;
		}
	}
	if (dia > 28 && mes == "2")
	{
		if (dia == 30 || dia == 31)
		{
			return false;
		}
		else
		{
			var bisiesto;
			bisiesto = "" + anyo / 4;
			//Nota: he tenido que añadir una cadena vacía porque no se otra manera de convertir la variable numérica resultante en string.
			//Usando el método [variable].substring(a,b) ...
			//... a indica el orden de la cadena a partir del cual se comienza contar (¡ojo!, el primer elemento es el 0) ...
			//... y b indica el número de caracteres que se van a tomar contando desde el principio de la cadena.
			for (i = 0; i <= bisiesto.length - 1; i++)//También puede preguntarse:if(bisiesto.charAt(i)==".")
			{
				if(bisiesto.substring(i, i+1) == ".")
				{
					return false;
				}
			}
		}
	}
	return true;
}
//PopUps
//onclick="NewWindow(this.href,'name','400','300','yes');return false"
var win= null;
function NewWindow(mypage, myname, w, h, scroll, bresizable){
  var winl = (screen.width-w)/2;
  var wint = (screen.height-h)/2;
  var settings  ='height='+h+',';
      settings +='width='+w+',';
      settings +='top='+wint+',';
      settings +='left='+winl+',';
      settings +='scrollbars=' + scroll + ',';
      settings +='resizable=' + bresizable;
  win = window.open(mypage, myname, settings);
  if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
}
//-->
