/*

CASTELLÀ

------------------------



DNI

NUMERICO

MAIL

DATE

MINLENGTH

MINVALUE

MAXVALUE

IAMGEN (solo formato JPG para redimensionar)

*/

/*function checkState()

{

	if(document.readyState=="complete")

	{

		checkForms()

	}

}*/



//document.onreadystatechange = checkState



//window.onload=checkForms

function checkForms()

{

		formularios=document.getElementsByTagName("FORM")

		for(i=0;i<formularios.length;i++)

		{

			if(formularios[i].getAttribute("validar"))

			{

				formularios[i].onsubmit=function(){return validar(this)}

				for(j=0;j<formularios[i].length;j++)

				{

					if(formularios[i].elements[j].type=="text" || formularios[i].elements[j].type=="file")

					{

						formularios[i].elements[j].tmp=formularios[i].elements[j].onblur

						formularios[i].elements[j].onblur=function()

						{

							if(tipo(this))

							{

								if(this.tmp!=null)

								{

									this.tmp()

								}

							}

						}

					}

					

				}

			}

		}

}

function tipo(objeto)

{

	if(objeto.getAttribute("tipo"))

	{

		tipus=objeto.getAttribute("tipo").toUpperCase()

		if(tipus!="")

		{

			switch(tipus)

			{

				case "DNI": return dni(objeto);break;

				case "NUMERIC":return numeric(objeto) ;break;

				case "MAIL": return email(objeto);break;

				case "DATE":return fecha(objeto);break;

				case "IMAGE":if(llibreria_gd==1) { return imagen_gd1(objeto);break; } else { return imagen_gd2(objeto);break; }

			}

		}

	}

	if(objeto.getAttribute("minlength"))

	{

		if(objeto.value.length<objeto.getAttribute("minlength"))

		{

			alert("Longitud mínima de "+objeto.getAttribute("minlength")+ " carácteres.")

			objeto.focus()

			objeto.select()

			return false

		}

	}

	if(objeto.getAttribute("minvalue"))

	{

		if(parseInt(objeto.value)<parseInt(objeto.getAttribute("minvalue")))

		{

			alert("valor mínimo: "+objeto.getAttribute("minvalue"))

			objeto.focus()

			objeto.select()

			return false

		}

	}

	if(objeto.getAttribute("maxvalue"))

	{

		if(parseInt(objeto.value)>parseInt(objeto.getAttribute("maxvalue")))

		{

			alert("valor máximo: "+objeto.getAttribute("maxvalue"))

			objeto.focus()

			objeto.select()

			return false

		}

	}

}

function email(objeto)

{

	var re,s

	var s = objeto.value

	if(s!="")

	{

		//re = new RegExp("[0-9a-zA-Z]{1,*}@[0-9a-zA-Z](1,*).[0-9a-zA-Z]{2,4}","i"); 		

		//re=new RegExp("[0-9a-zA-Z]+@[0-9a-zA-Z]+[\.][a-zA-Z]{2,4}$","i"); 		

		re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;

		r = s.match(re);

		if(r==null)

		{

			alert("Email incorrecto")

			objeto.focus()

			objeto.select()

			return false

		}

		return true

	}

}



function numeric(objeto)

{

	if(!isFinite(objeto.value))

	{

		alert("Número Incorrecto")

		objeto.focus()

		objeto.select()

		return false

	}

	else return true

}



function imagen_gd1(objeto)

{

	objeto.value=objeto.value.toUpperCase()

	valor=objeto.value

	valor_formato=valor.toUpperCase()

	

	if ((valor!="") && (valor_formato.lastIndexOf(".JPG"))==-1)

	{

		alert("Tipo de formato Incorrecto, solo JPG")

		objeto.focus()

		objeto.select()

		objeto.click()

		return false

	}

	else return true

}



function imagen_gd2(objeto)

{

	objeto.value=objeto.value.toUpperCase()

	valor=objeto.value

	valor_formato=valor.toUpperCase()

	

	if ((valor!="") && ((valor_formato.lastIndexOf(".GIF"))==-1 && (valor_formato.lastIndexOf(".JPG"))==-1))

	{

		alert("Tipo de formato Incorrecto, solo JPG o GIF")

		objeto.focus()

		objeto.select()

		objeto.click()

		return false

	}

	else return true

}



function validar(formulario)

{

	for(i=0;i<formulario.length;i++)

	{

		var elinput=formulario.elements[i]

		if(elinput.getAttribute("obligatorio")!=null)

		{

			if(elinput.value=="")

			{

				if(elinput.nombre==null) elinput.nombre=elinput.name

				alert("Falta un campo obligatorio:\n\n"+elinput.nombre)

				try{elinput.focus()}

				catch(e){

					cambia(eval(elinput.pestana_madre));

					elinput.focus()

				}

				return false

			}

		}

	}

	return formulario.submitActivo

}



function fecha(objeto)

{

	var r, re;

	var s = objeto.value

	var separador="/"

	if(s!="")

	{

		re = new RegExp("[0-3]{0,1}[0-9]{1}"+separador+"[0-1]{0,1}[0-9]{1}"+separador+"[0-9]{4}","i"); 

		r = s.match(re);

		if(r==null)

		{

			separador="-"

			re = new RegExp("[0-3]{0,1}[0-9]{1}"+separador+"[0-1]{0,1}[0-9]{1}"+separador+"[0-9]{4}","i"); 

			r = s.match(re);

		}

		if(r==null)

		{

			separador="."

			re = new RegExp("[0-3]{0,1}[0-9]{1}"+separador+"[0-1]{0,1}[0-9]{1}"+separador+"[0-9]{4}","i"); 

			r = s.match(re);

		}

		if(r!=null)

		{

			objeto.value=r

			s=objeto.value

			dia=s.substring(0,s.indexOf(separador))

			mes=s.substring(s.indexOf(separador)+1,s.lastIndexOf(separador))-1

			anyo=s.substring(s.lastIndexOf(separador)+1,s.length)

			try{

				var newfecha=new Date(anyo, mes, dia)

				dia2=newfecha.getDate()

				mes2=newfecha.getMonth()

				anyo2=newfecha.getFullYear()

				if(dia2!=dia || mes2!=mes || anyo2!=anyo || anyo<1990)

				{

					alert("Fecha incorrecta")

					objeto.focus()

					objeto.select()

					return false

				}

			}

			catch(e)

			{

				alert("Fecha incorrecta")

				objeto.focus()

				objeto.select()

				return false

			}

		}

		else

		{

			alert("Fecha incorrecta")

			objeto.focus()

			objeto.select()

			return false

		}

	}

}



function dni(objeto)

{

	objeto.value=objeto.value.toUpperCase()

	valor=objeto.value

	

	if (valor.length==0) return false

	if(valor.length>7 )

	{

		num=valor.substr(0,valor.length-1)

		if(valor.length==8) 

		{

			num=valor

		}

		if(valor.length==9 && isFinite(valor) && valor.substr(0,1)=="0") 

		{

			num=valor

		}

		if (valor.length>9 && valor.substr(0,1)!="0")

		{

			alert ("DNI incorrecto\n\nIntroducir 9 dígitos y la letra")

			objeto.focus()

			objeto.select()

			return false

		}

		letra=valor.substr(valor.length-1, valor.length)



		if (isFinite(num))

		{

			resto = num % 23;

			switch(resto) 

			{

				case 0: l="T"; break;

				case 1: l="R"; break;

				case 2: l="W"; break;

				case 3: l="A"; break;

				case 4: l="G"; break;

				case 5: l="M"; break;

				case 6: l="Y"; break;

				case 7: l="F"; break;

				case 8: l="P"; break;

				case 9: l="D"; break;

				case 10:l="X"; break;

				case 11:l="B"; break;

				case 12:l="N"; break;

				case 13:l="J"; break;

				case 14:l="Z"; break;

				case 15:l="S"; break;

				case 16:l="Q"; break;

				case 17:l="V"; break;

				case 18:l="H"; break;

				case 19:l="L"; break;

				case 20:l="C"; break;

				case 21:l="K"; break;

				case 22:l="E"; break;

				case 23:l="U"; break;

			}

			if(l!=letra)

			{

				objeto.value=num+l

				if(objeto.value.length<10)

				{

					objeto.value="0"+objeto.value

				}

				return true

				//alert ("DNI incorrecte\n\nIntroduïr 9 digits i la lletra")

				//objeto.focus()

				//objeto.select()

				//return false

			}

			else

			{

				if(objeto.value.length<10)

				{

					objeto.value="0"+objeto.value

				}

				return true

			}

		}

		else 

		{

			alert ("DNI incorrecto\n\nIntroducir 9 dígitos y la letra")

			objeto.focus()

			objeto.select()

			return false

		}

	}

	else 

	{

		alert ("DNI incorrecto\n\nIntroducir 9 dígitos y la letra")

		objeto.focus()

		objeto.select()

		return false

	}

}



function keys()

{

//	alert(event.keyCode )

//	alert(String.fromCharCode(event.keyCode))

	if(!isFinite(String.fromCharCode(event.keyCode)))

	{

		event.returnValue=false;

	}

	else return true



	alert(event.keyCode )

	

}

