/******************************************************************************
WEBANKO: Web Application NKO
-------------------------------------------------------------------------------
form_validator.js: Código JS para validación de formularios
+ 2007-05-22: Creación
-------------------------------------------------------------------------------
by TXiNo (J. Fernando Moyano) - txino@evolus.net
******************************************************************************/
/*
Formato de los elementos del array de validación: (campo,tipo,params)
Se definen los siguientes tipos:
+ len, a, b (si se especifica (a,b), son la longitud min y max)
+ num, a, b (si se especifica (a,b), es el rango)
+ email
+ passwd, passwd _retype
*/
var wbnk_form_validator_end=0;
function wbnk_form_validator(f,val) {
var i=0,v;
wbnk_form_validator_end=0;
while(v=val[i++]) {
e=f.elements[v[0]];
t=v[1];
if (e.value=="") wbnk_form_validator_error(e,"No puede estar vacío");
else if (t=='len') wbnk_form_validate_len(e,v[2],v[3]);
else if (t=='num') wbnk_form_validate_num(e,v[2],v[3]);
else if (t=='email') wbnk_form_validate_email(e);
else if (t=='passwd') wbnk_form_validate_passwd(e,f.elements[v[2]]);
else alert("Tipo de validación no soportado: "+t);
if (wbnk_form_validator_end) return 0;
}
return 1;
}
function wbnk_form_validator_error(e,msg) {
var field=e.title;
if (!field) {
field=e.name;
var parts=field.split("$");
if (parts[1]) field=parts[1];
}
alert("Error en el campo"+" '"+field+"': "+msg);
wbnk_form_validator_end=1;
}
function wbnk_form_validate_len(e,a,b) {
l=e.value.length;
if (a>0 && l<a) wbnk_form_validator_error(e,"El nº mínimo de caracteres es "+a);
else if (b>0 && l>b) wbnk_form_validator_error(e,"El nº máximo de caracteres es "+b);
}
function wbnk_form_validate_num(e,a,b) {
var s=e.value.search("[^0-9]");
if (s>=0) wbnk_form_validator_error(e,"Solo puede contener dígitos");
else if (e<a) wbnk_form_validator_error(e,"Debe ser mayor que "+a);
else if (e>b) wbnk_form_validator_error(e,"Debe ser menor que "+b);
}
function wbnk_form_validate_email(e) {
var s=e.value.match("^(.+)@(.+)$");
if (!s) wbnk_form_validator_error(e,"Debe ser una dirección de email válida");
}
function wbnk_form_validate_passwd(e,ee) {
if (!e || !ee) return;
if (e.value!=ee.value) wbnk_form_validator_error(e,"Las contraseñas no coinciden");
}
//*****************************************************************************

