var _allAutoSuggests=[];function AutoSuggest(j,k,h,b,d,c,e){var g=this;_allAutoSuggests.push(this);this.elem=j;this.elemID=c;this.oldVal=this.elem.value;if(j.onchange){this.cb=j.onchange;j.onchange=null}j.setAttribute("autocomplete","off");this.suggestType="numeric";if(k&&k.length>0){this.suggestType=k}this.suggestions=b;this.maxDigits=h;this.ajaxType=d;this.eligible=[];this.eligibleID=[];this.inputText=null;this.highlighted=-1;this.isMouseOver=false;this.div=null;this.ifrm=null;this.createDiv(this.elem,e);var i=9;var m=13;var l=27;var f=38;var a=40;j.onkeydown=function(o){var n=(o?o.keyCode:window.event.keyCode);var q=true;switch(n){case i:var p=g.elem.value;if(g.oldVal!=p&&g.cbS){g.cb.call(g.elem);g.oldVal=p}g.hideDiv();break;case m:q=(g.div.style.visibility=="hidden");g.useSuggestion();break;case l:g.hideDiv();break;case f:if(g.highlighted>0){g.highlighted--}g.changeHighlight(n);break;case a:if(g.highlighted<(g.eligible.length-1)){g.highlighted++}g.changeHighlight(n);break}return q};j.onkeyup=function(o){var n=(o?o.keyCode:window.event.keyCode);switch(n){case i:case m:case l:case f:case a:return;default:if(this.value!=g.inputText){g.inputText=this.value;if((this.value.length<2&&g.suggestType=="ajax")||this.value.length<1){g.hideDiv();return}g.getEligible();g.createList();g.positionDiv();g.showDiv()}}};j.onblur=function(n){g.useSuggestion()};Utils.BrowserCompat.attachEvent(document,"onclick",this.onMouseDownHandler.bind(this))}AutoSuggest.prototype.useSuggestion=function(){var c=this.elem.value;if(this.highlighted>-1&&this.isMouseOver){var b=this.eligibleID[this.highlighted];c=this.eligible[this.highlighted]}if(this.highlighted>-1&&c!=undefined){if(this.ajaxType=="city"){var a=document.getElementById("DefaultStateCode");if(a&&c.indexOf(",")<0){c+=","+a.value}this.elem.value=c;if(this.elemID&&this.elemID!=null){this.elemID.value=b}if(this.oldVal!=c&&this.cb){this.cb.call(this.elem)}}else{this.elem.value=c;if(this.elemID&&this.elemID!=null){this.elemID.value=b}if(this.oldVal!=c&&this.cb){this.cb.call(this.elem)}}this.hideDiv()}else{if(this.oldVal!=c&&this.cb){this.cb.call(this.elem)}this.hideDiv()}this.oldVal=c};AutoSuggest.prototype.showDiv=function(){if(this.ifrm!=null){this.ifrm.style.visibility="visible"}this.div.style.visibility="visible"};AutoSuggest.prototype.hideDiv=function(){if(this.ifrm!=null){this.ifrm.style.visibility="hidden"}this.div.style.visibility="hidden";this.highlighted=-1};AutoSuggest.prototype.changeHighlight=function(){var b=this.div.getElementsByTagName("SPAN");for(var d=0,a=b.length;d<a;d++){var c=b[d];if(this.highlighted==d){c.className="selected"}else{c.className=""}}};AutoSuggest.prototype.positionDiv=function(){var c=this.elem;var a=0;var b=c.offsetHeight;while(c.offsetParent&&c.tagName.toUpperCase()!="BODY"){a+=c.offsetLeft;b+=c.offsetTop;c=c.offsetParent}a+=c.offsetLeft;b+=c.offsetTop;var e=this.div.style;e.left=a+1+"px";e.top=b+1+"px";if(this.ifrm!=null){var d=this.ifrm.style;d.left=e.left;d.top=e.top;d.width=this.div.offsetWidth+"px";d.height=this.div.offsetHeight+"px"}};AutoSuggest.prototype.createList=function(){var f=this.div;var c=this.eligible;if(f.hasChildNodes){while(f.childNodes.length>=1){f.removeChild(f.firstChild)}}for(var d=0,b=c.length;d<b;d++){var e=document.createElement("span");var g=document.createElement("a");g.setAttribute("href","javascript:void(0)");g.innerHTML="<nobr>"+c[d]+"</nobr>";e.appendChild(g);if(this.highlighted==d){e.className="selected"}f.appendChild(e);f.appendChild(document.createElement("br"))}var h=this;f.onmouseover=function(k){var l=(k?k.target:window.event.srcElement);while(l.parentNode&&l.tagName.toUpperCase()!="SPAN"){l=l.parentNode}var j=f.getElementsByTagName("SPAN");for(var m=0,a=j.length;m<a;m++){if(j[m]==l){h.highlighted=m;break}}h.isMouseOver=true;h.changeHighlight()};f.onmouseout=function(a){h.isMouseOver=false};f.onclick=function(a){h.useSuggestion();h.hideDiv();return false}};AutoSuggest.prototype.createDiv=function(b,d){var c=document.createElement("DIV");c.className="suggestion";if(typeof(d)!="undefined"&&d!=null){c.setAttribute("style","height: "+d+"px; overflow-y: auto; overflow-x: hidden;")}document.body.appendChild(c);this.div=c;if(/msie|MSIE 6/.test(navigator.userAgent)){var a=document.createElement("IFRAME");a.src="about:blank";a.setAttribute("scrolling","no");a.setAttribute("frameborder","0");a.style.position="absolute";a.style.border="none";a.style.visibility="hidden";document.body.appendChild(a);this.ifrm=a}};AutoSuggest.prototype.getEligible=function(){var newEligible=[];var newEligibleID=[];if(this.inputText==null||this.inputText.length==0){this.eligible=newEligible;this.eligibleID=newEligibleID;return}else{if(this.suggestType=="ajax"){var xhr=new XMLHttpRequest();var url="/"+Utils.AppName+"/Include/AJAX/GetAutoSuggestions.aspx?type="+this.ajaxType+"&input="+this.inputText;xhr.open("GET",url,false);xhr.send(null);try{var resp=eval("("+xhr.responseText+")");if(resp.eligible.length>0){for(var i=0,len=resp.eligible.length;i<len;i++){newEligible.push(resp.eligible[i][0]);newEligibleID.push(resp.eligible[i][1])}}}catch(err){newEligible=[];newEligibleID=[]}}else{if(this.suggestType=="array"){var suggs=this.suggestions;var inputText=this.inputText.toLowerCase();for(var i=0,len=suggs.length;i<len;i++){var suggestion=suggs[i];if(suggestion.toLowerCase().indexOf(inputText)==0){newEligible.push(suggestion)}}newEligibleID=newEligible}else{if(this.suggestType=="money"){var txt=this.inputText;if(txt.length>0&&IsNumeric(txt)){var zeros="";for(i=0,len=this.maxDigits-txt.length;i<len;i++){zeros+="0";newEligible.push("$"+Utils.Format.addCommas(txt+zeros))}}newEligibleID=newEligible}else{var txt=this.inputText;if(txt.length>0&&IsNumeric(txt)){var zeros="";for(i=0,len=this.maxDigits-txt.length;i<len;i++){zeros+="0";newEligible.push(Utils.Format.addCommas(txt+zeros))}}newEligibleID=newEligible}}}}this.eligible=newEligible;this.eligibleID=newEligibleID};AutoSuggest.prototype.onMouseDownHandler=function(a){if(this.div.style.visibility!="visible"){return}var b=(a?a.target:window.event.srcElement);var d=false;var c=this.div;while(b!=null){if(b==c){d=true;break}b=b.parentNode}if(!d){this.hideDiv()}return true};(function(a){var c=(a.browser.msie?"paste":"input")+".mask";var b=(window.orientation!=undefined);a.mask={definitions:{"9":"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"}};a.fn.extend({caret:function(e,f){if(this.length==0){return}if(typeof e=="number"){f=(typeof f=="number")?f:e;return this.each(function(){if(this.setSelectionRange){this.focus();this.setSelectionRange(e,f)}else{if(this.createTextRange){var g=this.createTextRange();g.collapse(true);g.moveEnd("character",f);g.moveStart("character",e);g.select()}}})}else{if(this[0].setSelectionRange){e=this[0].selectionStart;f=this[0].selectionEnd}else{if(document.selection&&document.selection.createRange){var d=document.selection.createRange();e=0-d.duplicate().moveStart("character",-100000);f=e+d.text.length}}return{begin:e,end:f}}},unmask:function(){return this.trigger("unmask")},mask:function(j,d){if(!j&&this.length>0){var f=a(this[0]);var g=f.data("tests");return a.map(f.data("buffer"),function(l,m){return g[m]?l:null}).join("")}d=a.extend({placeholder:"_",completed:null},d);var k=a.mask.definitions;var g=[];var e=j.length;var i=null;var h=j.length;a.each(j.split(""),function(m,l){if(l=="?"){h--;e=m}else{if(k[l]){g.push(new RegExp(k[l]));if(i==null){i=g.length-1}}else{g.push(null)}}});return this.each(function(){var r=a(this);var m=a.map(j.split(""),function(x,y){if(x!="?"){return k[x]?d.placeholder:x}});var n=false;var q=r.val();r.data("buffer",m).data("tests",g);function v(x){while(++x<=h&&!g[x]){}return x}function t(x){while(!g[x]&&--x>=0){}for(var y=x;y<h;y++){if(g[y]){m[y]=d.placeholder;var z=v(y);if(z<h&&g[y].test(m[z])){m[y]=m[z]}else{break}}}s();r.caret(Math.max(i,x))}function u(y){for(var A=y,z=d.placeholder;A<h;A++){if(g[A]){var B=v(A);var x=m[A];m[A]=z;if(B<h&&g[B].test(x)){z=x}else{break}}}}function l(y){var x=a(this).caret();var z=y.keyCode;n=(z<16||(z>16&&z<32)||(z>32&&z<41));if((x.begin-x.end)!=0&&(!n||z==8||z==46)){w(x.begin,x.end)}if(z==8||z==46||(b&&z==127)){t(x.begin+(z==46?0:-1));return false}else{if(z==27){r.val(q);r.caret(0,p());return false}}}function o(B){if(n){n=false;return(B.keyCode==8)?false:null}B=B||window.event;var C=B.charCode||B.keyCode||B.which;var z=a(this).caret();if(B.ctrlKey||B.altKey||B.metaKey){return true}else{if((C>=32&&C<=125)||C>186){var x=v(z.begin-1);if(x<h){var A=String.fromCharCode(C);if(g[x].test(A)){u(x);m[x]=A;s();var y=v(x);a(this).caret(y);if(d.completed&&y==h){d.completed.call(r)}}}}}return false}function w(x,y){for(var z=x;z<y&&z<h;z++){if(g[z]){m[z]=d.placeholder}}}function s(){return r.val(m.join("")).val()}function p(y){var z=r.val();var C=-1;for(var B=0,x=0;B<h;B++){if(g[B]){m[B]=d.placeholder;while(x++<z.length){var A=z.charAt(x-1);if(g[B].test(A)){m[B]=A;C=B;break}}if(x>z.length){break}}else{if(m[B]==z[x]&&B!=e){x++;C=B}}}if(!y&&C+1<e){r.val("");w(0,h)}else{if(y||C+1>=e){s();if(!y){r.val(r.val().substring(0,C+1))}}}return(e?B:i)}if(!r.attr("readonly")){r.one("unmask",function(){r.unbind(".mask").removeData("buffer").removeData("tests")}).bind("focus.mask",function(){q=r.val();var x=p();s();setTimeout(function(){if(x==j.length){r.caret(0,x)}else{r.caret(x)}},0)}).bind("blur.mask",function(){p();if(r.val()!=q){r.change()}}).bind("keydown.mask",l).bind("keypress.mask",o).bind(c,function(){setTimeout(function(){r.caret(p(true))},0)})}p()})}})})(jQuery);