(function(b){b.fn.caret=function(e,c){if(this.length==0){return}if(typeof e=="number"){c=(typeof c=="number")?c:e;return this.each(function(){if(this.setSelectionRange){this.focus();this.setSelectionRange(e,c)}else{if(this.createTextRange){var f=this.createTextRange();f.collapse(true);f.moveEnd("character",c);f.moveStart("character",e);f.select()}}})}else{if(this[0].setSelectionRange){e=this[0].selectionStart;c=this[0].selectionEnd}else{if(document.selection&&document.selection.createRange){var d=document.selection.createRange();e=0-d.duplicate().moveStart("character",-100000);c=e+d.text.length}}return{begin:e,end:c}}};var a={"9":"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"};b.mask={addPlaceholder:function(e,d){a[e]=d}};b.fn.unmask=function(){return this.trigger("unmask")};b.fn.mask=function(c,e){e=b.extend({placeholder:"_",completed:null},e);var d=new RegExp("^"+b.map(c.split(""),function(g,f){return a[g]||((/[A-Za-z0-9]/.test(g)?"":"\\")+g)}).join("")+"$");return this.each(function(){var o=b(this);var i=new Array(c.length);var j=new Array(c.length);var f=false;var n=false;var q=null;b.each(c.split(""),function(t,u){j[t]=(a[u]==null);i[t]=j[t]?u:e.placeholder;if(!j[t]&&q==null){q=t}});function p(){h();l();setTimeout(function(){b(o[0]).caret(f?c.length:q)},0)}function k(u){var v=b(this).caret();var t=u.keyCode;n=(t<16||(t>16&&t<32)||(t>32&&t<41));if((v.begin-v.end)!=0&&(!n||t==8||t==46)){g(v.begin,v.end)}if(t==8){while(v.begin-->=0){if(!j[v.begin]){i[v.begin]=e.placeholder;if(b.browser.opera){s=l();o.val(s.substring(0,v.begin)+" "+s.substring(v.begin));b(this).caret(v.begin+1)}else{l();b(this).caret(Math.max(q,v.begin))}return false}}}else{if(t==46){g(v.begin,v.begin+1);l();b(this).caret(Math.max(q,v.begin));return false}else{if(t==27){g(0,c.length);l();b(this).caret(q);return false}}}}function r(w){if(n){n=false;return(w.keyCode==8)?false:null}w=w||window.event;var t=w.charCode||w.keyCode||w.which;var x=b(this).caret();if(w.ctrlKey||w.altKey){return true}else{if((t>=41&&t<=122)||t==32||t>186){var v=m(x.begin-1);if(v<c.length){if(new RegExp(a[c.charAt(v)]).test(String.fromCharCode(t))){i[v]=String.fromCharCode(t);l();var u=m(v);b(this).caret(u);if(e.completed&&u==c.length){e.completed.call(o)}}}}}return false}function g(v,t){for(var u=v;u<t&&u<c.length;u++){if(!j[u]){i[u]=e.placeholder}}}function l(){return o.val(i.join("")).val()}function h(){var x=o.val();var w=q;for(var u=0;u<c.length;u++){if(!j[u]){i[u]=e.placeholder;while(w++<x.length){var t=new RegExp(a[c.charAt(u)]);if(x.charAt(w-1).match(t)){i[u]=x.charAt(w-1);break}}}}var v=l();if(!v.match(d)){o.val("");g(0,c.length);f=false}else{f=true}}function m(t){while(++t<c.length){if(!j[t]){return t}}return c.length}o.one("unmask",function(){o.unbind("focus",p);o.unbind("blur",h);o.unbind("keydown",k);o.unbind("keypress",r);if(b.browser.msie){this.onpaste=null}else{if(b.browser.mozilla){this.removeEventListener("input",h,false)}}});o.bind("focus",p);o.bind("blur",h);o.bind("keydown",k);o.bind("keypress",r);if(b.browser.msie){this.onpaste=function(){setTimeout(h,0)}}else{if(b.browser.mozilla){this.addEventListener("input",h,false)}}h()})}})(jQuery);(function(a){a.fn.maskMoney=function(b){b=a.extend({symbol:"US$",decimal:".",precision:2,thousands:",",showSymbol:true},b);b.symbol=b.symbol+" ";return this.each(function(){var e=a(this);function h(o){o=o||window.event;var m=o.charCode||o.keyCode||o.which;if(m==8){g(o);var l=e.val().substring(0,e.val().length-1);e.val(c(l));return false}else{if(m==9){return true}}if(m<48||m>57){g(o);return true}if(e.val().length>e.attr("maxlength")){return false}var n=String.fromCharCode(m);g(o);e.val(c(e.val()+n))}function g(k){if(k.preventDefault){k.preventDefault()}else{k.returnValue=false}}function c(w){w=w.replace(b.symbol,"");var u="";var k="0123456789";var q=w.length;var x="";if(q==0){x="0.00"}for(var o=0;o<q;o++){if((w.charAt(o)!="0")&&(w.charAt(o)!=b.decimal)){break}}for(;o<q;o++){if(k.indexOf(w.charAt(o))!=-1){u+=w.charAt(o)}}var m=parseFloat(u);m=isNaN(m)?0:m/Math.pow(10,b.precision);x=m.toFixed(b.precision);var l,r=(x=x.split("."))[1].substr(0,b.precision);for(l=(x=x[0]).length;(l-=3)>=1;){x=x.substr(0,l)+b.thousands+x.substr(l)}return i(x+b.decimal+r+Array((b.precision+1)-r.length).join(0))}function d(){if(e.val()==""){e.val(i(j()))}else{e.val(i(e.val()))}}function f(){if(e.val()==i(j())){e.val("")}else{e.val(e.val().replace(b.symbol,""))}}function j(){var k=parseFloat("0")/Math.pow(10,b.precision);return(k.toFixed(b.precision)).replace(new RegExp("\\.","g"),b.decimal)}function i(k){if(b.showSymbol){return b.symbol+k}return k}e.bind("keypress",h);e.bind("blur",f);e.bind("focus",d);e.one("unmaskMoney",function(){e.unbind("focus",d);e.unbind("blur",f);e.unbind("keypress",h);if(a.browser.msie){this.onpaste=null}else{if(a.browser.mozilla){this.removeEventListener("input",f,false)}}})})};a.fn.unmaskMoney=function(){return this.trigger("unmaskMoney")}})(jQuery);
