//PROTOTOTIPOS
/*
/function esNumero(cadena);
function esFecha(cadena);
function esDigito(caracter);
function esCaracter(caracter);
function esCadena(cadena);
function esAlfaNumerico(cadena);
function esNif(cadena);
function esCP(cadena);
function anyo(cadena);
function esFloat(cadena);
function cadena_para_bd(cadena);
function esEmail(cadena);
*/
//si es un numero float
function esFloat(cadena)
	{
		vu=true;
		punto=0;
		for(i=0;i<cadena.length && vu==true;i++)
		{
			if(!esDigito(cadena.charAt(i)) && cadena.charAt(i)!='.')
				vu=false;
			//si aparece una vez paso despues de que exista al menos un numero
			if(cadena.charAt(i)=='.' && punto==0 && i!=0)
				punto=1;
			else
				if(cadena.charAt(i)=='.')
					vu=false;
		}
		return(vu);
	}
//si es un entero
function esNumero(cadena)
	{
		vuelta=true;
		for(i=0;i<cadena.length && vuelta==true;i++)
			if(!esDigito(cadena.charAt(i)))
				vuelta=false;
		return(vuelta);
	}

//valida si una fecha es correcta en formato dd/mm/aaaa
function esFecha(cadena)
	{
	vuelta =true;
	if (cadena.length!=10 || cadena==null )
		vuelta=false;
	else
		{
		vector=cadena.split("/");
		//si no tiene 3 vectores o uno de ellos no es digito y sus longitudes son correctas
		if(vector.length!=3 ||  vector[0].length!=2 || parseInt(vector[0])<1 || vector[1].length!=2 || vector[2].length!=4 || !esDigito(vector[0]) || !esDigito(vector[1]) || !esDigito(vector[2]))
			vuelta=false;
		else
			{
			//saco el mes por que si no peta
			mes=parseInt(vector[1])-1;
			vector[1]=mes.toString();
			//me crea la fecha y ahora compara con lo que tengo
			fechanueva=new Date(vector[2],vector[1],vector[0]);
			//si el mes no se corresponde o el mes es el 12 y no nos devuelve un 0
			if(fechanueva.getMonth()!=vector[1] || fechanueva.getDate() !=vector[0] || fechanueva.getFullYear()!=vector[2])
				vuelta=false;
			}
		}
	return(vuelta);
	}
//si es un digito
function esDigito(caracter)
	{
	vuelta=true;
	if(caracter<'0' || caracter>'9')
		vuelta=false;
	return vuelta;
	}
//si es caracter
function esCaracter(caracter)
	{
	vuelta=true;
	if(!((caracter>="A" && caracter<="Z") || caracter=="ñ" || caracter=="Ñ" || caracter==" " || (caracter>="a" && caracter<="z")))
		vuelta=false;
	return vuelta;
	}
//si es un array de caracteres
function esCadena(cadena)
	{
		vuelta=true;
		if(cadena.length==0)
			vuelta=false;
		for(i=0;i<cadena.length && vuelta==true;i++)
		{
			if(!esCaracter(cadena.charAt(i)))
				vuelta=false;
		}
		
		return(vuelta);
	}
//valida si es alfanumerico
function esAlfaNumerico(cadena)
	{
		vuelta=true;
		if(cadena.length==0)
			vuelta=false;
		for(i=0;i<cadena.length && vuelta==true;i++)
		{
			if(!(esCaracter(cadena.charAt(i)) || esDigito(cadena.charAt(i))))
				vuelta=false;
		}
		return(vuelta);
	}
//COMPRUEBA QUE EL NIF ES CORRECTO solo en formato no si la 
//letra es correcta con respecto a ese numero
function esNif(cadena)
	{
		vuelta=true;
		if(cadena.length!=9)
			vuelta=false;
		else
			{
			if(!esNumero(cadena.substring(0,8)) || !esCadena(cadena.substring(8,9)))
				vuelta=false;
			}
		return(vuelta);
	}
//valida si el codigo postal es correcto
function esCP(cadena)
	{
		vuelta=true;
		if(cadena.length!=5)
			vuelta=false;
		else
			{
			if(!esNumero(cadena))
				vuelta=false;
			}
		return(vuelta);
	}
//valida el año de 4 cifras solo su formato
function anyo(cadena){
		vuelta=true;
		if(cadena.length!=4)
			vuelta=false;
		else{
			if(!esNumero(cadena))
				vuelta=false;
			}
		return(vuelta);
	}
function esEmail(cadena) {
	vuelta=true;
	if (cadena.indexOf("@") == -1)
		vuelta=false;
	return vuelta;
	}

//vacio nos dice si se admite vacio o no
//mensaje es el mensaje de texto que se muetra si falla
//funcionamiento si existe pilla el foco
//el objeto que recibe el foco solo el id
//devuelve true valido ,false erroneo
function Validar(funcion,objeto,vacio,mensaje,funcionamiento){
	vuelta=true;
	ob=document.getElementById(objeto);
	//SI ESTA VACIO Y ESTA PERMITODO
	if(esVacio(ob.value) && vacio=="0")
		vuelta=true;
	else{
		//si es necesario y no esta o la cadena no es correcta 
		//para la base de datos
		if((vacio!="0" && esVacio(ob.value))){
		 	vuelta=false;
			}
		else
			vuelta=funcion(ob.value);
		}
	if(!vuelta){ 
		//muestro mensaje y lo pongo para cambiarlo
		if(mensaje!=null)
			this.mensaje+=mensaje+"\n";
		if(funcionamiento!=null){
			ob.focus();
			ob.select();
			}
		}
		if(this.correcto==true)
			this.correcto=vuelta;
	}
//si esta vacio
function esVacio(cadena){  
	return ((cadena == null) || (cadena.length == 0))
	}
//si lo que me pasa tiene  ' o " para que no pete la bd
function cadena_para_bd(cadena){
		vuelta=true;
		for(i=0;i<cadena.length && vuelta==true;i++){
			if(cadena.charAt(i)=="'" || cadena.charAt(i)=="\"")
				vuelta=false;
		}
		return(vuelta);
	}
//
function esLleno(cadena){  
	return(!esVacio(cadena))
	}
function ValidarFormulario(){
	this.validar=Validar;
	this.mensaje="EL FORMULARIO CONTIENE LOS SIGUIENTES ERRORES:\n\n";
	this.correcto=true;
}
