function form_validator(formobj) { this.form = formobj; this.elementos = new Array; this.alert = true; this.add = function (nombre,validator,error_str) { if ((nombre) && (validator)) { this.elementos[nombre] = new Array; this.elementos[nombre]['error_str'] = (error_str)?error_str:''; this.elementos[nombre]['validator'] = validator; } } this.validate = function () { var error = false; if ((this.form) && (this.elementos)) { for (var i in this.elementos) { var value = getFormControlValue(this.form[i]); var tipo_chequeo = this.elementos[i]['validator']; var chequeo_arr = tipo_chequeo.split("-"); tipo_chequeo = chequeo_arr[0]; switch (tipo_chequeo) { case 'req': error = (is_empty(value)) ; break; case 'email': error = (!is_email(value)); break; case 'numeric': error = (!is_numeric(value)); break; case 'date': error = (!is_date(value)); break; case 'max': error = (!maxlength(value,parseInt(chequeo_arr[1]))); break; case 'min': error = (!minlength(value,parseInt(chequeo_arr[1]))); break; } if (error) { error_str = this.elementos[i]['error_str']; error_obj = this.form[i]; break; } } if (error) { if (this.alert) { alert(this.alert_before_str+error_str+this.alert_after_str); } if ((error_obj)&&(error_obj.focus)) error_obj.focus(); } return (!error); } else { alert ('Error en la validación de los datos'); return false; } } this.setAlert = function(value,before_str,after_str) { this.alert=value; this.alert_before_str = (before_str)?before_str:''; this.alert_after_str = (after_str)?after_str:''; } return this; } function getFormControlValue(element) { if (element && element.type) { switch (element.type) { case 'checkbox': return (element.checked)?element.value:false; break; case 'text': case 'textarea': case 'select-one': default: return element.value; break; } } else if (element && element.length) { for (i=0;i