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;
}

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];}}
}

function MM_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
}

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];}
}



function iniValida(elemInici) {
	Resultado = true;
	for (i = elemInici; i < form.elements.length - 2; i++) {
			name = document.form.elements[i].name;
		tipo = new String(name)
		val = tipo.split("_")
		if(val[1]) {
			if (!val[2]) {
				Valida(document.form.elements[i].name, val[0], val[1], false)	
			}
			else {
				Valida(document.form.elements[i].name, val[0], val[1], true)
			}	
		}
	}
	if (Resultado == false) {
		return false;
	}
	if (Resultado == true) {
		return true;
	}
} 

function Valida(elemento,tipo,nombre,oblig)
{
	var er_alfabetico=/(^([a-z]|[A-Z]|á|é|í|ó|ú|ü|à|è|ò| |ñ|ç|Ñ|Ç|')+)$/
	var er_directorio=/(^([a-z]|[A-Z]|á|é|í|ó|ú|ü|à|è|ò| |ñ|ç|Ñ|Ç)+)$/
	var er_email=/^([a-z]|[A-Z]|[0-9]|_|-|.)+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/	
	var er_telefono=/(^([0-9\+-])+)$/
	var er_fecha=/(^([0-9]{1,2}\/[0-9]{1,2}\/[0-9]{2,4}))$/
	var er_entero=/(^([0-9]+))$/
	var er_real=/(^([0-9\.,]+))$/
	var myForm = "form"
	if(Resultado==false) return;
	if(tipo=="entero")
	{
		if(oblig==true)
		{
			if(eval("document." + myForm + "." + elemento + ".value") == "")
			{
				alert("El campo " + nombre + " es obligatorio. Por favor introduzca un numero entero.");
				Resultado = false;
				return;
			}
		}
		else {
			if (!eval("document." + myForm + "." + elemento + ".value")) {
				eval("document." + myForm + "." + elemento + ".value = 0")
			}
		}
		if(er_entero.test(eval("document." + myForm + "." + elemento + ".value"))==false)
		{
			alert("Formato del campo " + nombre + " erroneo. Por favor introduzca un número entero");
			Resultado = false;
			return;
		}
	}

	if(tipo=="real")
	{
		if(oblig==true)
		{
			if(eval("document." + myForm + "." + elemento + ".value")=="")
			{
				alert("El campo " + nombre + " es obligatorio. Por favor introduzca un número real.");
				Resultado = false;
				return;
			}
		}
		if(er_real.test(eval("document." + myForm + "." + elemento + ".value"))==false)
		{
			alert("Formato del campo " + nombre + " erroneo. Por favor introduzca una número real");
			Resultado = false;
			return;
		}
	}

	if(tipo=="telefono")
	{
		if(oblig==true)
		{
			if(eval("document." + myForm + "." + elemento + ".value")=="")
			{
				alert("El campo " + nombre + " es obligatorio. Por favor introduzca un número de teléfono.");
				Resultado = false;
				return;
			}
		}
		if(er_telefono.test(eval("document." + myForm + "." + elemento + ".value"))==false)
		{
			alert("Formato del campo " + nombre + " erroneo. Por favor introduzca una número de teléfono.");
			Resultado = false;
			return;
		}
	}
	
	if(tipo=="email")
	{
		if(oblig==true)
		{
			if(eval("document." + myForm + "." + elemento + ".value")=="")
			{
				alert("El campo " + nombre + " es obligatorio. Por favor introduzca un email.");
				Resultado = false;
				return;
			}
		}
		if(er_email.test(eval("document." + myForm + "." + elemento + ".value"))==false)
		{
			alert("Formato del campo " + nombre + " erroneo. Por favor introduzca un email correcto.");
			Resultado = false;
			return;
		}
	}
	
	if(tipo=="fecha")
	{
		if(oblig==true)
		{
			if(eval("document." + myForm + "." + elemento + ".value")=="")
			{
				alert("El campo " + nombre + " es obligatorio. Por favor introduzca una fecha con el formato dd/mm/aaaa.");
				Resultado = false;
				return;
			}
		}
		if(er_fecha.test(eval("document." + myForm + "." + elemento + ".value"))==false)
		{
			alert("Formato del campo " + nombre + " erroneo. Por favor introduzca una fecha con el formato dd/mm/aaaa.");
			Resultado = false;
			return;
		}
	}
	
	if(tipo=="cadena")
	{
		if(oblig==true)
		{
			if((eval("document." + myForm + "." + elemento + ".value")=="")||((eval("document." + myForm + "." + elemento + ".value.indexOf(' ')")==0)))
			{
				alert("El campo " + nombre + " es obligatorio. Por favor introduzca una cadena alfanumérica.");
				Resultado = false;
				return;
			}
		}
	}

	if(tipo=="directorio")
	{
		if(oblig==true)
		{
			if(eval("document." + myForm + "." + elemento + ".value")=="")
			{
				alert("El campo " + nombre + " es obligatorio. Por favor introduzca una cadena alfanumérica sin carácteres especiales.");
				Resultado = false;
				return;
			}
		}
		if(er_directorio.test(eval("document." + myForm + "." + elemento + ".value"))==false)
		{
			alert("Formato del campo " + nombre + " erroneo. Por favor introduzca una cadena alfanumérica sin carácteres especiales.");
			Resultado = false;
			return;
		}
	}

	if(tipo=="url")
	{
		if(oblig==true)
		{
			if(eval("document." + myForm + "." + elemento + ".value")=="")
			{
				alert("El campo " + nombre + " es obligatorio. Por favor introduzca una fecha con el formato dd/mm/aaaa.");
				Resultado = false;
				return;
			}
		}
		if((eval("document." + myForm + "." + elemento + ".value")!="")&&(eval("document." + myForm + "." + elemento + ".value.indexOf('http://')")!=0))
		{
			alert("El campo " + nombre + " tiene un formato incorrecto. Por favor introduzca una URL valida. ( http:// ... )");
			Resultado = false;
			return;
		}
	}
}
