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