var allAutoCompletes=[];function AutoCompleteClass(f,e,d){$("."+f).each(function(b,a){if($(a).attr("id")==""){$(a).attr("id",(Math.floor(Math.random()*1000000000+1)));}allAutoCompletes.push(new AutoComplete($(a).attr("id"),e,d));});}function AutoComplete(f,g,e){this.targetInputId=f;this.targetInput=jQuery("#"+f);
this.targetInputDom=this.targetInput.get(0);this.resultsDiv=null;this.urlToLoad=null;this.listSize=0;this.listDisplayed=false;this.listMemberSelected=-1;this.origText="";this.targetInput.focus(function(){for(var a=0;a<allAutoCompletes.length;a++){if(allAutoCompletes[a].targetInputId!=h.targetInputId){allAutoCompletes[a].clearAutoComplete();
}}});if(typeof(e)=="undefined"){this.minLetters=new Number(0);}else{this.minLetters=e;}var h=this;if(g.indexOf(".")==-1){this.urlToLoad="/autoFill/"+g+".htm";}else{this.urlToLoad=g;}this.init=function(){this.resultsDiv=jQuery("<div class='autoCompleteResultsDiv' id='autoCompleteResultsFor"+this.targetInputId+"' />");
this.targetInput.after(this.resultsDiv);this.targetInput.attr("autocomplete","off");this.targetInput.keyup(function(a){var b=a.which;if(b==38){h.suggestionsUp();}else{if(b==40){h.suggestionsDown();}else{if(b==27){h.clearAutoComplete();}else{if(b==13){h.clearAutoComplete();}else{if(b==9){h.clearAutoComplete();
}else{if(!h.isCharacterKey(b)){}else{clearTimeout();setTimeout(h.autoComplete,300);}}}}}}});};this.isCharacterKey=function(a){if(a==8){return true;}if(a>=46&&a<=90){return true;}if(a>=96&&a<=111){return true;}if(a>=186&&a<=222){return true;}return false;};this.autoComplete=function(b){var a=h.targetInput.val();
if(a.length>=h.minLetters){h.origText=a;if(a.length<1){h.clearAutoComplete();}else{jQuery.getJSON(h.urlToLoad+"?partial="+escape(a),h.autoCompleteCallBack);}}};this.clearAutoComplete=function(){h.resultsDiv.hide();h.resultsDiv.html("");h.listDisplayed=false;h.listMemberSelected=-1;};this.autoCompleteCallBack=function(a){h.repositionResultsDiv();
h.listSize=a.length;h.listMemberSelected=-1;if(a.length>0){h.listDisplayed=true;var b="";for(i=0;i<a.length;i++){b+='<div class="unselected">'+a[i]+"</div>";}h.resultsDiv.html(b).show();var c=h.resultsDiv.children();c.mouseover(function(){c.each(function(){this.className="unselected";});this.className="selected";
});c.click(function(){h.targetInput.val(this.childNodes[0].nodeValue);inputText=this.childNodes[0].nodeValue;h.clearAutoComplete();});}else{h.clearAutoComplete();}};this.repositionResultsDiv=function(){var k=h.targetInput.offset();var a=k.top;var c=k.left;var d=h.targetInput.height();var b=h.targetInput.width();
h.resultsDiv.css("left",c);if(jQuery.browser.msie){h.resultsDiv.css("top",a+d+5);}h.resultsDiv.css("width",b);};this.suggestionsUp=function(){if(h.listMemberSelected==-1){h.listMemberSelected=h.listSize-1;}else{h.listMemberSelected--;}h.applyStyle();};this.suggestionsDown=function(){if(h.listMemberSelected==(h.listSize-1)){h.listMemberSelected=-1;
}else{h.listMemberSelected++;}h.applyStyle();};this.applyStyle=function(){if(h.listMemberSelected==-1){h.targetInput.val(h.origText);}h.resultsDiv.children().each(function(a){if(a==h.listMemberSelected){h.targetInput.val(this.childNodes[0].nodeValue);this.className="selected";}else{this.className="unselected";
}});};this.init();}var urlToLoad;var inputTextBox;var inputText;var listMemberSelected=-1;var listSize=0;var listUp=false;function initAutoComplete(d,c){if(c.indexOf(".")==-1){urlToLoad="/autoFill/"+c+".htm";}else{urlToLoad=c;}inputTextBox=jQuery("#"+d);inputTextBox.css("position","relative");inputTextBox.after("<div id='autoCompleteResults'></div>");
jQuery("#autoCompleteResults").css("position","absolute");inputTextBox.keyup(function(a){var b=a.which;if(b==38){if(!listUp){autoComplete(false);}suggestionsUp();}else{if(b==40){if(!listUp){autoComplete(false);}suggestionsDown();}else{if(b==27){clearAutoComplete();}else{if(b==13){clearAutoComplete();
}else{clearTimeout();setTimeout("autoComplete(true)",100);}}}}});inputTextBox.keypress(function(a){var b=a.which;if(b==27||b==13){preventFormSubmission=listUp&&listMemberSelected!=-1;return !preventFormSubmission;}});inputTextBox.blur(function(){setTimeout("clearAutoComplete()",500);});}function autoComplete(b){val=inputTextBox.val();
if(listMemberSelected==-1||b){inputText=val;if(val.length<1){clearAutoComplete();}else{jQuery.getJSON(urlToLoad+"?partial="+escape(val),autoCompleteCallBack);}}}function autoCompleteCallBack(d){repositionResultsDiv();listSize=d.length;listMemberSelected=-1;if(d.length>0){listUp=true;var e="";for(i=0;
i<d.length;i++){e+='<div class="unselected">'+d[i]+"</div>";}jQuery("#autoCompleteResults").html(e);jQuery("#autoCompleteResults").show();var f=jQuery("#autoCompleteResults > div");f.mouseover(function(){f.each(function(){this.className="unselected";});this.className="selected";});f.click(function(){inputTextBox.val(this.childNodes[0].nodeValue);
inputText=this.childNodes[0].nodeValue;clearAutoComplete();});}else{clearAutoComplete();}}function repositionResultsDiv(){var h=inputTextBox.offset();var j=h.top;var f=h.left;var g=inputTextBox.height();var k=inputTextBox.width();jQuery("#autoCompleteResults").css("position","absolute");jQuery("#autoCompleteResults").css("left",f-2);
repositionResultsDivTop(j,g);jQuery("#autoCompleteResults").css("width",k-2);}function repositionResultsDivTop(d,c){jQuery("#autoCompleteResults").css("top",d+c+5);}function fixWidth(){var c=parseInt(jQuery("#autoCompleteResults").css("paddingLeft"))+parseInt(jQuery("#autoCompleteResults").css("paddingRight"));
var d=parseInt(inputTextBox.css("width"))+parseInt(inputTextBox.css("paddingLeft"))+parseInt(inputTextBox.css("paddingRight"));jQuery("#autoCompleteResults").css("width",d-c);}function num(d,c){return parseInt(jQuery.curCSS(d.jquery?d[0]:d,c,true))||0;}function clearAutoComplete(){jQuery("#autoCompleteResults").hide();
jQuery("#autoCompleteResults").html("");listUp=false;listMemberSelected=-1;}function suggestionsUp(){if(listMemberSelected==-1){listMemberSelected=listSize-1;}else{listMemberSelected--;}applyStyle();}function suggestionsDown(){if(listMemberSelected==(listSize-1)){listMemberSelected=-1;}else{listMemberSelected++;
}applyStyle();}function applyStyle(){if(listMemberSelected==-1){inputTextBox.val(inputText);}jQuery("#autoCompleteResults > div").each(function(b){if(b==listMemberSelected){inputTextBox.val(this.childNodes[0].nodeValue);this.className="selected";}else{this.className="unselected";}});}