var PhoneMask=function(e,t){var n=this;t=t||{},this.elements=e,this.patternChar=t.patternChar||"_",this.prefix=t.prefix||"",this.pattern=t.pattern||"(___) ___-__-__",this.pattern=this.prefix+this.pattern,this.backspaceCode=t.backspaceCode||8,this.deleteCode=t.deleteCode||46,this.allowedRegExp=t.allowedRegExp||/^\d$/,this.igrogeKeyCodes=t.igrogeKeyCodes||[9,16,17,18,36,37,38,39,40,91,92,93];var a=function(e){e=e||window.event;var t=e.target||e.srcElement,a=!0;if(console.log(e.keyCode),!n.isIgnoredKey(e.keyCode)){if(e.keyCode!=n.backspaceCode&&e.keyCode!=n.deleteCode){var r=String.fromCharCode(e.keyCode);0!=n.allowedRegExp&&null==r.match(n.allowedRegExp)||(t.value=n.replaceToChar(t,r))}a=!1}if(n.selectFirstPatterntChar(t),0==a)return e.preventDefault&&e.preventDefault(),a},r=function(e){e=e||window.event;var t=e.target||e.srcElement,a=!0;if(n.isIgnoredKey(e.keyCode)||(e.keyCode==n.backspaceCode&&(t.value=n.replaceToPatternChar(t),a=!1),e.keyCode==n.deleteCode&&(t.value=n.replaceToPatternChar(t),a=!1)),n.selectFirstPatterntChar(t),a===!1)return!1},s=function(e){e=e||window.event;var t=e.target||e.srcElement,a=t.value.indexOf(n.patternChar),r=a+1;a<0&&(a=t.value.length-1,r=a+1),n.selectCharInInput(t,a,r)};if("[object NodeList]"===Object.prototype.toString.call(this.elements))for(var l=0;l<this.elements.length;l++)this.elements[l].value.length>0?n.applyPatternToValue(this.elements[l]):this.elements[l].value=n.pattern,this.elements[l].onkeydown=r,this.elements[l].onkeypress=a,this.elements[l].onfocus=s;else null!=this.elements&&(this.elements.value.length>0?n.applyPatternToValue(this.elements):this.elements.value=n.pattern,this.elements.onkeydown=r,this.elements.onkeypress=a,this.elements.onfocus=s)};PhoneMask.prototype.applyPatternToValue=function(e){for(var t=e.value.split(""),n=this.pattern,a=t.length,r=0;r<a;r++)n=n.replace(this.patternChar,t[r]);e.value=n},PhoneMask.prototype.selectFirstPatterntChar=function(e){var t=e.value.indexOf(this.patternChar);if(t>-1){var n=t+1;this.selectCharInInput(e,t,n)}},PhoneMask.prototype.isIgnoredKey=function(e){return!(this.igrogeKeyCodes.indexOf(e)<0)},PhoneMask.prototype.selectCharInInput=function(e,t,n){e.setSelectionRange?(e.focus(),e.setSelectionRange(t,n)):e.createTextRange&&(range=e.createTextRange(),range.collapse(!0),range.moveEnd("character",n),range.moveStart("character",t),range.select())},PhoneMask.prototype.replaceAt=function(e,t,n){var a=e.split("");return a[t]=n,a.join("")},PhoneMask.prototype.replaceToChar=function(e,t){var n=e.value,a=n.indexOf(this.patternChar);return a>-1?this.replaceAt(n,a,t):n},PhoneMask.prototype.replaceToPatternChar=function(e){var t,n=e.value,a=n.indexOf(this.patternChar),r=!1;if(a==-1)t=n.length-1,r=!0;else for(t=a-1;!r;)if(this.pattern[t]!=n[t])r=!0;else if(t--,t<0)break;return r&&t>=this.prefix.length?this.replaceAt(n,t,this.patternChar):n},PhoneMask.prototype.destroy=function(){if("[object NodeList]"===Object.prototype.toString.call(this.elements))for(var e=0;e<this.elements.length;e++)this.elements[e].value=null,this.elements[e].onkeydown=null,this.elements[e].onkeypress=null,this.elements[e].onfocus=null;else null!=this.elements&&(this.elements.value=null,this.elements.onkeydown=null,this.elements.onkeypress=null,this.elements.onfocus=null)};