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