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