/* 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.2.12 */ (function(e){void 0==e.fn.inputmask&&(e.inputmask={defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},escapeChar:"\\",mask:null,oncomplete:e.noop,onincomplete:e.noop,oncleared:e.noop,repeat:0,greedy:!0,autoUnmask:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,aliases:{},onKeyUp:e.noop,onKeyDown:e.noop,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:e.noop,skipOptionalPartCharacter:" ",showTooltip:!1,numericInput:!1,radixPoint:"",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(e,D,P){var M=e.length;!D&&1=j?n[j-1]:[],m=d.validator,d=d.cardinality;e.push({fn:m?"string"==typeof m?RegExp(m):new function(){this.test=m}:/./,cardinality:d?d:1,optionality:c,newBlockMarker:!0==c?k:!1,offset:0,casing:g.casing,def:g.definitionSymbol|a});!0==c&&(k=!1)}e.push({fn:g.validator?"string"==typeof g.validator?RegExp(g.validator): new function(){this.test=g.validator}:/./,cardinality:g.cardinality,optionality:c,newBlockMarker:k,offset:0,casing:g.casing,def:g.definitionSymbol|a})}else e.push({fn:null,cardinality:0,optionality:c,newBlockMarker:k,offset:0,casing:null,def:a}),f=!1;k=!1;return e}})}function X(){function a(a){var c=a.length;for(i=0;il;g--)h+=A(f,e-(g-1));c&&(h+=c);return null!=d.tests[e].fn?d.tests[e].fn.test(h,f,a,k,b):!1}if(k){var g=m(a,t());if(!1!==g){!0===g&&(g={pos:a});var n=t(),h=g.pos||a;if(void 0==n.lastValidPosition||n.lastValidPosition=H(f,e))&&0<=e&&e=c)return q=f,w(void 0,a,!1,!1,a.join(""),k),!1})}function y(a){a=B(a);a=F()[a];return void 0!=a?a.fn:!1}function B(a){return a%F().length}function E(a){return b.placeholder.charAt(a%b.placeholder.length)}function s(a){return b.getMaskLength(m(),t().greedy,t().repeat,a,b)}function v(a,c){var b=s(a);if(c>=b)return b;for(var e=c;++e=b)return 0;for(;0<--b&&!y(b););return b}function L(a,c,b,e,l){e&&(c=Y(a,c,l));e=F()[B(c)];l=b;if(void 0!=l)switch(e.casing){case "upper":l=b.toUpperCase();break;case "lower":l=b.toLowerCase()}a[c]=l}function A(a,c,b){b&&(c=Y(a,c));return a[c]}function Y(a,c,b){if(b)for(;0>c&&a.lengthm().length){h=U(c.join(""),p).split("");g=h.length;for(d=0;d=f&&k.lastValidPosition==g){for(var n=!0,h=0;h<=g;h++){var j=y(h),d=B(h);if(j&&(void 0== a[h]||a[h]==E(h))||!j&&a[h]!=m()[d]){n=!1;break}}if(b=b||n)return!1}f=k.lastValidPosition});q=k;return b}function $(a){function c(a){a=e._data(a).events;e.each(a,function(a,b){e.each(b,function(a,b){if("inputmask"==b.namespace){var d=b.handler;b.handler=function(){return this.readOnly||this.disabled?!1:d.apply(this,arguments)}}})})}function f(a){var b;Object.getOwnPropertyDescriptor&&(b=Object.getOwnPropertyDescriptor(a,"value"));if(b&&b.get)a._valueGet||(a._valueGet=b.get,a._valueSet=b.set,Object.defineProperty(a, "value",{get:function(){var a=e(this),b=e(this).data("inputmask"),d=b.masksets,c=b.activeMasksetIndex;return b&&b.opts.autoUnmask?a.inputmask("unmaskedvalue"):this._valueGet()!=d[c]._buffer.join("")?this._valueGet():""},set:function(a){this._valueSet(a);e(this).triggerHandler("setvalue.inputmask")}}));else if(document.__lookupGetter__&&a.__lookupGetter__("value"))a._valueGet||(a._valueGet=a.__lookupGetter__("value"),a._valueSet=a.__lookupSetter__("value"),a.__defineGetter__("value",function(){var a= e(this),b=e(this).data("inputmask"),d=b.masksets,c=b.activeMasksetIndex;return b&&b.opts.autoUnmask?a.inputmask("unmaskedvalue"):this._valueGet()!=d[c]._buffer.join("")?this._valueGet():""}),a.__defineSetter__("value",function(a){this._valueSet(a);e(this).triggerHandler("setvalue.inputmask")}));else if(a._valueGet||(a._valueGet=function(){return this.value},a._valueSet=function(a){this.value=a}),!0!=e.fn.val.inputmaskpatch)e.fn.val=function(){if(arguments.length==0){var a=e(this);if(a.data("inputmask")){if(a.data("inputmask").opts.autoUnmask)return a.inputmask("unmaskedvalue"); var a=e.inputmask.val.apply(a),b=e(this).data("inputmask");return a!=b.masksets[b.activeMasksetIndex]._buffer.join("")?a:""}return e.inputmask.val.apply(a)}var d=arguments;return this.each(function(){var a=e(this),b=e.inputmask.val.apply(a,d);a.data("inputmask")&&a.triggerHandler("setvalue.inputmask");return b})},e.extend(e.fn.val,{inputmaskpatch:!0})}function k(a,d){if(b.numericInput&&""!=b.radixPoint){var e=a._valueGet().indexOf(b.radixPoint);r=d.begin<=e||d.end<=e||-1==e}}function l(a,b,e){for(;!y(a)&& 0<=a-1;)a--;for(var c=a;cn?(o-=1,b.numericInput&&""!=b.radixPoint&&d[o]==b.radixPoint?(o=z(n,d.length-1==o?o:o-1,E(o),!0),o++):r?(o=z(n,o,E(o),!0),o=d[o+1]==b.radixPoint?o+1:v(d,o)):o=l(o,g),S(d,o,q,r),t().lastValidPosition=o,C(c,d,o)):0=g;)k=0==k?-1:H(d,k);k>=g?z(g,d.length,h):f=!1}else L(d,g,h,!0,r);f&&(h=v(d,g),C(this,d,h),setTimeout(function(){Q(d)&&c.trigger("complete")},0))}V&&p(this,P,M);b.showTooltip&&c.prop("title",t().mask); a.preventDefault()}}function h(a){var c=e(this),f=a.keyCode;b.onKeyUp.call(this,a,d,b);f==b.keyCode.TAB&&(c.hasClass("focus.inputmask")&&0==this._valueGet().length&&b.showMaskOnFocus)&&(d=m().slice(),C(this,d),r||p(this,0),D=this._valueGet())}var j=e(a);if(j.is(":input")){b.showTooltip&&j.prop("title",t().mask);var d=m().slice();t().greedy=t().greedy?t().greedy:0==t().repeat;var J=j.prop("maxLength");s(d)>J&&-1K&&(G(c,d[c],d,true,r)!==false||!y(c))?c:K):p(a,c=parseInt(RegExp(/[0-9]+/).exec(fa))}var x,q=0;if("string"==typeof z)switch(z){case "mask":return I(b.alias,D),x=X(),this.each(function(){$(this)});case "unmaskedvalue":return x=this.data("inputmask").masksets,q=this.data("inputmask").activeMasksetIndex,b=this.data("inputmask").opts,ba(this); case "remove":return this.each(function(){var a=e(this),c=this;setTimeout(function(){if(a.data("inputmask")){x=a.data("inputmask").masksets;q=a.data("inputmask").activeMasksetIndex;b=a.data("inputmask").opts;c._valueSet(ba(a,!0));a.removeData("inputmask");a.unbind(".inputmask");a.removeClass("focus.inputmask");var e;Object.getOwnPropertyDescriptor&&(e=Object.getOwnPropertyDescriptor(c,"value"));e&&e.get?c._valueGet&&Object.defineProperty(c,"value",{get:c._valueGet,set:c._valueSet}):document.__lookupGetter__&& c.__lookupGetter__("value")&&c._valueGet&&(c.__defineGetter__("value",c._valueGet),c.__defineSetter__("value",c._valueSet));delete c._valueGet;delete c._valueSet}},0)});case "getemptymask":return this.data("inputmask")?(x=this.data("inputmask").masksets,q=this.data("inputmask").activeMasksetIndex,x[q]._buffer.join("")):"";case "hasMaskedValue":return this.data("inputmask")?!this.data("inputmask").opts.autoUnmask:!1;case "isComplete":return x=this.data("inputmask").masksets,q=this.data("inputmask").activeMasksetIndex, b=this.data("inputmask").opts,Q(this[0]._valueGet().split(""));default:return I(z,D)||(b.mask=z),x=X(),this.each(function(){$(this)})}else{if("object"==typeof z)return b=e.extend(!0,{},e.inputmask.defaults,z),I(b.alias,z),x=X(),this.each(function(){$(this)});if(void 0==z)return this.each(function(){var a=e(this).attr("data-inputmask");if(a&&""!=a)try{var a=a.replace(RegExp("'","g"),'"'),c=e.parseJSON("{"+a+"}");b=e.extend(!0,{},e.inputmask.defaults,c);I(b.alias,c);b.alias=void 0;e(this).inputmask(b)}catch(f){}})}return this})})(jQuery);