(function(d){var c=(window.orientation!=undefined),a=((d.browser.opera||(d.browser.mozilla&&parseFloat(d.browser.version.substr(0,3))<1.9))?"input":"paste");d.event.special.paste={setup:function(){if(this.addEventListener){this.addEventListener(a,b,false)}else{if(this.attachEvent){this.attachEvent(a,b)}}},teardown:function(){if(this.removeEventListener){this.removeEventListener(a,b,false)}else{if(this.detachEvent){this.detachEvent(a,b)}}}};function b(g){var f=this;g=d.event.fix(g||window.e);g.type="paste";setTimeout(function(){d.event.handle.call(f,g)},1)}d.extend({mask:{rules:{z:/[a-z]/,Z:/[A-Z]/,a:/[a-zA-Z]/,"*":/[0-9a-zA-Z]/,"@":/[0-9a-zA-ZÃ§Ã‡Ã¡Ã Ã£Ã¢Ã©Ã¨ÃªÃÃ¬Ã³Ã²Ã´ÃµÃºÃ¹Ã¼]/},keyRepresentation:{8:"backspace",9:"tab",13:"enter",16:"shift",17:"control",18:"alt",27:"esc",33:"page up",34:"page down",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete",116:"f5",123:"f12",224:"command"},iphoneKeyRepresentation:{10:"go",127:"delete"},signals:{"+":"","-":"-"},options:{attr:"alt",mask:null,type:"fixed",maxLength:-1,defaultValue:"",signal:false,textAlign:true,selectCharsOnFocus:true,autoTab:true,setSize:false,fixedChars:"[(),.:/ -]",onInvalid:function(){},onValid:function(){},onOverflow:function(){}},masks:{phone:{mask:"(99) 9999-9999"},"phone-us":{mask:"(999) 999-9999"},cpf:{mask:"999.999.999-99"},cnpj:{mask:"99.999.999/9999-99"},date:{mask:"39/19/9999"},"date-us":{mask:"19/39/9999"},cep:{mask:"99999-999"},time:{mask:"29:59"},cc:{mask:"9999 9999 9999 9999"},integer:{mask:"999.999.999.999",type:"reverse"},decimal:{mask:"99,999.999.999.999",type:"reverse",defaultValue:"000"},"decimal-us":{mask:"99.999,999,999,999",type:"reverse",defaultValue:"000"},"signed-decimal":{mask:"99,999.999.999.999",type:"reverse",defaultValue:"+000"},"signed-decimal-us":{mask:"99,999.999.999.999",type:"reverse",defaultValue:"+000"}},init:function(){if(!this.hasInit){var e=this,f,g=(c)?this.iphoneKeyRepresentation:this.keyRepresentation;this.ignore=false;for(f=0;f<=9;f++){this.rules[f]=new RegExp("[0-"+f+"]")}this.keyRep=g;this.ignoreKeys=[];d.each(g,function(h){e.ignoreKeys.push(parseInt(h))});this.hasInit=true}},set:function(i,f){var e=this,g=d(i),h="maxLength";f=f||{};this.init();return g.each(function(){if(f.attr){e.options.attr=f.attr}var p=d(this),r=d.extend({},e.options),n=p.attr(r.attr),j="";j=(typeof f=="string")?f:(n!="")?n:null;if(j){r.mask=j}if(e.masks[j]){r=d.extend(r,e.masks[j])}if(typeof f=="object"&&f.constructor!=Array){r=d.extend(r,f)}if(d.metadata){r=d.extend(r,p.metadata())}if(r.mask!=null){if(p.data("mask")){e.unset(p)}var k=r.defaultValue,l=(r.type=="reverse"),m=new RegExp(r.fixedChars,"g");if(r.maxLength==-1){r.maxLength=p.attr(h)}r=d.extend({},r,{fixedCharsReg:new RegExp(r.fixedChars),fixedCharsRegG:m,maskArray:r.mask.split(""),maskNonFixedCharsArray:r.mask.replace(m,"").split("")});if((r.type=="fixed"||l)&&r.setSize&&!p.attr("size")){p.attr("size",r.mask.length)}if(l&&r.textAlign){p.css("text-align","right")}if(this.value!=""||k!=""){var q=e.string((this.value!="")?this.value:k,r);this.defaultValue=q;p.val(q)}if(r.type=="infinite"){r.type="repeat"}p.data("mask",r);p.removeAttr(h);p.bind("keydown.mask",{func:e._onKeyDown,thisObj:e},e._onMask).bind("keypress.mask",{func:e._onKeyPress,thisObj:e},e._onMask).bind("keyup.mask",{func:e._onKeyUp,thisObj:e},e._onMask).bind("paste.mask",{func:e._onPaste,thisObj:e},e._onMask).bind("focus.mask",e._onFocus).bind("blur.mask",e._onBlur).bind("change.mask",e._onChange)}})},unset:function(f){var e=d(f);return e.each(function(){var h=d(this);if(h.data("mask")){var g=h.data("mask").maxLength;if(g!=-1){h.attr("maxLength",g)}h.unbind(".mask").removeData("mask")}})},string:function(j,f){this.init();var i={};if(typeof j!="string"){j=String(j)}switch(typeof f){case"string":if(this.masks[f]){i=d.extend(i,this.masks[f])}else{i.mask=f}break;case"object":i=f}if(!i.fixedChars){i.fixedChars=this.options.fixedChars}var e=new RegExp(i.fixedChars),g=new RegExp(i.fixedChars,"g");if((i.type=="reverse")&&i.defaultValue){if(typeof this.signals[i.defaultValue.charAt(0)]!="undefined"){var h=j.charAt(0);i.signal=(typeof this.signals[h]!="undefined")?this.signals[h]:this.signals[i.defaultValue.charAt(0)];i.defaultValue=i.defaultValue.substring(1)}}return this.__maskArray(j.split(""),i.mask.replace(g,"").split(""),i.mask.split(""),i.type,i.maxLength,i.defaultValue,e,i.signal)},_onFocus:function(h){var g=d(this),f=g.data("mask");f.inputFocusValue=g.val();f.changed=false;if(f.selectCharsOnFocus){g.select()}},_onBlur:function(h){var g=d(this),f=g.data("mask");if(f.inputFocusValue!=g.val()&&!f.changed){g.trigger("change")}},_onChange:function(f){d(this).data("mask").changed=true},_onMask:function(f){var h=f.data.thisObj,g={};g._this=f.target;g.$this=d(g._this);if(g.$this.attr("readonly")){return true}g.data=g.$this.data("mask");g[g.data.type]=true;g.value=g.$this.val();g.nKey=h.__getKeyNumber(f);g.range=h.__getRange(g._this);g.valueArray=g.value.split("");return f.data.func.call(h,f,g)},_onKeyDown:function(g,h){this.ignore=d.inArray(h.nKey,this.ignoreKeys)>-1||g.ctrlKey||g.metaKey||g.altKey;if(this.ignore){var f=this.keyRep[h.nKey];h.data.onValid.call(h._this,f?f:"",h.nKey)}return c?this._keyPress(g,h):true},_onKeyUp:function(f,g){if(g.nKey==9||g.nKey==16){return true}if(g.data.type=="repeat"){this.__autoTab(g);return true}return this._onPaste(f,g)},_onPaste:function(g,h){if(h.reverse){this.__changeSignal(g.type,h)}var f=this.__maskArray(h.valueArray,h.data.maskNonFixedCharsArray,h.data.maskArray,h.data.type,h.data.maxLength,h.data.defaultValue,h.data.fixedCharsReg,h.data.signal);h.$this.val(f);if(!h.reverse&&h.data.defaultValue.length&&(h.range.start==h.range.end)){this.__setRange(h._this,h.range.start,h.range.end)}if((d.browser.msie||d.browser.safari)&&!h.reverse){this.__setRange(h._this,h.range.start,h.range.end)}if(this.ignore){return true}this.__autoTab(h);return true},_onKeyPress:function(m,f){if(this.ignore){return true}if(f.reverse){this.__changeSignal(m.type,f)}var n=String.fromCharCode(f.nKey),q=f.range.start,j=f.value,h=f.data.maskArray;if(f.reverse){var i=j.substr(0,q),l=j.substr(f.range.end,j.length);j=i+n+l;if(f.data.signal&&(q-f.data.signal.length>0)){q-=f.data.signal.length}}var p=j.replace(f.data.fixedCharsRegG,"").split(""),g=this.__extraPositionsTill(q,h,f.data.fixedCharsReg);f.rsEp=q+g;if(f.repeat){f.rsEp=0}if(!this.rules[h[f.rsEp]]||(f.data.maxLength!=-1&&p.length>=f.data.maxLength&&f.repeat)){f.data.onOverflow.call(f._this,n,f.nKey);return false}else{if(!this.rules[h[f.rsEp]].test(n)){f.data.onInvalid.call(f._this,n,f.nKey);return false}else{f.data.onValid.call(f._this,n,f.nKey)}}var k=this.__maskArray(p,f.data.maskNonFixedCharsArray,h,f.data.type,f.data.maxLength,f.data.defaultValue,f.data.fixedCharsReg,f.data.signal,g);f.$this.val(k);return(f.reverse)?this._keyPressReverse(m,f):(f.fixed)?this._keyPressFixed(m,f):true},_keyPressFixed:function(f,g){if(g.range.start==g.range.end){if((g.rsEp==0&&g.value.length==0)||g.rsEp<g.value.length){this.__setRange(g._this,g.rsEp,g.rsEp+1)}}else{this.__setRange(g._this,g.range.start,g.range.end)}return true},_keyPressReverse:function(f,g){if(d.browser.msie&&((g.range.start==0&&g.range.end==0)||g.range.start!=g.range.end)){this.__setRange(g._this,g.value.length)}return false},__autoTab:function(f){if(f.data.autoTab&&((f.$this.val().length>=f.data.maskArray.length&&!f.repeat)||(f.data.maxLength!=-1&&f.valueArray.length>=f.data.maxLength&&f.repeat))){var e=this.__getNextInput(f._this,f.data.autoTab);if(e){f.$this.trigger("blur");e.focus().select()}}},__changeSignal:function(f,g){if(g.data.signal!==false){var e=(f=="paste")?g.value.charAt(0):String.fromCharCode(g.nKey);if(this.signals&&(typeof this.signals[e]!="undefined")){g.data.signal=this.signals[e]}}},__getKeyNumber:function(f){return(f.charCode||f.keyCode||f.which)},__maskArray:function(m,h,g,j,e,k,n,l,f){if(j=="reverse"){m.reverse()}m=this.__removeInvalidChars(m,h,j=="repeat"||j=="infinite");if(k){m=this.__applyDefaultValue.call(m,k)}m=this.__applyMask(m,g,f,n);switch(j){case"reverse":m.reverse();return(l||"")+m.join("").substring(m.length-g.length);case"infinite":case"repeat":var i=m.join("");return(e!=-1&&m.length>=e)?i.substring(0,e):i;default:return m.join("").substring(0,g.length)}},__applyDefaultValue:function(g){var e=g.length,f=this.length,h;for(h=f-1;h>=0;h--){if(this[h]==g.charAt(0)){this.pop()}else{break}}for(h=0;h<e;h++){if(!this[h]){this[h]=g.charAt(h)}}return this},__removeInvalidChars:function(h,g,e){for(var f=0,j=0;f<h.length;f++){if(g[j]&&this.rules[g[j]]&&!this.rules[g[j]].test(h[f])){h.splice(f,1);if(!e){j--}f--}if(!e){j++}}return h},__applyMask:function(h,f,j,e){if(typeof j=="undefined"){j=0}for(var g=0;g<h.length+j;g++){if(f[g]&&e.test(f[g])){h.splice(g,0,f[g])}}return h},__extraPositionsTill:function(h,f,e){var g=0;while(e.test(f[h++])){g++}return g},__getNextInput:function(o,f){var j=o.form.elements,h=d.inArray(o,j)+1,n=null,k;for(k=h;k<j.length;k++){n=d(j[k]);if(this.__isNextInput(n,f)){return n}}var e=document.forms,g=d.inArray(o.form,e)+1,m,l=null;for(m=g;m<e.length;m++){l=e[m].elements;for(k=0;k<l.length;k++){n=d(l[k]);if(this.__isNextInput(n,f)){return n}}}return null},__isNextInput:function(g,e){var f=g.get(0);return f&&(f.offsetWidth>0||f.offsetHeight>0)&&f.nodeName!="FIELDSET"&&(e===true||(typeof e=="string"&&g.is(e)))},__setRange:function(g,h,e){if(typeof e=="undefined"){e=h}if(g.setSelectionRange){g.setSelectionRange(h,e)}else{var f=g.createTextRange();f.collapse();f.moveStart("character",h);f.moveEnd("character",e-h);f.select()}},__getRange:function(f){if(!d.browser.msie){return{start:f.selectionStart,end:f.selectionEnd}}var g={start:0,end:0},e=document.selection.createRange();g.start=0-e.duplicate().moveStart("character",-100000);g.end=g.start+e.text.length;return g},unmaskedVal:function(e){return d(e).val().replace(d.mask.fixedCharsRegG,"")}}});d.fn.extend({setMask:function(e){return d.mask.set(this,e)},unsetMask:function(){return d.mask.unset(this)},unmaskedVal:function(){return d.mask.unmaskedVal(this[0])}})})(jQuery);
