function Validator(B){this.formobj=document.getElementById(B);if(!this.formobj){this.formobj=document.forms[B];if(!this.formobj){alert("BUG: couldnot get Form object "+B);return }}if(this.formobj.onsubmit){this.formobj.old_onsubmit=this.formobj.onsubmit;this.formobj.onsubmit=null}else{this.formobj.old_onsubmit=null}this.formobj.onsubmit=form_submit_handler;this.onSubmit=on_submit;this.addValidation=add_validation;this.setAddnlValidationFunction=set_addnl_vfunction;this.clearAllValidations=clear_all_validations;this.onValidat=on_validat}function set_addnl_vfunction(B){this.formobj.addnlvalidation=B}function clear_all_validations(){for(var B=0;B<this.formobj.elements.length;B++){this.formobj.elements[B].validationset=null}}function on_submit(D){for(var C=0;C<D.elements.length;C++){if(D.elements[C].validationset&&!D.elements[C].validationset.validate()){return false}}D.submit();return true}function on_validat(D){for(var C=0;C<D.elements.length;C++){if(D.elements[C].validationset&&!D.elements[C].validationset.validate()){return false}}return true}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(F,H,G){if(!this.formobj){alert("BUG: the form object is not set properly");return }var E=this.formobj[F];if(!E){alert("BUG: Couldnot get the input object named: "+F);return }if(!E.validationset){E.validationset=new ValidationSet(E)}E.validationset.add(H,G)}function ValidationDesc(E,F,D){this.desc=F;this.error=D;this.itemobj=E;this.validate=vdesc_validate}function vdesc_validate(){if(!V2validateData(this.desc,this.itemobj,this.error)){this.itemobj.focus();return false}return true}function ValidationSet(B){this.vSet=new Array();this.add=add_validationdesc;this.validate=vset_validate;this.itemobj=B}function add_validationdesc(D,C){this.vSet[this.vSet.length]=new ValidationDesc(this.itemobj,D,C)}function vset_validate(){for(var B=0;B<this.vSet.length;B++){if(!this.vSet[B].validate()){return false}}return true}function validateEmailv2(J){if(J.length<=0){return true}var G=J.match("^(.+)@(.+)$");if(G==null){return false}if(G[1]!=null){var H=/^\"?[\w-_\.0-9]*\"?$/;if(G[1].match(H)==null){return false}}if(G[2]!=null){var I=/^[\w-\.]*\.[A-Za-z]{2,4}$/;if(G[2].match(I)==null){var F=/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;if(G[2].match(F)==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"conf_mail":case"confirm_mail":SecobjValue=document.getElementById(objValue.id+"Confirm");if(objValue.value!=SecobjValue.value){if(!strError||strError.length==0){strError="Password must be right"}alert(strError);return false}break;case"conf_pass":case"confirm_pass":SecobjValue=document.getElementById(objValue.id+"Reenter");if(objValue.value!=SecobjValue.value){if(!strError||strError.length==0){strError="Password must be right"}alert(strError);return false}break;case"chebox":case"checkbox":if(!objValue.checked){if(!strError||strError.length==0){strError=objValue.name+" : You must be agree"}alert(strError);return false}break;case"req":case"required":while(objValue.value!=objValue.value.replace("&nbsp;","")){objValue.value=objValue.value.replace("&nbsp;","")}if(eval(objValue.value.length)==0){if(!strError||strError.length==0){strError=objValue.name+" : Required Field"}alert(strError);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 "}alert(strError+"\n[Current length = "+objValue.value.length+" ]");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  "}alert(strError+"\n[Current length = "+objValue.value.length+" ]");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 "}alert(strError+"\n [Error character position "+eval(charpos+1)+"]");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 "}alert(strError+"\n [Error character position "+eval(charpos+1)+"]");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 "}alert(strError+"\n [Error character position "+eval(charpos+1)+"]");return false}break;case"alnumhyphen":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 _"}alert(strError+"\n [Error character position "+eval(charpos+1)+"]");return false}break;case"email":if(!validateEmailv2(objValue.value)){if(!strError||strError.length==0){strError=objValue.name+": Enter a valid Email address "}alert(strError);return false}break;case"lt":case"lessthan":if(isNaN(objValue.value)){alert(objValue.name+": Should be a number ");return false}if(eval(objValue.value)>=eval(cmdvalue)){if(!strError||strError.length==0){strError=objValue.name+" : value should be less than "+cmdvalue}alert(strError);return false}break;case"gt":case"greaterthan":if(isNaN(objValue.value)){alert(objValue.name+": Should be a number ");return false}if(eval(objValue.value)<=eval(cmdvalue)){if(!strError||strError.length==0){strError=objValue.name+" : value should be greater than "+cmdvalue}alert(strError);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 "}alert(strError);return false}}break;case"dontselect":if(objValue.selectedIndex==null){alert("BUG: dontselect command for non-select Item");return false}if(objValue.selectedIndex==eval(cmdvalue)){if(!strError||strError.length==0){strError=objValue.name+": Please Select one option "}alert(strError);return false}break}return true};