(function(d){var b=(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,c,false)}else{if(this.attachEvent){this.attachEvent(a,c)}}},teardown:function(){if(this.removeEventListener){this.removeEventListener(a,c,false)}else{if(this.detachEvent){this.detachEvent(a,c)}}}};function c(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=(b)?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,g){var e=this,f=d(i),h="maxLength";g=g||{};this.init();return f.each(function(){if(g.attr){e.options.attr=g.attr}var n=d(this),q=d.extend({},e.options),r=n.attr(q.attr),m="";m=(typeof g=="string")?g:(r!="")?r:null;if(m){q.mask=m}if(e.masks[m]){q=d.extend(q,e.masks[m])}if(typeof g=="object"&&g.constructor!=Array){q=d.extend(q,g)}if(d.metadata){q=d.extend(q,n.metadata())}if(q.mask!=null){if(n.data("mask")){e.unset(n)}var l=q.defaultValue,j=(q.type=="reverse"),k=new RegExp(q.fixedChars,"g");if(q.maxLength==-1){q.maxLength=n.attr(h)}q=d.extend({},q,{fixedCharsReg:new RegExp(q.fixedChars),fixedCharsRegG:k,maskArray:q.mask.split(""),maskNonFixedCharsArray:q.mask.replace(k,"").split("")});if((q.type=="fixed"||j)&&q.setSize&&!n.attr("size")){n.attr("size",q.mask.length)}if(j&&q.textAlign){n.css("text-align","right")}if(this.value!=""||l!=""){var p=e.string((this.value!="")?this.value:l,q);this.defaultValue=p;n.val(p)}if(q.type=="infinite"){q.type="repeat"}n.data("mask",q);n.removeAttr(h);n.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(i,e){this.init();var h={};if(typeof i!="string"){i=String(i)}switch(typeof e){case"string":if(this.masks[e]){h=d.extend(h,this.masks[e])}else{h.mask=e}break;case"object":h=e}if(!h.fixedChars){h.fixedChars=this.options.fixedChars}var g=new RegExp(h.fixedChars),f=new RegExp(h.fixedChars,"g");if((h.type=="reverse")&&h.defaultValue){if(typeof this.signals[h.defaultValue.charAt(0)]!="undefined"){var j=i.charAt(0);h.signal=(typeof this.signals[j]!="undefined")?this.signals[j]:this.signals[h.defaultValue.charAt(0)];h.defaultValue=h.defaultValue.substring(1)}}return this.__maskArray(i.split(""),h.mask.replace(f,"").split(""),h.mask.split(""),h.type,h.maxLength,h.defaultValue,g,h.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 b?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,i=f.value,l=f.data.maskArray;if(f.reverse){var h=i.substr(0,q),g=i.substr(f.range.end,i.length);i=h+n+g;if(f.data.signal&&(q-f.data.signal.length>0)){q-=f.data.signal.length}}var p=i.replace(f.data.fixedCharsRegG,"").split(""),k=this.__extraPositionsTill(q,l,f.data.fixedCharsReg);f.rsEp=q+k;if(f.repeat){f.rsEp=0}if(!this.rules[l[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[l[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 j=this.__maskArray(p,f.data.maskNonFixedCharsArray,l,f.data.type,f.data.maxLength,f.data.defaultValue,f.data.fixedCharsReg,f.data.signal,k);f.$this.val(j);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(l,g,j,k,h,f,m,n,i){if(k=="reverse"){l.reverse()}l=this.__removeInvalidChars(l,g,k=="repeat"||k=="infinite");if(f){l=this.__applyDefaultValue.call(l,f)}l=this.__applyMask(l,j,i,m);switch(k){case"reverse":l.reverse();return(n||"")+l.join("").substring(l.length-j.length);case"infinite":case"repeat":var e=l.join("");return(h!=-1&&l.length>=h)?e.substring(0,h):e;default:return l.join("").substring(0,j.length)}return""},__applyDefaultValue:function(g){var h=g.length,f=this.length,e;for(e=f-1;e>=0;e--){if(this[e]==g.charAt(0)){this.pop()}else{break}}for(e=0;e<h;e++){if(!this[e]){this[e]=g.charAt(e)}}return this},__removeInvalidChars:function(h,f,e){for(var g=0,j=0;g<h.length;g++){if(f[j]&&this.rules[f[j]]&&!this.rules[f[j]].test(h[g])){h.splice(g,1);if(!e){j--}g--}if(!e){j++}}return h},__applyMask:function(g,f,j,h){if(typeof j=="undefined"){j=0}for(var e=0;e<g.length+j;e++){if(f[e]&&h.test(f[e])){g.splice(e,0,f[e])}}return g},__extraPositionsTill:function(e,g,h){var f=0;while(h.test(g[e++])){f++}return f},__getNextInput:function(o,f){var h=o.form.elements,g=d.inArray(o,h)+1,n=null,k;for(k=g;k<h.length;k++){n=d(h[k]);if(this.__isNextInput(n,f)){return n}}var e=document.forms,j=d.inArray(o.form,e)+1,m,l=null;for(m=j;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);
