/* 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.1.6 */ (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:" ",numericInput:!1,radixPoint:"",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]},val:d.fn.val,escapeRegex:function(d){return d.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\)","gim"),"\\$1")},getMaskLength:function(d,H,u){var B=d.length;!H&&1=h?i[h-1]:[],p=e.validator,e=e.cardinality;d.push({fn:p?"string"==typeof p?RegExp(p):new function(){this.test=p}:/./,cardinality:e?e:1,optionality:c,newBlockMarker:!0==c?j:!1,offset:0,casing:g.casing,def:a});!0==c&&(j=!1)}d.push({fn:g.validator?"string"==typeof g.validator?RegExp(g.validator):new function(){this.test=g.validator}:/./,cardinality:g.cardinality, optionality:c,newBlockMarker:j,offset:0,casing:g.casing,def:a})}else d.push({fn:null,cardinality:0,optionality:c,newBlockMarker:j,offset:0,casing:null,def:a}),f=!1;j=!1;return d}})}function Q(){function a(f,d){var l=d.split(b.optionalmarker.end,2),h,g,i=l[0].split(b.optionalmarker.start);1g;i--)l+=w(f,d-(i-1));c&&(l+=c);return null!=e.tests[d].fn?e.tests[d].fn.test(l,f,a,j,b):!1}if(j)return h(a,v());var g=[],i=!1,k=m;d.each(o,function(d){m=d;var e=a;if(k!=m&&!x(a)){if(c==this._buffer[e]||c==b.skipOptionalPartCharacter)return g[d]={refresh:!0},this.lastValidPosition=e,!1;e=l?J(f,a):y(f,a)}if((l?this.lastValidPosition<=b.numericInput?p():y(f,e):this.lastValidPosition>=J(f,e))&&0<=e&&e=c){m=d;if(m!=b){var d=p(),n=h();j&&(a.reverse(),n.reverse());for(var g=a.length=c;g=b)return b;for(var d=c;++d=b)return 0;for(;0<--b&&!x(b););return b}function I(a,c,b){var d=F()[C(c)],l=b;if(void 0!=l)switch(d.casing){case "upper":l=b.toUpperCase();break;case "lower":l=b.toLowerCase()}a[c]=l}function w(a,c,b){b&&(c=U(a,c));return a[c]}function U(a,c, b){if(b)for(;0>c&&a.length=highestValidPosition&&a.lastValidPosition==d-1){for(var g=!0,i=0;i=L&&(b.numericInput&&v().greedy&&f==b.keyCode.DELETE&&e[s]==b.radixPoint?(s=y(e,s),r=!1):b.numericInput&&(v().greedy&&f==b.keyCode.BACKSPACE&&e[s]==b.radixPoint)&&(s--,r= !0),r?(s=l(L,s,E(s),!0),s=b.numericInput&&v().greedy&&f==b.keyCode.BACKSPACE&&e[s+1]==b.radixPoint?s+1:y(e,s)):s=j(s,i),T(e,s,m),D(c,e,s))}c._valueGet()==h().join("")&&d(c).trigger("cleared");a.preventDefault()}else f==b.keyCode.END||f==b.keyCode.PAGE_DOWN?setTimeout(function(){var d=z(c,e,!1,!0);!b.insertMode&&(d==p()&&!a.shiftKey)&&d--;n(c,a.shiftKey?g.begin:d,d)},0):f==b.keyCode.HOME||f==b.keyCode.PAGE_UP?n(c,0,a.shiftKey?g.begin:0):f==b.keyCode.ESCAPE?(c._valueSet(B),n(c,0,z(c,e))):f==b.keyCode.INSERT? (b.insertMode=!b.insertMode,n(c,!b.insertMode&&g.begin==p()?g.begin-1:g.begin)):a.ctrlKey&&88==f?setTimeout(function(){n(c,z(c,e,!0))},0):b.insertMode||(f==b.keyCode.RIGHT?(i=g.begin==g.end?g.end+1:g.end,i=i=h;)k=0==k?-1:J(e,k);k>=h?l(h,e.length,i):g=!1}else I(e,h,i);g&&(i=y(e,h),D(c,e,i), setTimeout(function(){P(c)&&f.trigger("complete")},0))}else N&&D(c,e,k.begin);a.preventDefault()}}function i(a){var c=d(this),f=a.keyCode;b.onKeyUp.call(this,a,e,b);f==b.keyCode.TAB&&(c.hasClass("focus.inputmask")&&0==this._valueGet().length&&b.showMaskOnFocus)&&(e=h().slice(),D(this,e),r||n(this,0),B=this._valueGet())}var k=d(a);if(k.is(":input")){v().greedy=v().greedy?v().greedy:0==v().repeat;var u=k.prop("maxLength");p()>u&&-1A&&(K(a,e[a],e,true,r)!==false||!x(a))?a:A):n(b,a=parseInt(RegExp(/[0-9]+/).exec(ba));var o,m=0;if("string"==typeof G)switch(G){case "mask":return u(b.alias,H),o=Q(),this.each(function(){X(this)});case "unmaskedvalue":return o=this.data("inputmask").masksets,m=this.data("inputmask").activeMasksetIndex,b.definitions= this.data("inputmask").definitions,Z(this);case "remove":return this.each(function(){var a=d(this),c=this;setTimeout(function(){if(a.data("inputmask")){o=a.data("inputmask").masksets;m=a.data("inputmask").activeMasksetIndex;b.definitions=a.data("inputmask").definitions;c._valueSet(Z(a,!0));a.removeData("inputmask");a.unbind(".inputmask");a.removeClass("focus.inputmask");var d;Object.getOwnPropertyDescriptor&&(d=Object.getOwnPropertyDescriptor(c,"value"));d&&d.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")?(o=this.data("inputmask").masksets,m=this.data("inputmask").activeMasksetIndex,o[m]._buffer.join("")):"";case "hasMaskedValue":return this.data("inputmask")?!this.data("inputmask").autoUnmask:!1;case "isComplete":return o= this.data("inputmask").masksets,m=this.data("inputmask").activeMasksetIndex,b.definitions=this.data("inputmask").definitions,P(this[0]);default:return u(G,H)||(b.mask=G),o=Q(),this.each(function(){X(this)})}else{if("object"==typeof G)return b=d.extend(!0,{},d.inputmask.defaults,G),u(b.alias,G),o=Q(),this.each(function(){X(this)});if(void 0==G)return this.each(function(){var a=d(this).attr("data-inputmask");if(a&&""!=a)try{var a=a.replace(RegExp("'","g"),'"'),c=d.parseJSON("{"+a+"}");b=d.extend(!0, {},d.inputmask.defaults,c);u(b.alias,c);b.alias=void 0;d(this).inputmask(b)}catch(f){}})}return this})})(jQuery);