var str,ch,gFrmObj,submitcount=0;function Validator(A){gFrmObj=document.forms[A];this.formobj=gFrmObj;if(!this.formobj){alert("BUG: could not get Form object "+A);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(A){this.formobj.addnlvalidation=A;}function clear_all_validations(){for(var A=0;A<this.formobj.elements.length;A++){this.formobj.elements[A].validationset=null;}}function add_validation(D,B,C){if(!this.formobj){alert("BUG: the form object is not set properly");return ;}var A=this.formobj[D];if(!A){alert("BUG: Could not get the input object named: "+D);return ;}if(!A.validationset){A.validationset=new ValidationSet(A);}A.validationset.add(B,C);}function ValidationDesc(C,B,A){this.desc=B;this.error=A;this.itemobj=C;this.validate=vdesc_validate;}function ValidationSet(A){this.vSet=new Array();this.add=add_validationdesc;this.validate=vset_validate;this.itemobj=A;}function add_validationdesc(B,A){this.vSet[this.vSet.length]=new ValidationDesc(this.itemobj,B,A);}function vset_validate(){for(var A=0;A<this.vSet.length;A++){if(!this.vSet[A].validate()){return false;}}return true;}function form_submit_handler(){var ret,itr;for(itr=0;itr<this.elements.length;itr++){if(this.elements[itr].validationset&&!this.elements[itr].validationset.validate()){return false;}}if(this.addnlvalidation){str=";ret = "+this.addnlvalidation+"()";eval(str);if(!ret){return ret;}}if(submitcount===0){submitcount++;}else{alert("This form has already been submitted. If you have had no response then please Refresh/Reload and try again.");return false;}return true;}function vdesc_validate(){if(!V2validateData(this.desc,this.itemobj,this.error)){if(this.itemobj.type==="text"||this.itemobj.type==="textarea"){if(this.itemobj.createTextRange){var A=this.itemobj.createTextRange();if(A.findText(ch)){A.select();}else{this.itemobj.select();if(this.itemobj.focus===true){this.itemobj.focus();}}}else{this.itemobj.select();if(this.itemobj.focus===true){this.itemobj.focus();}}}else{if(this.itemobj.focus===true){this.itemobj.focus();}}return false;}return true;}function validateEmailv2(B){B=trim(B);if(B){var A,D,C;A=false;D="^[\\w'._%+-]+@(?:[\\w'-]+\\.)+[A-Za-z]{2,4}$";C=new RegExp(D);A=C.test(B);return A;}else{return true;}}function V2validateData(strValidateStr,objValue,strError){var epos,command,cmdvalue,bPopulated,charpos,iLength,bVal;epos=strValidateStr.search("=");command="";cmdvalue="";if(epos>=0){command=strValidateStr.substring(0,epos);cmdvalue=strValidateStr.substr(epos+1);}else{command=strValidateStr;}objValue.value=trim(objValue.value);switch(command){case"req":case"required":bVal=false;if(objValue.type.toLowerCase()==="checkbox"){bVal=objValue.checked;}else{if(objValue.type.toLowerCase()==="radio"){alert("Radio button lists are not currently being handled by the reqired validation.");}else{if(objValue.type.toLowerCase()==="select"){alert("Select lists are not currently being handled by the reqired validation. Use 'dontselect'");}else{if(trim(objValue.value)){bVal=true;}}}}if(bVal===false){if(!strError||strError.length===0){strError=objValue.name+" : Required Field";}alert(strError);return false;}break;case"reqif":case"requiredif":bPopulated=false;bVal=false;if(gFrmObj[cmdvalue].type.toLowerCase()==="checkbox"){if(gFrmObj[cmdvalue].checked===true){bPopulated=true;}}else{if(gFrmObj[cmdvalue].type.toLowerCase()==="radio"){alert("Radio button lists are not currently being handled by the reqiredIf validation");}else{if(gFrmObj[cmdvalue].type.toLowerCase()==="select"){alert("Select lists are not currently being handled by the reqiredIf validation");}else{if(trim(gFrmObj[cmdvalue].value)){bPopulated=true;}}}}if(objValue.type.toLowerCase()==="radio"||objValue.type.toLowerCase()==="checkbox"){bVal=objValue.checked;}else{if(objValue.type.toLowerCase()==="radio"){alert("Radio button lists are not currently being handled by the reqiredIf validation");}else{if(objValue.type.toLowerCase()==="select"){alert("Select lists are not currently being handled by the reqiredIf validation");}else{if(trim(objValue.value)){bVal=true;}}}}if(bPopulated===true&&bVal===false){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+" ]\nValue:"+objValue.value);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"maxlengthwrdcnt":case"maxlenwrdcnt":iLength=objValue.value.split(/\b[\s,\.-:;]*/);iLength=iLength.length;if(iLength>eval(cmdvalue)){if(!strError||strError.length===0){strError=objValue.name+" : "+cmdvalue+" words maximum ";}alert(strError+"\n[Current length = "+iLength+" ]");return false;}break;case"minlengthwrdcnt":case"minlenwrdcnt":iLength=objValue.value.split(/\b[\s,\.-:;]*/);iLength=iLength.length;if(iLength<eval(cmdvalue)){if(!strError||strError.length===0){strError=objValue.name+" : "+cmdvalue+" words minimum ";}alert(strError+"\n[Current length = "+iLength+" ]");return false;}break;case"optionalminlengthwrdcnt":case"optminlenwrdcnt":if(trim(objValue.value)){iLength=objValue.value.split(/\b[\s,\.-:;]*/);iLength=iLength.length;if(iLength<eval(cmdvalue)){if(!strError||strError.length===0){strError=objValue.name+" : "+cmdvalue+" words minimum ";}alert(strError+"\n[Current length = "+iLength+" ]");return false;}}break;case"optionalfieldminlen":case"optminlen":if(trim(objValue.value)){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":charpos=objValue.value.search(/[^\w :;\/\\\{\}\?!&@\$\£\€%\*=\(\)<>_\+,\.\-'#~]/);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":str=objValue.value;charpos=objValue.value.search(/[^0-9]/);if(objValue.value.length>0&&charpos>=0){ch=str.substring(charpos,charpos+1);if(!strError||strError.length===0){strError=objValue.name+": Only digits allowed ";}alert(strError+"\n[Error character position "+eval(charpos+1)+"]");return false;}break;case"currency":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":str=objValue.value;charpos=objValue.value.search(/[^A-Za-z :;\/\\\{\}\?!&@\$\£\€#%\*=\(\)<>_\+,\.\-'[\]]/);if(objValue.value.length>0&&charpos>=0){ch=str.substring(charpos,charpos+1);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":str=objValue.value;charpos=objValue.value.search(/[^\w\-_]/);if(objValue.value.length>0&&charpos>=0){ch=str.substring(charpos,charpos+1);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"alNumBulkTxt":str=objValue.value;charpos=objValue.value.search(/[^\w :;\/\\"'\{\}\?!&@\$\£\€#%\*=\(\)<>_\+,\.\-\s[\]]/);if(objValue.value.length>0&&charpos>=0){ch=str.substring(charpos,charpos+1);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"alphaGenus":str=objValue.value;charpos=objValue.value.search(/[^A-Za-z '-\.]/);if(objValue.value.length>0&&charpos>=0){ch=str.substring(charpos,charpos+1);if(!strError||strError.length===0){strError=objValue.name+": Only alpha characters allowed ";}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(isNumeric(objValue.value)===false){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(isNumeric(objValue.value)===false){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"phone":str=objValue.value;charpos=objValue.value.search(/[^0-9\-\(\)\ \.\+]/);if(objValue.value.length>0&&charpos>=0){ch=str.substring(charpos,charpos+1);if(!strError||strError.length===0){strError=objValue.name+": Invalid Character found";}alert(strError+"\n[Error character position "+eval(charpos+1)+"]");return false;}break;case"regexp":if(objValue.value.length>0&&!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;case"verifypwd":if(objValue.value.length>0&&objValue.value!==gFrmObj[cmdvalue].value){if(!strError||strError.length===0){strError=objValue.name+": passwords must match ";}alert(strError);return false;}break;case"date":str=trim(objValue.value);if(str.length>0){if(isDate(str,cmdvalue)===false){if(!strError||strError.length===0){strError=objValue.name+" : value is not a valid date.";}alert(strError+"\n\nPlease use the format - "+cmdvalue.toLowerCase());return false;}}break;}return true;}function currencyFormat(F,D,B,K){var N,M,I,H,J,G,A,C,E,L;N=0;M="";I=0;H=0;J=0;G=0;A="0123456789";C="";E="";L=(window.Event)?K.which:K.keyCode;if(L===13){return true;}M=String.fromCharCode(L);if(A.indexOf(M)===-1){return false;}J=F.value.length;for(I=0;I<J;I++){if((F.value.charAt(I)!=="0")&&(F.value.charAt(I)!==B)){break;}}C="";for(;I<J;I++){if(A.indexOf(F.value.charAt(I))!==-1){C+=F.value.charAt(I);}}C+=M;J=C.length;if(J===0){F.value="";}if(J===1){F.value="0"+B+"0"+C;}if(J===2){F.value="0"+B+C;}if(J>2){E="";for(H=0,I=J-3;I>=0;I--){if(H===3){E+=D;H=0;}E+=C.charAt(I);H++;}F.value="";G=E.length;for(I=G-1;I>=0;I--){F.value+=E.charAt(I);}F.value+=B+C.substr(J-2,J);}return false;}function checkKey(B,C){var A=(window.Event)?C.which:C.keyCode;if((A===8)||(A===46)){B.value="";}}function left(A,B){if(B<=0){return"";}else{if(B>String(A).length){return A;}else{return String(A).substring(0,B);}}}function right(B,C){var A;if(C<=0){return"";}else{if(C>String(B).length){return B;}else{A=String(B).length;return String(B).substring(A,A-C);}}}function trim(A){A=A.replace(/^\s+|\s+$/g,"");return A;}function len(A){return String(A).length;}function mid(D,E,B){if(E<0||B<0){return"";}var C,A=String(D).length;if(E+B>A){C=A;}else{C=E+B;}return String(D).substring(E,C);}function charInStr(C,A){alert("Search String: "+C+"\nSearch For: "+A);for(var B=0;B<len(C);B++){if(A===mid(C,B,1)){return B;}}return -1;}function inStr(B,A){return B.indexOf(A);}function listFind(F,E,B,A){var C=0,D=0,G=new Array();if(A===1||A===-1||A===true){F=F.toLowerCase();E=E.toLowerCase();}if(trim(B)===""){B=",";}G=F.split(B);for(C=0;C<G.length;C++){if(G[C]===E){D=C+1;break;}}return D;}function getSelectedRbl(D,C){var E=document.forms[D],B="",A;for(A=0;A<E[C].length;A++){if(E[C][A].checked===true){B=E[C][A].value;break;}}return B;}function getDDLSelections(D,E,F){var B,A=document.forms[D][E],C="";if(F!==true&&F!==false){F=true;}for(B=0;B<A.options.length;B++){if(A.options[B].selected===true){if(F===true){C+=(A.options[B].value)+",";}else{C+=(A.options[B].text)+",";}}}if(C){C=C.substring(0,C.length-1);}return C;}function isNumeric(C){var E="0123456789.",B=true,A,D;for(D=0;D<C.length&&B===true;D++){A=C.charAt(D);if(D===0&&A==="-"){continue;}if(E.indexOf(A)===-1){B=false;break;}}return B;}
