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