/* Input Mask plugin for jquery http://github.com/RobinHerbots/jquery.inputmask Copyright (c) 2010 Robin Herbots Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) Version: 0.5.8 This plugin is based on the masked input plugin written by Josh Bush (digitalbush.com) */ ;(function(c){void 0==c.fn.inputmask&&(c.inputmask={defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},escapeChar:"\\",mask:null,oncomplete:null,onincomplete:null,oncleared:null,repeat:0,greedy:!0,autoUnmask:!1,numericInput:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,aliases:{},definitions:{9:{validator:"[0-9]",cardinality:1},a:{validator:"[A-Za-z]",cardinality:1},"*":{validator:"[A-Za-z0-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:[8,9,13,16,17,18,20,27,33,34,35,36,37,38,39,40,46,91,93,108]},val:c.fn.val},c.fn.inputmask=function(a,o){function b(e){return(e=d.aliases[e])?(e.alias&&b(e.alias),c.extend(!0,d,e),c.extend(!0, d,o),!0):!1}function n(){var e=!1,y=0;1==d.mask.length&&!1==d.greedy&&(d.placeholder="");for(var A=c.map(d.mask.split(""),function(g){var A=[];if(g==d.escapeChar)e=true;else if(g!=d.optionalmarker.start&&g!=d.optionalmarker.end||e){var f=d.definitions[g];if(f&&!e)for(a=0;a=i?j[i-1]:[],o=h.validator,h=h.cardinality;c.push({fn:o?"string"==typeof o?RegExp(o):new function(){this.test=o}:/./,cardinality:h?h:1,optionality:e,newBlockMarker:!0==e?a:!1,offset:0,casing:b.casing,def:g});!0==e&&(a=!1)}c.push({fn:b.validator?"string"==typeof b.validator? RegExp(b.validator):new function(){this.test=b.validator}:/./,cardinality:b.cardinality,optionality:e,newBlockMarker:a,offset:0,casing:b.casing,def:g})}else c.push({fn:null,cardinality:0,optionality:e,newBlockMarker:a,offset:0,casing:null,def:g}),y=!1;a=!1;return c}})}function h(e,a,b,g){if(0>e||e>=s())return!1;for(var c=e%k.length,h=a?1:0,j="",f=k[c].cardinality;f>h;f--)j+=b[c-(f-1)];a&&(j+=a);return null!=k[c].fn?k[c].fn.test(j,b,e,g,d):!1}function l(e){e=k[e%k.length];return void 0!=e?e.fn:!1} function v(e){return d.placeholder.charAt(e%d.placeholder.length)}function s(){var e=m.length;!d.greedy&&1=d)return d;for(var g=a;++g=a)return 0;for(;0<--a&&!l(a););return a}function B(e,a,d){var g=d;switch(k[a%k.length].casing){case "upper":g=d.toUpperCase();break;case "lower":g=d.toLowerCase()}e[a]=g}function J(e,a,d){var g=0;if(d)for(;0>a&&e.length=q&&(u?(k=g(q,k,v(0),!0),k=z(f,k)):k=j(k,l),w(b,f,k))}d.oncleared&&b._valueGet()==m.join("")&&d.oncleared.call(b);return!1}if(e==d.keyCode.END||e==d.keyCode.PAGE_DOWN)return setTimeout(function(){var e=x(b,f,!1);!d.insertMode&&(e==s()&&!a.shiftKey)&&e--;p(b,a.shiftKey?h.begin:e,e)},0),!1;if(e==d.keyCode.HOME||e==d.keyCode.PAGE_UP)return p(b,0,a.shiftKey?h.begin:0),!1;if(e==d.keyCode.ESCAPE)return b._valueSet(F),p(b,0,x(b,f)),!1;if(e==d.keyCode.INSERT)return d.insertMode= !d.insertMode,p(b,!d.insertMode&&h.begin==s()?h.begin-1:h.begin),!1;if(a.ctrlKey&&88==e)setTimeout(function(){p(b,x(b,f,!0))},0);else if(!d.insertMode){if(e==d.keyCode.RIGHT)return e=h.begin==h.end?h.end+1:h.end,e=et&&(!1!==h(b,f[b],f,!0)|| !l(b))?b:t):p(a,b=parseInt(RegExp(/[0-9]+/).exec(P)); if("string"==typeof a)switch(a){case "mask":var m=n(),k=j();return this.each(function(){C(this)});case "unmaskedvalue":return k=this.data("inputmask").tests,m=this.data("inputmask")._buffer,d.greedy=this.data("inputmask").greedy,d.repeat=this.data("inputmask").repeat,d.definitions=this.data("inputmask").definitions,M(this);case "remove":return this.each(function(){var a=c(this);a.data("inputmask")&&(k=a.data("inputmask").tests,m=a.data("inputmask")._buffer,d.greedy=a.data("inputmask").greedy,d.repeat= a.data("inputmask").repeat,d.definitions=a.data("inputmask").definitions,this._valueSet(M(a,!0)),a.removeData("inputmask"),a.unbind(".inputmask"),a.removeClass("focus.inputmask"),document.__lookupGetter__&&this._valueGet&&(this.__defineGetter__("value",this._valueGet),this.__defineSetter__("value",this._valueSet),delete this._valueGet,delete this._valueSet))});case "getemptymask":return this.data("inputmask")?this.data("inputmask")._buffer.join(""):"";default:return b(a)||(d.mask=a),m=n(),k=j(),this.each(function(){C(this)})}if("object"== typeof a)return d=c.extend(!0,{},c.inputmask.defaults,a),m=n(),k=j(),this.each(function(){C(this)})})})(jQuery); (function(c){c.extend(c.inputmask.defaults.definitions,{A:{validator:"[A-Za-z]",cardinality:1,casing:"upper"}});c.extend(c.inputmask.defaults.definitions,{h:{validator:"[01][0-9]|2[0-3]",cardinality:2,prevalidator:[{validator:"[0-2]",cardinality:1}]},s:{validator:"[0-5][0-9]",cardinality:2,prevalidator:[{validator:"[0-5]",cardinality:1}]},d:{validator:"0[1-9]|[12][0-9]|3[01]",cardinality:2,prevalidator:[{validator:"[0-3]",cardinality:1}]},m:{validator:"0[1-9]|1[012]",cardinality:2,prevalidator:[{validator:"[01]", cardinality:1}]},y:{validator:"(19|20)\\d{2}",cardinality:4,prevalidator:[{validator:"[12]",cardinality:1},{validator:"(19|20)",cardinality:2},{validator:"(19|20)\\d",cardinality:3}]}});c.extend(c.inputmask.defaults.aliases,{"dd/mm/yyyy":{mask:"d/m/y",placeholder:"dd/mm/yyyy",regex:{monthpre:/[01]/,month:/((0[1-9]|[12][0-9])\/(0[1-9]|1[012]))|(30\/(0[13-9]|1[012]))|(31\/(0[13578]|1[02]))/,year:/(19|20)\d{2}/,daypre:/[0-3]/,day:/0[1-9]|[12][0-9]|3[01]/},definitions:{d:{validator:function(a,c,b,n,j){var h= j.regex.day.test(a);return!n&&!h&&"/"==a.charAt(1)&&(h=j.regex.day.test("0"+a.charAt(0)))?(c[b-1]="0",c[b]=a.charAt(0),b++,b):h},cardinality:2,prevalidator:[{validator:function(a,c,b,n,j){var h=j.regex.daypre.test(a);return!n&&!h&&(h=j.regex.day.test("0"+a))?(c[b]="0",b++,b):h},cardinality:1}]},m:{validator:function(a,c,b,n,j){var h=c.join("").substr(0,3),l=j.regex.month.test(h+a);return!n&&!l&&"/"==a.charAt(1)&&(l=j.regex.month.test(h+"0"+a.charAt(0)))?(c[b-1]="0",c[b]=a.charAt(0),b++,b):l},cardinality:2, prevalidator:[{validator:function(a,c,b,n,j){var h=j.regex.monthpre.test(a);return!n&&!h&&(n=c.join("").substr(0,3),h=j.regex.month.test(n+"0"+a))?(c[b]="0",b++,b):h},cardinality:1}]},y:{validator:function(a,c,b,n,j){if(j.regex.year.test(a)){if("29/02/"!=c.join("").substr(0,6))return!0;a=parseInt(a);return 0==a%4?0==a%100?0==a%400?!0:!1:!0:!1}return!1},cardinality:4,prevalidator:[{validator:"[12]",cardinality:1},{validator:"(19|20)",cardinality:2},{validator:"(19|20)\\d",cardinality:3}]}},insertMode:!1, autoUnmask:!1},"mm/dd/yyyy":{mask:"m/d/y",placeholder:"mm/dd/yyyy",regex:{day:/((0[1-9]|1[012])\/(0[1-9]|[12][0-9]))|((0[13-9]|1[012])\/30)|((0[13578]|1[02])\/31)/,daypre:/((0[13-9]|1[012])\/[0-3])|(02\/[0-2])/,month:/0[1-9]|1[012]/,monthpre:/[01]/,year:/(19|20)\d{2}/},definitions:{d:{validator:function(a,c,b,n,j){var h=c.join("").substr(0,3),l=j.regex.day.test(h+a);return!n&&!l&&"/"==a.charAt(1)&&(l=j.regex.day.test(h+"0"+a.charAt(0)))?(c[b-1]="0",c[b]=a.charAt(0),b++,b):l},cardinality:2,prevalidator:[{validator:function(a, c,b,n,j){var h=c.join("").substr(0,3),l=j.regex.daypre.test(h+a);return!n&&!l&&(l=j.regex.day.test(h+"0"+a))?(c[b]="0",b++,b):l},cardinality:1}]},m:{validator:function(a,c,b,n,j){var h=j.regex.month.test(a);return!n&&!h&&"/"==a.charAt(1)&&(h=j.regex.month.test("0"+a.charAt(0)))?(c[b-1]="0",c[b]=a.charAt(0),b++,b):h},cardinality:2,prevalidator:[{validator:function(a,c,b,n,j){var h=j.regex.monthpre.test(a);return!n&&!h&&(h=j.regex.month.test("0"+a))?(c[b]="0",b++,b):h},cardinality:1}]},y:{validator:function(a, c,b,n,j){if(j.regex.year.test(a)){if("02/29/"!=c.join("").substr(0,6))return!0;a=parseInt(a);return 0==a%4?0==a%100?0==a%400?!0:!1:!0:!1}return!1},cardinality:4,prevalidator:[{validator:"[12]",cardinality:1},{validator:"(19|20)",cardinality:2},{validator:"(19|20)\\d",cardinality:3}]}},insertMode:!1,autoUnmask:!1},"hh:mm:ss":{mask:"h:s:s",autoUnmask:!1},"hh:mm":{mask:"h:s",autoUnmask:!1},date:{alias:"dd/mm/yyyy"},datetime:{mask:"d/m/y h:s",placeholder:"dd/mm/yyyy hh:mm",alias:"date"}});c.extend(c.inputmask.defaults, {radixPoint:".",digits:"*",groupSeparator:",",groupSize:3});c.extend(c.inputmask.defaults.aliases,{decimal:{mask:"~",placeholder:"",repeat:10,greedy:!1,numericInput:!0,regex:{number:function(a,c){return RegExp("^[+-\\d]{1}\\d*["+a+"]?\\d"+c+"$")}},definitions:{"~":{validator:function(a,c,b,n,j){function h(){return isNaN(j.digits)?j.digits:"{0,"+j.digits+"}"}var l=c.slice();l.splice(b,0,a);var l=l.join(""),v=j.regex.number(j.radixPoint,h()).test(l);if(!v)if(n)l=c.slice(0,b),l.splice(b,0,a),l=l.join(""), v=j.regex.number(j.radixPoint,h()).test(l);else if(l==j.radixPoint&&(v=j.regex.number(j.radixPoint,h()).test("0"+l)))return c[b]="0",b++,b;return v},cardinality:1,prevalidator:null}},insertMode:!0},"non-negative-decimal":{regex:{number:function(a,c){return RegExp("^\\d+["+a+"]?\\d"+c+"$")}},alias:"decimal"},integer:{regex:{number:function(){return/^([+-]?\d*)$/}},alias:"decimal"}})})(jQuery);