/* Input Mask plugin for jquery http://github.com/RobinHerbots/jquery.inputmask Copyright (c) 2010 - 2012 Robin Herbots Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) Version: 1.3.5 */ (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,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]:[],e=l.validator,l=l.cardinality;g.push({fn:e?"string"==typeof e?RegExp(e):new function(){this.test=e}:/./,cardinality:l?l:1,optionality:f,newBlockMarker:!0==f?c:!1,offset:0,casing:i.casing,def:d});!0==f&&(c=!1)}g.push({fn:i.validator?"string"==typeof i.validator?RegExp(i.validator):new function(){this.test=i.validator}:/./,cardinality:i.cardinality,optionality:f,newBlockMarker:c, offset:0,casing:i.casing,def:d})}else g.push({fn:null,cardinality:0,optionality:f,newBlockMarker:c,offset:0,casing:null,def:d}),b=!1;c=!1;return g}})}function G(f,b,c,d){var g=!1;if(0<=f&&fr;h--)k+=t(c,j-(h-1));b&&(k+=b);g=null!=i[j].fn?i[j].fn.test(k,c,f,d,a):!1}setTimeout(function(){a.onKeyValidation.call(this,g,a)},0);return g}function r(f){f=i[f%i.length];return void 0!=f?f.fn:!1}function A(f){return a.placeholder.charAt(f%a.placeholder.length)} function n(){return d.inputmask.getMaskLength(g,a.greedy,a.repeat)}function w(f,a){var c=n();if(a>=c)return c;for(var d=a;++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&&(console.log("before delete "+e),a.numericInput&&a.greedy&&f==a.keyCode.DELETE&&e[o]==a.radixPoint?(o=w(e,o),v=!1):a.numericInput&&(a.greedy&&f==a.keyCode.BACKSPACE&&e[o]==a.radixPoint)&&(o--,v=!0),v?(o=z(H,o,A(o),!0),o=a.numericInput&&a.greedy&& f==a.keyCode.BACKSPACE&&e[o+1]==a.radixPoint?o+1:w(e,o)):o=s(o,h),x(c,e,o))}c._valueGet()==g.join("")&&d(c).trigger("cleared");b.preventDefault()}else f==a.keyCode.END||f==a.keyCode.PAGE_DOWN?setTimeout(function(){var d=m(c,e,!1,!0);!a.insertMode&&(d==n()&&!b.shiftKey)&&d--;j(c,b.shiftKey?i.begin:d,d)},0):f==a.keyCode.HOME||f==a.keyCode.PAGE_UP?j(c,0,b.shiftKey?i.begin:0):f==a.keyCode.ESCAPE?(c._valueSet(y),j(c,0,m(c,e))):f==a.keyCode.INSERT?(a.insertMode=!a.insertMode,j(c,!a.insertMode&&i.begin== n()?i.begin-1:i.begin)):b.ctrlKey&&88==f?setTimeout(function(){j(c,m(c,e,!0))},0):a.insertMode||(f==a.keyCode.RIGHT?(h=i.begin==i.end?i.end+1:i.end,h=h=h;)k=0==k?-1:L(e,k);k>=h?z(h,e.length,i):g=!1}else F(e,h,i);g&&(i=w(e,h),x(c,e,i),setTimeout(function(){N(c)&&f.trigger("complete")},0))}else J&&x(c,e,k.begin);b.preventDefault()}}function k(b){var c= d(this),f=b.keyCode;a.onKeyUp.call(this,b,a);f==a.keyCode.TAB&&(c.hasClass("focus.inputmask")&&0==this._valueGet().length)&&(e=g.slice(),x(this,e),v||j(this,0),y=this._valueGet())}var h=d(f);if(h.is(":input")){a.greedy=a.greedy?a.greedy:0==a.repeat;var l=h.prop("maxLength");n()>l&&-1u&&(!1!==G(b,e[b],e,!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 f=d(this),b=this;setTimeout(function(){if(f.data("inputmask")){i=f.data("inputmask").tests; g=f.data("inputmask")._buffer;a.greedy=f.data("inputmask").greedy;a.repeat=f.data("inputmask").repeat;a.definitions=f.data("inputmask").definitions;b._valueSet(T(f,!0));f.removeData("inputmask");f.unbind(".inputmask");f.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 f=d(this).attr("data-inputmask");if(f&&""!=f)try{var f=f.replace(RegExp("'","g"),'"'),b=d.parseJSON("{"+f+"}");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);