window.onload=function(){$$("body")[0].insert('<div id="suggestc" class="suggestc"></div>');autocompletion($("what"),10)};
autocompletion=function(a,b){if(!document.autocompletion)document.autocompletion=[];document.autocompletion.push(a);a.autocompletionId=document.autocompletion.length-1;a.MAX_SUGGESTIONS=b;a.suggestionsDiv=$("suggestc");a.setSuggestionsDivSize=setSuggestionsDivSize;a.setSuggestionsDivSize();a.eventKeyCode=null;a.currentInputFieldValue=a.value;a.oldInputFieldValue=a.value;a.suggestionsCache=[];a.suggestionsCache[""]="";a.selectedSuggestion=-1;a.lastKeyCode=-1;a.stop=false;a.onkeydown=autocompletionKeyDownHandler;
a.onkeyup=autocompletionKeyUpHandler;a.onblur=autocompletionBlurHandler;a.onSuccess=onSuccess;a.showSuggestions=showSuggestions;a.highlightNewValue=highlightNewValue;a.rangeSize=rangeSize;a.beforeRangeSize=beforeRangeSize;a.autocompletionLoop=function(){if(this.currentInputFieldValue!=this.oldInputFieldValue)if(this.currentInputFieldValue==""){this.stop=true;this.suggestionsDiv.hide()}else{this.stop=false;var c=this.suggestionsCache[this.currentInputFieldValue];if(c)if(c.length>0)this.showSuggestions(c);
else{this.suggestionsDiv.hide();this.stop=true}else{c=this.currentInputFieldValue.toLowerCase();new Ajax.Request("/category/suggest?format=json",{parameters:{q:c},method:"get",onSuccess:this.onSuccess.bind(this)})}}this.oldInputFieldValue=this.currentInputFieldValue;setTimeout("document.autocompletion["+this.autocompletionId+"].autocompletionLoop()",100)};setTimeout("document.autocompletion["+a.autocompletionId+"].autocompletionLoop()",100)};
function onSuccess(a){if(!this.stop){a=a.responseJSON;if(a.category==undefined){this.suggestionsDiv.hide();this.stop=true}a=a.category;this.suggestionsCache[this.currentInputFieldValue.toLowerCase()]=a;if(a.length>0)this.showSuggestions(a);else{this.suggestionsDiv.hide();this.stop=true}}}
function showSuggestions(a){var b="";this.selectedSuggestion=this.lastKeyCode!=8?0:-1;for(var c=0;c<a.length;c++)b+="<div"+(c==this.selectedSuggestion?' class="selected"':"")+">"+a[c]+"</div>";this.suggestionsDiv.innerHTML=b;for(b=0;b<a.length;b++){this.suggestionsDiv.childNodes[b].autocompletionField=this;this.suggestionsDiv.childNodes[b].index=b;this.suggestionsDiv.childNodes[b].onmousedown=autocompletionSuggestionMouseDownHandler;this.suggestionsDiv.childNodes[b].onmouseover=autocompletionSuggestionMouseOverHandler;
this.suggestionsDiv.childNodes[b].onmouseout=autocompletionSuggestionMouseOutHandler}this.suggestionsDiv.setStyle({display:"block"});if(this.selectedSuggestion!=-1&&a[0].toLowerCase().indexOf(this.value.toLowerCase())==0){b=this.beforeRangeSize();this.value=a[0];if(this.createTextRange){a=this.createTextRange();a.moveStart("character",b);a.select()}else this.setSelectionRange&&this.setSelectionRange(b,this.value.length)}}
var autocompletionKeyDownHandler=function(a){if(!a&&window.event)a=window.event;if(a)this.lastKeyCode=a.keyCode},autocompletionKeyUpHandler=function(a){if(!a&&window.event)a=window.event;switch(a.keyCode){case 38:this.value!=""&&this.highlightNewValue(this.selectedSuggestion-1);break;case 40:this.value!=""&&this.highlightNewValue(this.selectedSuggestion+1);break;case 8:this.currentInputFieldValue=this.value;a=this.suggestionsDiv.childNodes;for(var b=0;b<a.length;b++)a[b].className="";this.selectedSuggestion=
-1;break;default:this.currentInputFieldValue=this.value.substr(0,this.beforeRangeSize());break}},autocompletionBlurHandler=function(){this.suggestionsDiv.hide()},autocompletionSuggestionMouseDownHandler=function(){this.autocompletionField.value=this.innerHTML},autocompletionSuggestionMouseOverHandler=function(){if(this.autocompletionField.selectedSuggestion!=-1&&this.index!=this.autocompletionField.selectedSuggestion)this.autocompletionField.suggestionsDiv.childNodes[this.autocompletionField.selectedSuggestion].className=
"";this.className="selected";this.autocompletionField.selectedSuggestion=this.index},autocompletionSuggestionMouseOutHandler=function(){this.className=""};
function highlightNewValue(a){var b=this.suggestionsDiv.childNodes,c=b.length;if(!(!b||c<=0||c==1&&this.suggestionsDiv.innerHTML.indexOf("<")==-1)){if(a>=c)a=c-1;if(this.selectedSuggestion!=-1&&a!=this.selectedSuggestion)b[this.selectedSuggestion].className="";if(a<0){this.currentInputFieldValue=this.value=this.oldInputFieldValue;this.selectedSuggestion=-1}else{this.selectedSuggestion=a;b[a].className="selected";this.currentInputFieldValue=this.oldInputFieldValue;this.value=b[a].innerHTML;if(this.createTextRange){a=
this.createTextRange();a.moveStart("character",this.currentInputFieldValue.length);a.select()}else this.setSelectionRange&&this.setSelectionRange(this.currentInputFieldValue.length,this.value.length)}}}function rangeSize(){var a=0;if(this.createTextRange)a=document.selection.createRange().duplicate().text.length;else if(this.setSelectionRange)a=this.selectionEnd-this.selectionStart;return a}function beforeRangeSize(){return this.value.length-this.rangeSize()}
function setSuggestionsDivSize(){for(var a=0,b=0,c=this;c;){a+=c.offsetLeft;b+=c.offsetTop;c=c.offsetParent}this.suggestionsDiv.style.left=a+"px";this.suggestionsDiv.style.top=b+this.offsetHeight-1+"px";this.suggestionsDiv.style.width=this.offsetWidth-2+"px"};