var Rotech={};Rotech.InputMask=function(H,Q){this.input=document.getElementById(H);this.mask=Q;this.empty="_";var G=new Array(Q.length);var I=new Array(Q.length);var P;this.initialize=function(){Event.observe(this.input,"keydown",E.bindAsEventListener(this));Event.observe(this.input,"keypress",F.bindAsEventListener(this));Event.observe(this.input,"focus",M.bindAsEventListener(this));Event.observe(this.input,"blur",L.bindAsEventListener(this));var S="^";for(var R=0;R<this.mask.length;R++){if(this.mask.charAt(R)!="9"&&this.mask.charAt(R)!="a"&&this.mask.charAt(R)!="*"){G[R]=this.mask.charAt(R);I[R]=true}else{G[R]=this.empty;I[R]=false}S+=(C(this.mask,R)||("\\"+this.mask.charAt(R)))}S+="$";P=new RegExp(S)};var B=function(T){var U={begin:0,end:0};if(T.setSelectionRange){U.begin=T.selectionStart;U.end=T.selectionEnd}else{if(document.selection&&document.selection.createRange){var S=document.selection.createRange();var R=S.duplicate();U.begin=0-R.moveStart("character",-100000);U.end=U.begin+S.text.length}}return U};var D=function(T,R){if(T.setSelectionRange){T.focus();T.setSelectionRange(R,R)}else{if(T.createTextRange){var S=T.createTextRange();S.collapse(true);S.moveEnd("character",R);S.moveStart("character",R);S.select()}}};var C=function(S,R){switch(S.charAt(R)){case"9":return"[0-9]";case"a":return"[A-Za-z]";case"*":return"[A-Za-z0-9]";default:return null}};var M=function(S){if(this.input.value.length!=this.mask.length){K(this);O(this);D(this.input,0)}else{for(var R=0;R<this.mask.length;R++){G[R]=this.input.value.charAt(R)}}};var L=function(R){K(this)};var F=function(T){var R=T.keyCode;var S=T.shift;var U=T.ctrlKey;if(!(R==9)&&!(S&&R==9)&&!(U&&R==67)&&!(U&&R==86)&&!(U&&R==88)){Event.stop(T)}};var E=function(X){var Y=B(this.input);var U=Y.begin;var T=J(X);if((Y.begin-Y.end)!=0){for(var V=Y.begin;V<=Y.end;V++){if(!I[V]){G[V]=this.empty}}}if(T==8){while((Y.begin--)>=0){if(!I[Y.begin]){G[Y.begin]=this.empty;O(this);D(this.input,Y.begin);return }}}else{if(T==35){D(this.input,this.mask.length);return }else{if(T==36){D(this.input,0);return }else{if(T==37||T==40){while((Y.begin--)>=0){if(!I[Y.begin]){D(this.input,Y.begin);return }}}else{if(T==38||T==39){while(Y.begin<=this.mask.length){Y.begin++;Y.end=Y.begin;if(!I[Y.begin]){D(this.input,Y.begin);return }else{continue}}}else{if(T==46){for(var V=Y.begin;V<=Y.end;V++){if(!I[V]){G[V]=this.empty}}O(this);D(this.input,Y.begin);return }else{if(N(T)){var W=A(T);while(Y.begin<=this.mask.length){var S=C(this.mask,Y.begin);if(S){var R=new RegExp(S);if(W.match(R)){G[Y.begin]=W}else{return }}else{Y.begin++;U++;Y.end=Y.begin;continue}while(++U<this.mask.length){if(!I[U]){break}}break}O(this);D(this.input,U);return }}}}}}}};var O=function(S){var T="";for(var R=0;R<S.mask.length;R++){T+=G[R]}S.input.value=T};var K=function(U){if(!U.input.value.match(P)){var W=U.input.value;var V=0;for(var T=0;T<U.mask.length;T++){if(!I[T]){while(V++<W.length){var S=new RegExp(C(U.mask,T));if(W.charAt(V-1).match(S)){G[T]=W.charAt(V-1);break}else{for(var R=0;R<U.mask.length;R++){if(!I[R]){G[R]=U.empty}}U.input.value="";return }}}}O(U)}};var J=function(R){return window.event?window.event.keyCode:R?R.which:0};var N=function(R){return((R>=32&&R<=127)||R>186)};var A=function(R){switch(R){case 48:case 96:return"0";case 49:case 97:return"1";case 50:case 98:return"2";case 51:case 99:return"3";case 52:case 100:return"4";case 53:case 101:return"5";case 54:case 102:return"6";case 55:case 103:return"7";case 56:case 104:return"8";case 57:case 105:return"9";default:return String.fromCharCode(R)}};this.initialize()}