function AutoSuggest(c,d){var e=this;this.params=d;this.elem=c;this.eligible=new Array();this.inputText=null;this.highlighted=-1;this.div=document.getElementById("autosuggest");var h=9;var b=27;var j=13;var g=38;var f=40;c.setAttribute("autocomplete","off");if(!c.id){var a="autosuggest"+idCounter;idCounter++;c.id=a}c.onkeydown=function(l){var k=e.getKeyCode(l);switch(k){case j:case h:e.useSuggestion();break;case b:e.hideDiv();break;case g:if(e.highlighted>0){e.highlighted--}e.changeHighlight(k);break;case f:if(e.highlighted<(e.eligible.length-1)){e.highlighted++}e.changeHighlight(k);break}};c.onkeyup=function(l){var k=e.getKeyCode(l);switch(k){case h:case b:case g:case f:return;default:if(this.value!=e.inputText&&this.value.length>0){m_rpc.CallMethod("SearchAutocomplete",new Array(this.value,e.params),e.autocompleteCallback,e);e.inputText=this.value}else{e.hideDiv()}}};this.autocompleteCallback=function(k,l){l.setSuggestions(k);l.createDiv();l.positionDiv();l.showDiv()};this.setSuggestions=function(k){this.eligible=k};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"};this.hideDiv=function(){this.div.style.display="none";this.highlighted=-1};this.changeHighlight=function(){var l=this.div.getElementsByTagName("LI");for(i in l){var k=l[i];if(this.highlighted==i){k.className="selected"}else{k.className=""}}};this.positionDiv=function(){var l=this.elem;var k=0;var m=l.offsetHeight;while(l.offsetParent&&l.tagName.toUpperCase()!="BODY"){k+=l.offsetLeft;m+=l.offsetTop;l=l.offsetParent}k+=l.offsetLeft;m+=l.offsetTop;this.div.style.left=k+"px";this.div.style.top=m+"px"};this.createDiv=function(){var m=document.createElement("ul");for(i in this.eligible){var n=this.eligible[i];if(n.toString().search("function")!=-1){continue}var k=document.createElement("li");var l=document.createElement("a");l.href="javascript:false";l.innerHTML=n;k.appendChild(l);if(e.highlighted==i){k.className="selected"}m.appendChild(k)}this.div.replaceChild(m,this.div.childNodes[0]);m.onmouseover=function(q){var r=e.getEventSource(q);while(r.parentNode&&r.tagName.toUpperCase()!="LI"){r=r.parentNode}var p=e.div.getElementsByTagName("LI");for(i in p){var o=p[i];if(o==r){e.highlighted=i;break}}e.changeHighlight()};m.onclick=function(o){e.useSuggestion();e.hideDiv();e.cancelEvent(o);return false};this.div.className="suggestion_list";this.div.style.position="absolute"};this.getKeyCode=function(k){if(k){return k.keyCode}if(window.event){return window.event.keyCode}};this.getEventSource=function(k){if(k){return k.target}if(window.event){return window.event.srcElement}};this.cancelEvent=function(k){if(k){k.preventDefault();k.stopPropagation()}if(window.event){window.event.returnValue=false}}}var idCounter=0;
