function _MaskAPI(){this.version="0.4a";this.instances=0;this.objects={}}MaskAPI=new _MaskAPI();function Mask(A,B){this.mask=A;this.type=(typeof B=="string")?B:"string";this.error=[];this.errorCodes=[];this.value="";this.strippedValue="";this.allowPartial=false;this.id=MaskAPI.instances++;this.ref="MaskAPI.objects['"+this.id+"']";MaskAPI.objects[this.id]=this}Mask.prototype.attach=function(A){$addEvent(A,"onkeydown","return "+this.ref+".isAllowKeyPress(event, this);",true);$addEvent(A,"onkeyup","return "+this.ref+".getKeyPress(event, this);",true);$addEvent(A,"onblur","this.value = "+this.ref+".format(this.value);",true);$addEvent(A,"ref",this.ref,false)};Mask.prototype.isAllowKeyPress=function(B,C){if(this.type!="string"){return true}var A=new qEvent(B);if(((A.keyCode>47)&&(C.value.length>=this.mask.length))&&!A.ctrlKey){return false}return true};Mask.prototype.isAllowKeyPressKeyboard=function(A,C){if(this.type!="string"){return true}var C=document.getElementById(C);var B=A.charCodeAt(0);if(((B>47)&&(C.value.length>=this.mask.length))){return false}return true};Mask.prototype.getKeyPress=function(D,F,C){this.allowPartial=true;var B=new qEvent(D);if((B.keyCode>47)||(C==true)||(B.keyCode==8||B.keyCode==46)){var A=F.value,E;if(B.keyCode==8||B.keyCode==46){E=true}else{E=false}if(this.type=="number"){this.value=this.setNumber(A,E)}else{if(this.type=="date"){this.value=this.setDateKeyPress(A,E)}else{if(this.type=="propercase"){this.value=this.ProperCase(A)}else{if(this.type=="propercase_lettersonly"){this.value=this.LetterOnly(this.ProperCase(A))}else{if(this.type=="uppercase"){this.value=this.UpperCase(A)}else{if(this.type=="string_uppercase"){this.value=this.setGeneric(this.UpperCase(A),E)}else{this.value=this.setGeneric(A,E)}}}}}}F.value=this.value}this.allowPartial=false;return true};Mask.prototype.format=function(A){if(this.type=="number"){this.value=this.setNumber(A)}else{if(this.type=="date"){this.value=this.setDate(A)}else{if(this.type=="propercase"){this.value=this.ProperCase(A)}else{if(this.type=="propercase_lettersonly"){this.value=this.LetterOnly(this.ProperCase(A))}else{if(this.type=="uppercase"){this.value=this.UpperCase(A)}else{if(this.type=="string_uppercase"){this.value=this.setGeneric(this.UpperCase(A))}else{this.value=this.setGeneric(A)}}}}}}return this.value};Mask.prototype.getKeyPressKeyboard=function(D,F,B){this.allowPartial=true;var F=document.getElementById(F);var C=D.charCodeAt(0);if((C>47)||(B==true)||(C==8||C==46)){var A=F.value,E;if(C==8||C==46){E=true}else{E=false}if(this.type=="number"){this.value=this.setNumber(A,E)}else{if(this.type=="date"){this.value=this.setDateKeyPress(A,E)}else{if(this.type=="propercase"){this.value=this.ProperCase(A)}else{if(this.type=="propercase_lettersonly"){this.value=this.LetterOnly(this.ProperCase(A))}else{if(this.type=="uppercase"){this.value=this.UpperCase(A)}else{if(this.type=="string_uppercase"){this.value=this.setGeneric(this.UpperCase(A),E)}else{this.value=this.setGeneric(A,E)}}}}}}F.value=this.value}this.allowPartial=false;return true};Mask.prototype.ProperCase=function(E){var F="";var A=E.length;if(A==0){return""}E=E.replace(new RegExp('[|"]',"gi"),"");var C=false;F+=E.charAt(0).toUpperCase();for(var B=1;B<A;B++){if(C==true){F+=E.charAt(B).toUpperCase()}else{F+=E.charAt(B)}var D=E.charCodeAt(B);if(D==32||D==45||D==46||D==44){C=true}else{C=false}}return F};Mask.prototype.LetterOnly=function(A){A=A.replace(new RegExp("[^A-Za-z ,-.']","gi"),"");return A};Mask.prototype.UpperCase=function(A){return A.toUpperCase()};Mask.prototype.throwError=function(C,B,A){this.error[this.error.length]=B;this.errorCodes[this.errorCodes.length]=C;if(typeof A=="string"){return A}return true};Mask.prototype.setGeneric=function(L,H){var M=L,C=this.mask;var A="x#*",D=[],G="",N,K,J=[],E=0,B={x:"A-Za-z","#":"0-9","*":"A-Za-z0-9"};M=M.replace(new RegExp("[^"+B["*"]+"]","gi"),"");if((H==true)&&(M.length==this.strippedValue.length)){M=M.substring(0,M.length-1)}this.strippedValue=M;var I=[];for(var F=0;F<C.length;F++){K=C.charAt(F);N=(A.indexOf(K)>-1);if(K=="!"){K=C.charAt(F++)}if((N&&!this.allowPartial)||(N&&this.allowPartial&&(D.length<M.length))){D[D.length]="["+B[K]+"]"}J[J.length]={chr:K,mask:N}}var O=false;if(!this.allowPartial&&!(new RegExp(D.join(""))).test(M)){return this.throwError(1,'The value "'+L+'" must be in the format '+this.mask+".",L)}else{if((this.allowPartial&&(M.length>0))||!this.allowPartial){for(F=0;F<J.length;F++){if(J[F].mask){while(M.length>0&&!(new RegExp(D[E])).test(M.charAt(E))){M=(M.length==1)?"":M.substring(1)}if(M.length>0){G+=M.charAt(E);O=true}E++}else{G+=J[F].chr}if(this.allowPartial&&(E>M.length)){break}}}}if(this.allowPartial&&!O){G=""}if(this.allowPartial){if(G.length<J.length){this.nextValidChar=B[J[G.length].chr]}else{this.nextValidChar=null}}return G};Mask.prototype.setNumber=function(O,J){var P=String(O).replace(/[^\d.-]*/gi,""),E=this.mask;P=P.replace(/\./,"d").replace(/\./g,"").replace(/d/,".");if(!/^[\$]?((\$?[\+-]?([0#]{1,3},)?[0#]*(\.[0#]*)?)|([\+-]?\([\+-]?([0#]{1,3},)?[0#]*(\.[0#]*)?\)))$/.test(E)){return this.throwError(1,"An invalid mask was specified for the \nMask constructor.",O)}if((J==true)&&(P.length==this.strippedValue.length)){P=P.substring(0,P.length-1)}if(this.allowPartial&&(P.replace(/[^0-9]/,"").length==0)){return P}this.strippedValue=P;if(P.length==0){P=NaN}var B=Number(P);if(isNaN(B)){return this.throwError(2,"The value entered was not a number.",O)}if(E.length==0){return P}var F=String(Math.abs((P.indexOf(".")>-1)?P.split(".")[0]:P));var I=(P.indexOf(".")>-1)?P.split(".")[1]:"";var D=I;var A=(B!=0&&Math.abs(B)*-1==B);var N={"$":/^[\$]/.test(E),"(":(A&&(E.indexOf("(")>-1)),"+":((E.indexOf("+")!=-1)&&!A)};N["-"]=(A&&(!N["("]||(E.indexOf("-")!=-1)));E=E.replace(/[^#0.,]*/gi,"");var H=(E.indexOf(".")>-1)?E.split(".")[1]:"";if(H.length==0){F=String(Math.round(Number(F)));I=""}else{var L=H.lastIndexOf("0")+1;if(I.length>H.length){I=String(Math.round(Number(I.substring(0,H.length+1))/10))}else{while(I.length<L){I+="0"}}}var K=(E.indexOf(".")>-1)?E.split(".")[0]:E;K=K.replace(/[^0#]+/gi,"");var Q=K.indexOf("0")+1;if(Q>0){Q=K.length-Q+1;while(F.length<Q){F="0"+F}}if(/[#0]+,[#0]{3}/.test(E)){var M=[],G=0,C=Number(F);while(C>999){M[G]="00"+String(C%1000);M[G]=M[G].substring(M[G].length-3);C=Math.floor(C/1000);G++}M[G]=String(C%1000);F=M.reverse().join(",")}if((I.length>0&&!this.allowPartial)||((H.length>0)&&this.allowPartial&&(P.indexOf(".")>-1)&&(D.length>=I.length))){P=F+"."+I}else{if((H.length>0)&&this.allowPartial&&(P.indexOf(".")>-1)&&(D.length<I.length)){P=F+"."+D}else{P=F}}if(N["$"]){P=this.mask.replace(/(^[\$])(.+)/gi,"$")+P}if(N["+"]){P="+"+P}if(N["-"]){P="-"+P}if(N["("]){P="("+P+")"}return P};Mask.prototype.setDate=function(J){var K=J,A=this.mask;var I,E,B,L,G,H,M;I=A.split(/[^mdy]+/);M=A.split(/[mdy]+/);E=K.split(/[^0-9]/);if(M[0].length==0){M.splice(0,1)}for(var C=0;C<I.length;C++){H=I[C].charAt(0).toLowerCase();if(H=="m"){B=parseInt(E[C],10)-1}else{if(H=="d"){L=parseInt(E[C],10)}else{if(H=="y"){G=parseInt(E[C],10)}}}}if(String(G).length<3){G=2000+G;if((new Date()).getFullYear()+20<G){G=G-100}}var F=new Date(G,B,L);if(F.getDate()!=L){return this.throwError(1,"An invalid day was entered.",J)}else{if(F.getMonth()!=B){return this.throwError(2,"An invalid month was entered.",J)}}var D="";for(C=0;C<I.length;C++){H=I[C].charAt(0).toLowerCase();if(H=="m"){B++;if(I[C].length==2){B="0"+B;B=B.substring(B.length-2)}D+=B}else{if(H=="d"){if(I[C].length==2){L="0"+L;L=L.substring(L.length-2)}D+=L}else{if(H=="y"){if(I[C].length==2){D+=F.getYear()}else{D+=F.getFullYear()}}}}if(C<I.length-1){D+=M[C]}}return D};Mask.prototype.setDateKeyPress=function(M,A){var D=M,G=this.mask,H=D.charAt(D.length-1);var S,N,P,L,O,K="",Q="",E="",C,F,B;if(A==true){while((/[^0-9]/gi).test(D.charAt(D.length-1))){D=D.substring(0,D.length-1)}if((/[^0-9]/gi).test(this.strippedValue.charAt(this.strippedValue.length-1))){D=D.substring(0,D.length-1)}if(D.length==0){return""}}S=G.split(/[^mdy]/);s=G.split(/[mdy]+/);if(s[0].length==0){s.splice(0,1)}N=D.split(/[^0-9]/);F=(N.length>0)?N.length-1:0;P=S[F].charAt(0);L=S[F].length;for(var J=0;J<N.length;J++){C=S[J].charAt(0).toLowerCase();if(C=="m"){K=parseInt(N[J],10)-1}else{if(C=="d"){Q=parseInt(N[J],10)}else{if(C=="y"){E=parseInt(N[J],10)}}}}var R="";var I=0;for(J=0;J<N.length;J++){C=S[J].charAt(0).toLowerCase();if(C=="m"){B=((/[^0-9]/).test(H)&&P=="m");K++;if((N[J].length==2&&K<10)||(S[J].length==2&&P!="m")||(K>1&&P=="m")||(B&&S[J].length==2)){K="0"+K;K=K.substring(K.length-2)}O=String(K).length;L=2;R+=K}else{if(C=="d"){B=((/[^0-9]/).test(H)&&P=="d");if((N[J].length==2&&Q<10)||(S[J].length==2&&P!="d")||(Q>3&&P=="d")||(B&&S[J].length==2)){Q="0"+Q;Q=Q.substring(Q.length-2)}O=String(Q).length;L=2;R+=Q}else{if(C=="y"){B=((/[^0-9]/).test(H)&&P=="y");if(P=="y"){E=String(E)}else{if(S[J].length==2){E=d.getYear()}else{E=d.getFullYear()}}if((N[J].length==2&&E<10)||(S[J].length==2&&P!="y")||(B&&S[J].length==2)){E="0"+E;E=E.substring(E.length-2)}L=S[J].length;O=String(E).length;R+=E}}}if(((L==O||B)&&(C==P)&&(J<s.length))||(J<s.length&&C!=P)){R+=s[J]}}if(R.length>G.length){R=R.substring(0,G.length)}this.strippedValue=(R=="NaN")?"":R;return this.strippedValue};function qEvent(A){var D=A;var C=true;if(window.event){D=window.evt;C=false}if(C){var B=(D.type.substring(0,3)=="key");this.keyCode=(B)?parseInt(D.which,10):0;this.button=(!B)?parseInt(D.which,10):0;this.srcElement=D.target;this.type=D.type;this.x=D.pageX;this.y=D.pageY;this.screenX=D.screenX;this.screenY=D.screenY;if(document.layers){this.altKey=((D.modifiers&Event.ALT_MASK)>0);this.ctrlKey=((D.modifiers&Event.CONTROL_MASK)>0);this.shiftKey=((D.modifiers&Event.SHIFT_MASK)>0);this.keyCode=this.translateKeyCode(this.keyCode)}else{this.altKey=D.altKey;this.ctrlKey=D.ctrlKey;this.shiftKey=D.shiftKey}}else{D=window.event;this.keyCode=parseInt(D.keyCode,10);this.button=D.button;this.srcElement=D.srcElement;this.type=D.type;if(document.all){this.x=D.clientX+document.body.scrollLeft;this.y=D.clientY+document.body.scrollTop}else{this.x=D.clientX;this.y=D.clientY}this.screenX=D.screenX;this.screenY=D.screenY;this.altKey=D.altKey;this.ctrlKey=D.ctrlKey;this.shiftKey=D.shiftKey}if(this.button==0){this.setKeyPressed(this.keyCode);this.keyChar=String.fromCharCode(this.keyCode)}}qEvent.prototype.translateKeyCode=function(B){var A={};if(!!document.layers){if(this.keyCode>96&&this.keyCode<123){return this.keyCode-32}A={96:192,126:192,33:49,64:50,35:51,36:52,37:53,94:54,38:55,42:56,40:57,41:48,92:220,124:220,125:221,93:221,91:219,123:219,39:222,34:222,47:191,63:191,46:190,62:190,44:188,60:188,45:189,95:189,43:187,61:187,59:186,58:186,"null":null}}return(!!A[B])?A[B]:B};qEvent.prototype.setKP=function(A,B){this.keyPressedCode=A;this.keyNonChar=(typeof B=="string");this.keyPressed=(this.keyNonChar)?B:String.fromCharCode(A);this.isNumeric=(parseInt(this.keyPressed,10)==this.keyPressed);this.isAlpha=((this.keyCode>64&&this.keyCode<91)&&!this.altKey&&!this.ctrlKey);return true};qEvent.prototype.setKeyPressed=function(B){var A=this.shiftKey;if(!A&&(B>64&&B<91)){return this.setKP(B+32)}if(B>95&&B<106){return this.setKP(B-48)}switch(B){case 49:case 51:case 52:case 53:if(A){B=B-16}break;case 50:if(A){B=64}break;case 54:if(A){B=94}break;case 55:if(A){B=38}break;case 56:if(A){B=42}break;case 57:if(A){B=40}break;case 48:if(A){B=41}break;case 192:if(A){B=126}else{B=96}break;case 189:if(A){B=95}else{B=45}break;case 187:if(A){B=43}else{B=61}break;case 220:if(A){B=124}else{B=92}break;case 221:if(A){B=125}else{B=93}break;case 219:if(A){B=123}else{B=91}break;case 222:if(A){B=34}else{B=39}break;case 186:if(A){B=58}else{B=59}break;case 191:if(A){B=63}else{B=47}break;case 190:if(A){B=62}else{B=46}break;case 188:if(A){B=60}else{B=44}break;case 106:case 57379:B=42;break;case 107:case 57380:B=43;break;case 109:case 57381:B=45;break;case 110:B=46;break;case 111:case 57378:B=47;break;case 8:return this.setKP(B,"[backspace]");case 9:return this.setKP(B,"[tab]");case 13:return this.setKP(B,"[enter]");case 16:case 57389:return this.setKP(B,"[shift]");case 17:case 57390:return this.setKP(B,"[ctrl]");case 18:case 57388:return this.setKP(B,"[alt]");case 19:case 57402:return this.setKP(B,"[break]");case 20:return this.setKP(B,"[capslock]");case 32:return this.setKP(B,"[space]");case 91:return this.setKP(B,"[windows]");case 93:return this.setKP(B,"[properties]");case 33:case 57371:return this.setKP(B*-1,"[pgup]");case 34:case 57372:return this.setKP(B*-1,"[pgdown]");case 35:case 57370:return this.setKP(B*-1,"[end]");case 36:case 57369:return this.setKP(B*-1,"[home]");case 37:case 57375:return this.setKP(B*-1,"[left]");case 38:case 57373:return this.setKP(B*-1,"[up]");case 39:case 57376:return this.setKP(B*-1,"[right]");case 40:case 57374:return this.setKP(B*-1,"[down]");case 45:case 57382:return this.setKP(B*-1,"[insert]");case 46:case 57383:return this.setKP(B*-1,"[delete]");case 144:case 57400:return this.setKP(B*-1,"[numlock]")}if(B>111&&B<124){return this.setKP(B*-1,"[f"+(B-111)+"]")}return this.setKP(B)};function $addEvent(G,C,H,E){var F=C.toLowerCase(),B=(typeof E=="boolean")?E:true,A=(G[F])?G[F].toString():"";A=A.substring(A.indexOf("{")+1,A.lastIndexOf("}"));A=((B)?(A+H):(H+A))+"\n";var D=A.indexOf("function(evt)")>=0?"evt":"event";G[F]=(!!window.Event)?new Function(D,A):new Function(A);return G[F]}CC.domReady(function(){if(!document.getElementsByTagName){return }var C=document.getElementsByTagName("input");for(var E=0;E<C.length;E++){var D=C[E];if(D.getAttribute("mask")||D.getAttribute("maskType")){var B=String(D.getAttribute("mask"));var A=String(D.getAttribute("maskType"));new Mask(B,A).attach(D)}}});