/* Input Mask plugin for jquery http://github.com/RobinHerbots/jquery.inputmask Copyright (c) 2010 - 2013 Robin Herbots Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) Version: 2.3.15 */ (function(c){void 0==c.fn.inputmask&&(c.inputmask={defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},escapeChar:"\\",mask:null,oncomplete:c.noop,onincomplete:c.noop,oncleared:c.noop,repeat:0,greedy:!0,autoUnmask:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,aliases:{},onKeyUp:c.noop,onKeyDown:c.noop,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:c.noop,skipOptionalPartCharacter:" ",showTooltip:!1,numericInput:!1,isNumeric:!1,radixPoint:"",skipRadixDance:!1,rightAlignNumerics:!0, definitions:{9:{validator:"[0-9]",cardinality:1},a:{validator:"[A-Za-z\u0410-\u044f\u0401\u0451]",cardinality:1},"*":{validator:"[A-Za-z\u0410-\u044f\u0401\u04510-9]",cardinality:1}},keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190, RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91},ignorables:[9,13,19,27,33,34,35,36,37,38,39,40,45,46,93,112,113,114,115,116,117,118,119,120,121,122,123],getMaskLength:function(c,x,A,I){var G=c.length;x||("*"==A?G=I.length+1:1=q?t[q-1]:[],w=o.validator,o=o.cardinality;j.push({fn:w?"string"==typeof w?RegExp(w):new function(){this.test=w}:/./,cardinality:o?o:1,optionality:e,newBlockMarker:!0==e?f:!1,offset:0,casing:d.casing,def:d.definitionSymbol|c}); !0==e&&(f=!1)}j.push({fn:d.validator?"string"==typeof d.validator?RegExp(d.validator):new function(){this.test=d.validator}:/./,cardinality:d.cardinality,optionality:e,newBlockMarker:f,offset:0,casing:d.casing,def:d.definitionSymbol|c})}else j.push({fn:null,cardinality:0,optionality:e,newBlockMarker:f,offset:0,casing:null,def:c}),a=!1;f=!1;return j}})}function L(){function d(a){var c=a.length;for(i=0;id;g--)e+=z(C,s-(g-1)); E&&(e+=E);return null!=c.tests[s].fn?c.tests[s].fn.test(e,C,a,k,b):!1}if(k=!0===k){var C=j(s,a());!0===C&&(C={pos:s});return C}var f=[],C=!1,m=e;c.each(d,function(c){e=c;var k=s;if(m!=e&&!l(s)){if(E==g()[k]||E==b.skipOptionalPartCharacter)return f.push({activeMasksetIndex:c,result:{refresh:!0,c:g()[k]}}),a().lastValidPosition=k,!1;d[m].lastValidPosition>=k?a().lastValidPosition=-1:k=w(s)}if((void 0==a().lastValidPosition&&k==w(-1)||a().lastValidPosition>=u(k))&&0<=k&&kE.lastValidPosition&&(E.activeMasksetIndex=a,E.lastValidPosition=this.lastValidPosition)});e=E.activeMasksetIndex;b!=e&&(G(j(),w(E.lastValidPosition),o()),a().writeOutBuffer=!0)}function l(a){a= q(a);a=f()[a];return void 0!=a?a.fn:!1}function q(a){return a%f().length}function o(){return b.getMaskLength(g(),a().greedy,a().repeat,j(),b)}function w(a){var c=o();if(a>=c)return c;for(;++a=a)return 0;for(;0<--a&&!l(a););return a}function D(a,c,b,d){d&&(c=A(a,c));var d=f()[q(c)],e=b;if(void 0!=e)switch(d.casing){case "upper":e=b.toUpperCase();break;case "lower":e=b.toLowerCase()}a[c]=e}function z(a,c,b){b&&(c=A(a,c));return a[c]}function A(a,c){for(var b;void 0== a[c]&&a.length=j&&d.lastValidPosition==f){for(var m=!0,p=0;p<=f;p++){var t=l(p), w=q(p);if(t&&(void 0==a[p]||a[p]==K(p))||!t&&a[p]!=g()[w]){m=!1;break}}if(b=b||m)return!1}j=d.lastValidPosition});e=f;return b}var J=!1;this.unmaskedvalue=function(a,c){J=a.data("_inputmask").isRTL;return R(a,c)};this.isComplete=function(a){return O(a)};this.mask=function(s){function E(a){a=c._data(a).events;c.each(a,function(a,b){c.each(b,function(a,c){if("inputmask"==c.namespace){var b=c.handler;c.handler=function(a){if(this.readOnly||this.disabled)a.preventDefault;else return b.apply(this,arguments)}}})})} function k(a){var b;Object.getOwnPropertyDescriptor&&(b=Object.getOwnPropertyDescriptor(a,"value"));if(b&&b.get){if(!a._valueGet){var d=b.get,e=b.set;a._valueGet=function(){return J?d.call(this).split("").reverse().join(""):d.call(this)};a._valueSet=function(a){e.call(this,J?a.split("").reverse().join(""):a)};Object.defineProperty(a,"value",{get:function(){var a=c(this),b=c(this).data("_inputmask"),d=b.masksets,e=b.activeMasksetIndex;return b&&b.opts.autoUnmask?a.inputmask("unmaskedvalue"):this._valueGet()!= d[e]._buffer.join("")?this._valueGet():""},set:function(a){this._valueSet(a);c(this).triggerHandler("setvalue.inputmask")}})}}else if(document.__lookupGetter__&&a.__lookupGetter__("value"))a._valueGet||(d=a.__lookupGetter__("value"),e=a.__lookupSetter__("value"),a._valueGet=function(){return J?d.call(this).split("").reverse().join(""):valueGetvalueGet.call(this)},a._valueSet=function(a){e.call(this,J?a.split("").reverse().join(""):a)},a.__defineGetter__("value",function(){var a=c(this),b=c(this).data("_inputmask"), d=b.masksets,e=b.activeMasksetIndex;return b&&b.opts.autoUnmask?a.inputmask("unmaskedvalue"):this._valueGet()!=d[e]._buffer.join("")?this._valueGet():""}),a.__defineSetter__("value",function(a){this._valueSet(a);c(this).triggerHandler("setvalue.inputmask")}));else if(a._valueGet||(a._valueGet=function(){return J?this.value.split("").reverse().join(""):this.value},a._valueSet=function(a){this.value=J?a.split("").reverse().join(""):a}),!0!=c.fn.val.inputmaskpatch)c.fn.val=function(){if(arguments.length== 0){var a=c(this);if(a.data("_inputmask")){if(a.data("_inputmask").opts.autoUnmask)return a.inputmask("unmaskedvalue");var a=c.inputmask.val.apply(a),b=c(this).data("_inputmask");return a!=b.masksets[b.activeMasksetIndex]._buffer.join("")?a:""}return c.inputmask.val.apply(a)}var d=arguments;return this.each(function(){var a=c(this),b=c.inputmask.val.apply(a,d);a.data("_inputmask")&&a.triggerHandler("setvalue.inputmask");return b})},c.extend(c.fn.val,{inputmaskpatch:!0})}function A(b,c,d){for(var e= j();!l(b)&&0<=b-1;)b--;for(var h=b;hd){if(h-=1,b.isNumeric&&""!=b.radixPoint&&c[h]==b.radixPoint?(h=C(0,c.length-1==h?h:h-1,K(h),!0),h++): h=A(h,f),void 0!=a().lastValidPosition)-1!=a().lastValidPosition&&j()[a().lastValidPosition]==g()[a().lastValidPosition]&&(a().lastValidPosition=0==a().lastValidPosition?-1:u(a().lastValidPosition)),a().lastValidPositionk.begin&&a().lastValidPosition=x;)f=f==0?-1:u(f);if(f>=x){C(x,g.length,q);g=a().lastValidPosition;f=w(g);f!=o()&&(g>=x&&z(j(),f)!=K(f))&&(a().lastValidPosition=f)}else a().writeOutBuffer=false}else D(g,x,q,true);a().p=w(x)}});!0!==h&&t();if(!1!==v&&(c.each(n,function(a,b){if(b.activeMasksetIndex==e){s=b;return false}}),void 0!=s)){var J=this;setTimeout(function(){b.onKeyValidation.call(J,s.result,b)},0);if(a().writeOutBuffer&&!1!==s.result){var I=j();B(this,I,g?void 0:b.numericInput?u(a().p):a().p);!0!==g&&setTimeout(function(){O(I)&& p.trigger("complete")},0)}else r&&(a().buffer=a().undoBuffer.split(""))}b.showTooltip&&p.prop("title",a().mask);f.preventDefault()}}function R(d){var e=c(this),f=d.keyCode,k=j(),h=y(this);b.onKeyUp.call(this,d,k,b);y(this,h.begin,h.end);f==b.keyCode.TAB&&(e.hasClass("focus.inputmask")&&0==this._valueGet().length&&b.showMaskOnFocus)&&(k=g().slice(),B(this,k),y(this,0),a().undoBuffer=this._valueGet())}var p=c(s);if(p.is(":input")){p.data("_inputmask",{masksets:d,activeMasksetIndex:e,opts:b,isRTL:!1}); b.showTooltip&&p.prop("title",a().mask);a().greedy=a().greedy?a().greedy:0==a().repeat;if(null!=p.attr("maxLength")){var M=p.prop("maxLength");-1M&&-1=parseInt(RegExp(/[0-9]+/).exec(D))); if("string"===typeof B)switch(B){case "mask":return A(b.alias,x),u=L(),this.each(function(){H(c.extend(true,{},u),0).mask(this)});case "unmaskedvalue":return D=c(this),D.data("_inputmask")?(u=D.data("_inputmask").masksets,z=D.data("_inputmask").activeMasksetIndex,b=D.data("_inputmask").opts,H(u,z).unmaskedvalue(D)):D.val();case "remove":return this.each(function(){var d=c(this);if(d.data("_inputmask")){u=d.data("_inputmask").masksets;z=d.data("_inputmask").activeMasksetIndex;b=d.data("_inputmask").opts; this._valueSet(H(u,z).unmaskedvalue(d,true));d.removeData("_inputmask");d.unbind(".inputmask");d.removeClass("focus.inputmask");var e;Object.getOwnPropertyDescriptor&&(e=Object.getOwnPropertyDescriptor(this,"value"));if(e&&e.get)this._valueGet&&Object.defineProperty(this,"value",{get:this._valueGet,set:this._valueSet});else if(document.__lookupGetter__&&this.__lookupGetter__("value")&&this._valueGet){this.__defineGetter__("value",this._valueGet);this.__defineSetter__("value",this._valueSet)}try{delete this._valueGet; delete this._valueSet}catch(a){this._valueSet=this._valueGet=void 0}}});case "getemptymask":return this.data("_inputmask")?(u=this.data("_inputmask").masksets,z=this.data("_inputmask").activeMasksetIndex,u[z]._buffer.join("")):"";case "hasMaskedValue":return this.data("_inputmask")?!this.data("_inputmask").opts.autoUnmask:!1;case "isComplete":return u=this.data("_inputmask").masksets,z=this.data("_inputmask").activeMasksetIndex,b=this.data("_inputmask").opts,H(u,z).isComplete(this[0]._valueGet().split("")); default:return A(B,x)||(b.mask=B),u=L(),this.each(function(){H(c.extend(true,{},u),z).mask(this)})}else{if("object"==typeof B)return b=c.extend(!0,{},c.inputmask.defaults,B),A(b.alias,B),u=L(),this.each(function(){H(c.extend(true,{},u),z).mask(this)});if(void 0==B)return this.each(function(){var d=c(this).attr("data-inputmask");if(d&&d!="")try{var d=d.replace(RegExp("'","g"),'"'),e=c.parseJSON("{"+d+"}");c.extend(true,e,x);b=c.extend(true,{},c.inputmask.defaults,e);A(b.alias,e);b.alias=void 0;c(this).inputmask(b)}catch(a){}})}return this})})(jQuery);