fValidate.prototype.blank=function(){this.typeMismatch("text")||this.isBlank()&&this.throwError([this.elem.fName])},fValidate.prototype.number=function(e,t,i){if(!this.typeMismatch("text")){var r=0==e?parseInt(this.elem.value,10):parseFloat(this.elem.value);if(t=this.setArg(t,0),i=this.setArg(i,Number.infinity),t>i)return void this.devError([t,i,this.elem.name]);var a=Boolean(isNaN(r)||r!=this.elem.value);if(!a)switch(!0){case 0!=t&&0!=i:a=!Boolean(r>=t&&i>=r);break;case 0!=t:a=Boolean(t>r);break;case 0!=i:a=Boolean(r>i)}return a?void this.throwError([this.elem.fName]):void(this.elemPass=!0)}},fValidate.prototype.numeric=function(e){if(!this.typeMismatch("text")){e=this.setArg(e,"*");var t=new RegExp("*"==e?"^\\d+$":"^\\d{"+parseInt(e,10)+"}\\d*$");t.test(this.elem.value)||("*"==e?this.throwError([this.elem.fName]):this.throwError([e,this.elem.fName],1))}},fValidate.prototype.length=function(e,t){if(!this.typeMismatch("text")){var i=this.elem.value.length;if(e=Math.abs(e),t=Math.abs(this.setArg(t,Number.infinity)),e>t)return void this.devError([e,t,this.elem.name]);e>parseInt(i,10)&&this.throwError([this.elem.fName,e]),i>t&&this.throwError([this.elem.fName,t,i],1)}},fValidate.prototype.alnum=function(e,t,i,r,a){if(!this.typeMismatch("text")){t=this.setArg(t,"a"),i="true"==i||"1"==i,r="true"==r||"1"==r;var s="",o=["None","Any","No","No","Any"];switch("*"!=e?(e=parseInt(e,10),o[0]=e):e=0,t.toUpperCase()){case"U":s+="A-Z",o[1]="UPPER";break;case"L":s+="a-z",o[1]="lower";break;case"C":s+="A-Z][a-z",o[1]="Intial capital",e--;break;default:s+="a-zA-Z"}1==i&&(s+="0-9",o[2]="Yes"),1==r&&(s+=" ",o[3]="Yes"),"any"==a?o[4]="Any":"none"==a?o[4]="None":(a=a.replace(/pipe/g,"|"),s+=a,o[4]=a);var h="*"!=e?"{"+e+",}":"+",l="any"==a?new RegExp("^(["+s+"]|[^a-zA-Z0-9\\s])"+h+"$"):new RegExp("^["+s+"]"+h+"$");l.test(this.elem.value)||this.throwError([this.elem.value,this.elem.fName,o[0],o[1],o[2],o[3],o[4]])}},fValidate.prototype.equalto=function(e){if(!this.typeMismatch("text")){"undefined"==typeof e&&this.paramError("oName");var t=this.form.elements[e];this.elem.value!=t.value&&this.throwError([this.elem.fName,t.fName])}},fValidate.prototype.ssn=function(){this.typeMismatch("text")||/^\d{3}\-\d{2}\-\d{4}$/.test(this.elem.value)||this.throwError()},fValidate.prototype.select=function(){this.typeMismatch("s1")||0==this.elem.selectedIndex&&this.throwError([this.elem.fName])},fValidate.prototype.selectm=function(e,t){if(!this.typeMismatch("sm")){"undefined"==typeof e&&this.paramError("minS"),(999==t||"*"==t||"undefined"==typeof t||t>this.elem.length)&&(t=this.elem.length);for(var i,r=0,a=0;i=this.elem.options[a];a++)i.selected&&r++;(e>r||r>t)&&this.throwError([e,t,this.elem.fName,r])}},fValidate.prototype.selecti=function(e){if(!this.typeMismatch("s1")){if("undefined"==typeof e)return void this.paramError("indexes");e=e.split(",");for(var t=!0,i=0;ie;e++)t+=a.substring(e,e+1)*r[e];return i=t%11,i=10==i?0:i,i==a.substring(9,10)?!0:void this.throwError()}},fValidate.prototype.ip=function(e,t){if(!this.typeMismatch("text"))if(e=this.setArg(e,0),t=this.setArg(t,99999),/^\d{1,3}(\.\d{1,3}){3}(:\d+)?$/.test(this.elem.value))for(var i,r=0,a=this.elem.value.split(/[.:]/);i=a[r++];)5==r?(e>i||i>t)&&this.throwError([i,e,t],1):(0>i||i>255)&&this.throwError();else this.throwError()},fValidate.prototype.decimal=function(e,t){if(!this.typeMismatch("text")){var i="",r=this.elem;"*"!=e&&(e=parseInt(e,10)),"*"!=t&&(t=parseInt(t,10)),i=0==e?"^\\.[0-9]{"+t+"}$":"*"==e?"^[0-9]*\\.[0-9]{"+t+"}$":"*"==t?"^[0-9]{"+e+"}\\.[0-9]+$":"^[0-9]{"+e+"}\\.[0-9]{"+t+"}$",i=new RegExp(i),i.test(r.value)||this.throwError([r.value,r.fName])}},fValidate.prototype.decimalr=function(e,t,i,r){if(!this.typeMismatch("text")){e="*"==e?0:parseInt(e,10),t="*"==t?"":parseInt(t,10),i="*"==i?0:parseInt(i,10),r="*"==r?"":parseInt(r,10);var a="^[0-9]{"+e+","+t+"}\\.[0-9]{"+i+","+r+"}$",s=new RegExp(a);return s.test(this.elem.value)||this.throwError([this.elem.fName]),!0}},fValidate.prototype.zip=function(e){if(!this.typeMismatch("text")){e=this.setArg(e,"- ");var t=new RegExp("^[0-9]{2}(|["+e.toPattern()+"][0-9]{3})$");t.test(this.elem.value)||this.throwError()}},fValidate.prototype.phone=function(e){if(!this.typeMismatch("text")){e=this.setArg(e,0);var t=[/^((\(?\d\d\d\)?)?[ ]?\d\d\d[ -]?\d\d[ -]?\d\d[ -]{0,1}\d{0,2})?(|(\d\d\d[ -]?\d\d\d[ -]?\d\d\d))$/,/^(\(\d\d\d\) )?\d\d\d[ -]\d\d[ -]\d\d$/];t[e].test(this.elem.value)||(1==e?this.throwError():this.throwError([],1))}},fValidate.prototype.date=function(e,t,i,r){if(!this.typeMismatch("text")){if("undefined"==typeof e)return void this.paramError("formatStr");t=this.setArg(t,"/");for(var a=[this.elem.fName,e.replace(/\//g,t)],s=e.split("/"),o=this.elem.value.split(t),h=new Object,l=0;l0),a=1;break;case 2:d=Boolean(p+864e5>0),a=2;break;case 3:d=Boolean(0>p),a=3;break;case 4:d=Boolean(0>p-864e5),a=4;break;default:d=!0}d||this.throwError([r],a),this.elem.validDate=n.toString()}},fValidate.prototype.money=function(e,t,i){if(!this.typeMismatch("text")){e=" "==e?!1:e.toPattern(),t=" "==t?!1:t.toPattern(),i=" "==i?!1:i.toPattern();var r,a;switch(!0){case Boolean(e&&t&&i):a="^"+e+"(?:(?:[0-9]{1,3}"+t+")(?:[0-9]{3}"+t+")*[0-9]{3}|[0-9]{1,3})("+i+"[0-9]{2})$",r=e+"XX"+t+"XXX"+i+"XX";break;case Boolean(e&&t&&!i):a="^"+e+"(?:(?:[0-9]{1,3}"+t+")(?:[0-9]{3}"+t+")*[0-9]{3}|[0-9]{1,3})$",r=""+e+"XX"+t+"XXX";break;case Boolean(e&&!t&&i):a="^"+e+"[0-9]*(\\.[0-9]{2})$",r=""+e+"XXXXX"+i+"XX";break;case Boolean(!e&&t&&i):a="^(?:(?:[0-9]{1,3}"+t+")(?:[0-9]{3}"+t+")*[0-9]{3}|[0-9]{1,3})("+i+"[0-9]{2})?$",r="XX"+t+"XXX"+i+"XX";break;case Boolean(e&&!t&&!i):a="^"+e+"[0-9]*$",r=""+e+"XXXXX";break;case Boolean(!e&&t&&!i):a="^(?:(?:[0-9]{1,3}"+t+")(?:[0-9]{3}"+t+")*[0-9]{3}|[0-9]{1,3})$",r="XX"+t+"XXX";break;case Boolean(!e&&!t&&i):a="^[0-9]*("+i+"[0-9]{2})$",r="XXXXX"+i+"XX";break;case Boolean(!e&&!t&&!i):a="^.?(?:(?:[0-9]{1,3}.?)(?:[0-9]{3}.?)*[0-9]{3}|[0-9]{1,3})(.[0-9]{2})?$",r="[?]XX[?]XXX[?XX]"}var s=new RegExp(a);s.test(this.elem.value)||this.throwError([this.elem.fName,r.replace(/\\/g,"")])}},fValidate.prototype.checkbox=function(e,t){if(!this.typeMismatch("cb")){if("undefined"==typeof e)return void this.paramError("minC");if(this.elem!=this.form.elements[this.elem.name]||this.elem.checked){this.elem=this.form.elements[this.elem.name];var i=this.elem.length,r=0;999==t||"*"==t||"undefined"==typeof t||t>this.elem.length;for(var a=i;a-- >0;)this.elem[a].checked&&r++;(e>r||r>t)&&this.throwError([e,t,this.elem[0].fName,r])}else this.throwError([this.elem.fName])}},fValidate.prototype.radio=function(){if(!this.typeMismatch("rg"))if(this.elem!=this.form.elements[this.elem.name]||this.elem.checked){this.elem=this.form.elements[this.elem.name];for(var e=0;e0&&a",i18n.gt],["<",i18n.lt],[">=",i18n.gte],["<=",i18n.lte],["==",i18n.eq],["!=",i18n.neq]];operators[++i][0]!=operator;);this.elem.fields=[elem1,elem2],eval(value1+operator+value2)||this.throwError([elem1.fName,operators[i][1],elem2.fName])}},fValidate.prototype.file=function(e,t){if(!this.typeMismatch("file")){if("undefined"==typeof e)return void this.paramError("extensions");t=Boolean(t)?"":"i";var i=new RegExp("^.+\\.("+e.replace(/,/g,"|")+")$",t);i.test(this.elem.value)||this.throwError([e.replace(/,/g,"\n")])}},fValidate.prototype.custom=function(e){if(!this.typeMismatch("text")){e=e?e.replace(/[^gim]/gi):"";var t=new RegExp(this.elem.getAttribute(this.config.pattern),e);t.test(this.elem.value)||this.throwError([this.elem.fName])}},fValidate.prototype.cc=function(){if(!this.typeMismatch("text")){var e=this.form.elements[this.config.ccType];if(!e)return void this.devError("noCCType");var t=e.options[e.selectedIndex].value.toUpperCase(),i={VISA:/^4\d{12}(\d{3})?$/,MC:/^5[1-5]\d{14}$/,DISC:/^6011\d{12}$/,AMEX:/^3[4|7]\d{13}$/,DINERS:/^3[0|6|8]\d{12}$/,ENROUTE:/^2[014|149]\d{11}$/,JCB:/^3[088|096|112|158|337|528]\d{12}$/,SWITCH:/^(49030[2-9]|49033[5-9]|49110[1-2]|4911(7[4-9]|8[1-2])|4936[0-9]{2}|564182|6333[0-4][0-9]|6759[0-9]{2})\d{10}(\d{2,3})?$/,DELTA:/^4(1373[3-7]|462[0-9]{2}|5397[8|9]|54313|5443[2-5]|54742|567(2[5-9]|3[0-9]|4[0-5])|658[3-7][0-9]|659(0[1-9]|[1-4][0-9]|50)|844[09|10]|909[6-7][0-9]|9218[1|2]|98824)\d{10}$/,SOLO:/^(6334[5-9][0-9]|6767[0-9]{2})\d{10}(\d{2,3})?$/};if(0!=e.validated||1!=this.groupError){if("undefined"==typeof i[t]&&0==e.validated&&0==this.groupError)return void this.devError([t]);this.elem.value=this.elem.value.replace(/[^\d]/g,""),i[t].test(this.elem.value)&&this.elem.value.luhn()||this.throwError([this.elem.fName])}}},String.prototype.luhn=function(){for(var i=this.length,checkSum="",digit;digit=this.charAt(--i);)checkSum+=i%2==0?2*digit:digit;return checkSum=eval(checkSum.split("").join("+")),checkSum%10==0},fValidate.prototype.ccDate=function(e,t){if(!this.typeMismatch("s1")){t=parseInt(this.getValue(this.form.elements[t]),10)+2e3,e=parseInt(this.getValue(this.form.elements[e]),10);var i=new Date,r=new Date(t,e);i>r&&alert(["Card Expired",i,r].join("\n"))}};