function Validator(frmname){this.formobj=document.forms[frmname];if(!this.formobj){return false;} this.check=check_handler;this.addValidation=add_validation;this.setAddnlValidationFunction=set_addnl_vfunction;this.clearAllValidations=clear_all_validations;} function set_addnl_vfunction(functionname){this.formobj.addnlvalidation=functionname;} function clear_all_validations(){for(var itr=0;itr < this.formobj.elements.length;itr++){this.formobj.elements[itr].validationset=null;}} function check_handler(alert_empty){no_err=true;for(var itr=0;itr < this.formobj.elements.length;itr++){if(this.formobj.elements[itr].validationset && !this.formobj.elements[itr].validationset.validate()){no_err=false;}} return no_err;} function form_submit_handler(){for(var itr=0;itr < this.elements.length;itr++){if(this.elements[itr].validationset && !this.elements[itr].validationset.validate()){return false;}} if(this.addnlvalidation){str=" var ret="+this.addnlvalidation+"()";eval(str);if(!ret) return ret;} return true;} function add_validation(itemname,descriptor,errstr){if(!this.formobj){return false;} var itemobj=this.formobj[itemname];if(!itemobj){return false;} if(!itemobj.validationset){itemobj.validationset=new ValidationSet(itemobj);} itemobj.validationset.add(descriptor,errstr);} function ValidationDesc(inputitem,desc,error){this.desc=desc;this.error=error;this.itemobj=inputitem;this.validate=vdesc_validate;} function vdesc_validate(){if(!V2validateData(this.desc,this.itemobj,this.error)){show_err(this.itemobj.name,this.error);return false;}else{} hide_err(this.itemobj.name);return true;} function ValidationSet(inputitem){this.vSet=new Array();this.add=add_validationdesc;this.validate=vset_validate;this.itemobj=inputitem;} function add_validationdesc(desc,error){this.vSet[this.vSet.length]=new ValidationDesc(this.itemobj,desc,error);} function vset_validate(){for(var itr=0;itr<this.vSet.length;itr++){if(!this.vSet[itr].validate()){return false;}} return true;} function validateEmailv2(email){if(email.length <=0){return true;} var splitted=email.match("^(.+)@(.+)$");if(splitted==null) return false;if(splitted[1] !=null ){var regexp_user=/^\"?[\w-_\.]*\"?$/;if(splitted[1].match(regexp_user)==null) return false;} if(splitted[2] !=null){var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;if(splitted[2].match(regexp_domain)==null){var regexp_ip=/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;if(splitted[2].match(regexp_ip)==null) return false;} return true;} return false;} function V2validateData(strValidateStr,objValue,strError){var epos=strValidateStr.search("=");var command="";var cmdvalue="";if(epos >=0){command=strValidateStr.substring(0,epos);cmdvalue=strValidateStr.substr(epos+1);} else{command=strValidateStr;} switch(command){case "req": case "required":{if(eval(objValue.value.length)==0){if(!strError || strError.length==0){strError=objValue.name+" : Required Field";} return false;} break;} case "maxlength": case "maxlen":{if(eval(objValue.value.length) > eval(cmdvalue)){if(!strError || strError.length==0){strError=objValue.name+" : "+cmdvalue+" characters maximum ";} return false;} break;} case "minlength": case "minlen":{if(eval(objValue.value.length) < eval(cmdvalue)){if(!strError || strError.length==0){strError=objValue.name+" : "+cmdvalue+" characters minimum ";} return false;} break;} case "alnum": case "alphanumeric":{var charpos=objValue.value.search("[^A-Za-z0-9]");if(objValue.value.length > 0 && charpos >=0){if(!strError || strError.length==0){strError=objValue.name+": Only alpha-numeric characters allowed ";} return false;} break;} case "num": case "numeric":{var charpos=objValue.value.search("[^0-9]");if(objValue.value.length > 0 && charpos >=0){if(!strError || strError.length==0){strError=objValue.name+": Only digits allowed ";} return false;} break;} case "alphabetic": case "alpha":{var charpos=objValue.value.search("[^A-Za-z]");if(objValue.value.length > 0 && charpos >=0){if(!strError || strError.length==0){strError=objValue.name+": Only alphabetic characters allowed ";} return false;} break;} case "enum":{var charpos=objValue.value.search("[^A-Za-z0-9\-_\, ]");if(objValue.value.length > 0 && charpos >=0){if(!strError || strError.length==0){strError=objValue.name+": characters allowed are A-Z,a-z,0-9,- comma and _";} return false;} break;} case "nickname":{var charpos=objValue.value.search("[^A-Za-z0-9\-_]");if(objValue.value.length > 0 && charpos >=0){if(!strError || strError.length==0){strError=objValue.name+": characters allowed are A-Z,a-z,0-9,- and _";} return false;} break;} case "name":{var charpos=objValue.value.search("[^A-Za-z0-9\-'. ]");if(objValue.value.length > 0 && charpos >=0){if(!strError || strError.length==0){strError=objValue.name+": characters allowed are A-Z,a-z,0-9,-, ' and space";} return false;} break;} case "email":{if(!validateEmailv2(objValue.value)){if(!strError || strError.length==0){strError=objValue.name+": Enter a valid Email address ";} return false;} break;} case "lt": case "lessthan":{if(isNaN(objValue.value)){return false;} if(eval(objValue.value) >=eval(cmdvalue)){if(!strError || strError.length==0){strError=objValue.name+" : value should be less than "+cmdvalue;} return false;} break;} case "gt": case "greaterthan":{if(isNaN(objValue.value)){return false;} if(eval(objValue.value) <=eval(cmdvalue)){if(!strError || strError.length==0){strError=objValue.name+" : value should be greater than "+cmdvalue;} return false;} break;} case "regexp":{if(objValue.value.length > 0){if(!objValue.value.match(cmdvalue)){if(!strError || strError.length==0){strError=objValue.name+": Invalid characters found ";} return false;}} break;} case "dontselect":{if(objValue.selectedIndex==null){return false;} if(objValue.selectedIndex==eval(cmdvalue)){if(!strError || strError.length==0){strError=objValue.name+": Please Select one option ";} return false;} break;}} return true;}
