(function($){function getPasteEvent(){var el=document.createElement('input'),name='onpaste';el.setAttribute(name,'');return(typeof el[name]==='function')?'paste':'input';} var pasteEventName=getPasteEvent()+".mask",ua=navigator.userAgent,iPhone=/iphone/i.test(ua),android=/android/i.test(ua),caretTimeoutId;$.mask={definitions:{'9':"[0-9]",'a':"[A-Za-z]",'*':"[A-Za-z0-9]"},dataName:"rawMaskFn",placeholder:'_',};$.fn.extend({caret:function(begin,end){var range;if(this.length===0||this.is(":hidden")){return;} if(typeof begin=='number'){end=(typeof end==='number')?end:begin;return this.each(function(){if(this.setSelectionRange){this.setSelectionRange(begin,end);}else if(this.createTextRange){range=this.createTextRange();range.collapse(true);range.moveEnd('character',end);range.moveStart('character',begin);range.select();}});}else{if(this[0].setSelectionRange){begin=this[0].selectionStart;end=this[0].selectionEnd;}else if(document.selection&&document.selection.createRange){range=document.selection.createRange();begin=0- range.duplicate().moveStart('character',-100000);end=begin+ range.text.length;} return{begin:begin,end:end};}},unmask:function(){return this.trigger("unmask");},mask:function(mask,settings){var input,defs,tests,partialPosition,firstNonMaskPos,len;if(!mask&&this.length>0){input=$(this[0]);return input.data($.mask.dataName)();} settings=$.extend({placeholder:$.mask.placeholder,completed:null},settings);defs=$.mask.definitions;tests=[];partialPosition=len=mask.length;firstNonMaskPos=null;$.each(mask.split(""),function(i,c){if(c=='?'){len--;partialPosition=i;}else if(defs[c]){tests.push(new RegExp(defs[c]));if(firstNonMaskPos===null){firstNonMaskPos=tests.length- 1;}}else{tests.push(null);}});return this.trigger("unmask").each(function(){var input=$(this),buffer=$.map(mask.split(""),function(c,i){if(c!='?'){return defs[c]?settings.placeholder:c;}}),focusText=input.val();function seekNext(pos){while(++pos=0&&!tests[pos]);return pos;} function shiftL(begin,end){var i,j;if(begin<0){return;} for(i=begin,j=seekNext(end);i=len){settings.completed.call(input);}}} e.preventDefault();}} function clearBuffer(start,end){var i;for(i=start;itest.length){break;}}else if(buffer[i]===test.charAt(pos)&&i!==partialPosition){pos++;lastMatch=i;}} if(allow){writeBuffer();}else if(lastMatch+ 1