/******************************************************************************
 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");
}
//*****************************************************************************