function Validator(frmname){this.formobj=document.forms[frmname];if(!this.formobj){alert("BUG: couldnot get Form object "+frmname);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.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 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){alert("BUG: the form object is not set properly");return}var itemobj=this.formobj[itemname];if(!itemobj){alert("BUG: Couldnot get the input object named: "+itemname);return}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)){this.itemobj.focus();return false}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 inArray(arr,needle){for(var i=0;i<arr.length;i++){if(arr[i]==needle){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"choose":{var c=false;for(var i=0;i<objValue.length;i++){if(objValue[i].checked){c=true}}if(!c){if(!strError||strError.length==0){strError=objValue.name+" : "+" unchecked "}alert(strError);return false}break}case"phone":{s=objValue.value;if(eval(objValue.value.length)==0)return true;filteredValues="1234567890";var bad=new Array('1111111111','2222222222','3333333333','4444444444','5555555555','6666666666','7777777777','8888888888','9999999999','0000000000','1234567890','0123456789','9876543210');var i;var returnString="";for(i=0;i<s.length;i++){var c=s.charAt(i);if(filteredValues.indexOf(c)!=-1)returnString+=c}objValue.value=returnString;if(eval(objValue.value.length)!=10){alert(strError);return false}else if(inArray(bad,objValue.value)){alert(strError);return false}break}case"req":case"required":{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);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);return false}break}case"checked":{if(!objValue.checked){if(!strError||strError.length==0){strError=objValue.name+" : "+" unchecked "}alert(strError);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);return false}break}case"username":{var charpos=objValue.value.search("[^A-Za-z0-9]");if(objValue.value.length<6||(!validateEmailv2(objValue.value)&&(objValue.value.length>0&&charpos>=0))){if(!strError||strError.length==0){strError="Username must be either a valid email address OR be consisting of only letters and numbers, and must be at least 6 characters long"}alert(strError);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);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);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);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"lteq":{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"gteq":{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}var nReload=5;function NewVerifyImage(){if(nReload<=2)if(nReload<=0){alert("Sorry, too many reloads.");return}else alert("Only "+nReload+" more reloads are allowed");nReload--;var e_img;e_img=document.getElementById("capatcha");if(e_img)e_img.setAttribute("src",e_img.src+'?count='+nReload)}
