var chkobj		= new Array();
var errors				= "";
var returnVal			= false;
var errores			= new Array();

	errores.header		= "Se ha producido un error:"
	errores.start		= "->";
	errores.field		= " El campo ";
	errores.require		= " es obligatorio";
	errores.min		= " y debe contener al menos ";
	errores.max		= " y no debe contener m\341s de ";
	errores.minmax		= " y no m\341s de ";
	errores.chars		= " caracteres";
	errores.num		= " y debe contener un n\372mero";
	errores.email		= " debe contener una direcci\363n de e-mail v\341lida";

function define(n,type,HTMLname,min,max){
var x=document.forms[forma].elements[n];
	eval("V_"+n+" = new formResult(x,type,HTMLname,min,max);");
	chkobj[eval(chkobj.length)] = eval("V_"+n);
}

function formResult(form,type,HTMLname,min,max){
	this.form = form;
	this.type = type;
	this.HTMLname = HTMLname;
	this.min  = min;
	this.max  = max;
}





function validate(){
	if(chkobj.length>0){
		errorObject = "";
	
		for(i=0;i<chkobj.length;i++){
			valobj 			= new Object();
			valobj.form 	= chkobj[i].form;
			valobj.HTMLname = chkobj[i].HTMLname;
			valobj.val 		= chkobj[i].form.value;
			valobj.len 		= chkobj[i].form.value.length;
			valobj.min 		= chkobj[i].min;
			valobj.max 		= chkobj[i].max;
			valobj.type 	= chkobj[i].type;
			
			if(valobj.type == "num" || valobj.type == "string"){
				if((valobj.type == "num" && valobj.len <= 0) || (valobj.type == "num" && isNaN(valobj.val))){errors+=errores.start+errores.field+valobj.HTMLname+errores.require+errores.num+"\n";
				} else if (valobj.min && valobj.max && (valobj.len < valobj.min || valobj.len > valobj.max)){errors+=errores.start+errores.field+valobj.HTMLname+errores.require+errores.min+valobj.min+errores.minmax+valobj.max+errores.chars+"\n";
				} else if (valobj.min && !valobj.max && (valobj.len < valobj.min)){errors+=errores.start+errores.field+valobj.HTMLname+errores.require+errores.min+valobj.min+errores.chars+"\n";
				} else if (valobj.max && !valobj.min &&(valobj.len > valobj.max)){errors+=errores.start+errores.field+valobj.HTMLname+errores.require+errores.max+valobj.max+errores.chars+"\n";
				} else if (!valobj.min && !valobj.max && valobj.len <= 0){errors+=errores.start+errores.field+valobj.HTMLname+errores.require+"\n";
				}
			} else if(valobj.type == "email"){
				if((valobj.val.indexOf("@") == -1) || (valobj.val.charAt(0) == ".") || (valobj.val.charAt(0) == "@") ||(valobj.len < 6) || (valobj.val.indexOf(".") == -1) || (valobj.val.charAt(valobj.val.indexOf("@")+1) == ".") || (valobj.val.charAt(valobj.val.indexOf("@")-1) == ".")){errors+=errores.start+errores.field+valobj.HTMLname+errores.email+"\n";}
			}
		}
	}
	if(errors){
		alert(errores.header.concat("\n"+errors));
		errors = "";
		returnVal = false;
	} else {
		returnVal = true;
	}
}