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