function AutoSuggest(d,a){var c=this;this.elem=d;this.suggestions=a;this.eligible=new Array();this.inputText=null;this.highlighted=-1;this.div=document.getElementById("autosuggest");var b=9;var f=27;var e=38;var h=40;d.setAttribute("autocomplete","off");if(!d.id){var g="autosuggest"+idCounter;idCounter++;d.id=g}d.onkeydown=function(k){var j=c.getKeyCode(k);switch(j){case b:if(c.highlighted>=0&&c.highlighted<c.eligible.length){c.useSuggestion()}c.hideDiv();break;case f:c.hideDiv();break;case e:if(c.highlighted>0){c.highlighted--}c.changeHighlight(j);break;case h:if(c.highlighted<(c.eligible.length-1)){c.highlighted++}c.changeHighlight(j);break;case 10:case 13:if(c.highlighted>=0&&c.highlighted<c.eligible.length){c.useSuggestion()}c.hideDiv();postnrSubmit();break}};d.onkeyup=function(k){var j=c.getKeyCode(k);switch(j){case b:case f:case e:case h:return;case 10:case 13:return false;default:c.update(this.value)}};d.onfocus=function(){c.update(this.value)};this.update=function(j){c.inputText=j;if(j.length==0){c.hideDiv();return}c.getEligible();c.createDiv();if(this.eligible.length>0){c.showDiv()}else{c.hideDiv()}};this.useSuggestion=function(){if(this.highlighted>-1){this.elem.value=this.eligible[this.highlighted];this.hideDiv();setTimeout("document.getElementById('"+this.elem.id+"').focus()",0)}};this.showDiv=function(){this.div.style.display="block";if(this.elem.style.width>0&&this.div.clientWidth>0){this.elem.style.width=Math.max(this.elem.style.width,this.div.clientWidth-1)+"px"}};this.hideDiv=function(){this.div.style.display="none";this.highlighted=-1};this.changeHighlight=function(){var k=this.div.getElementsByTagName("LI");for(i in k){var j=k[i];if(j){if(this.highlighted==i){j.className="selected"}else{j.className=""}}}};this.positionDiv=function(){var k=this.elem;var j=0;var l=k.offsetHeight;while(k.offsetParent&&k.tagName.toUpperCase()!="BODY"){j+=k.offsetLeft;l+=k.offsetTop;k=k.offsetParent}j+=k.offsetLeft;l+=k.offsetTop;this.div.style.left=j+"px";this.div.style.top=l+"px"};this.createDiv=function(){var l=document.createElement("ul");if(this.eligible.length>0){c.highlighted=0;c.changeHighlight()}for(i in this.eligible){var m=this.eligible[i];if(typeof(m)=="string"){var j=document.createElement("li");var k=document.createElement("a");k.href="javascript:false";k.innerHTML=m;j.appendChild(k);if(c.highlighted==i){j.className="selected"}l.appendChild(j)}}this.div.replaceChild(l,this.div.childNodes[0]);l.onmouseover=function(p){var q=c.getEventSource(p);while(q.parentNode&&q.tagName.toUpperCase()!="LI"){q=q.parentNode}var o=c.div.getElementsByTagName("LI");for(i in o){var n=o[i];if(n==q){c.highlighted=i;break}}c.changeHighlight()};l.onclick=function(n){c.useSuggestion();c.hideDiv();c.cancelEvent(n);postnrSubmit();return false};this.div.className="suggestion_list";this.div.style.position="absolute"};this.getEligible=function(){this.eligible=new Array();for(i in this.suggestions){var j=this.suggestions[i];if(typeof(j)=="string"){if(j.toLowerCase().indexOf(this.inputText.toLowerCase())=="0"){this.eligible[this.eligible.length]=j}}}};this.getKeyCode=function(j){if(j){return j.keyCode}if(window.event){return window.event.keyCode}};this.getEventSource=function(j){if(j){return j.target}if(window.event){return window.event.srcElement}};this.cancelEvent=function(j){if(j){j.preventDefault();j.stopPropagation()}if(window.event){window.event.returnValue=false}}}var idCounter=0;