function quickSearch(formElement,queryElement,resultsElement,searchUrl,iconSize){this.formElement=document.getElementById(formElement);this.queryElement=document.getElementById(queryElement);this.resultsElement=document.getElementById(resultsElement);this.searchUrl=searchUrl;this.highlight=0;this.total=0;this.lastQuery='';this.iconSize=30;if(iconSize>0)
this.iconSize=iconSize;this.queryElement.setAttribute('autocomplete','off');ccms.event.attach(this.queryElement,"keyup",this.doSearch,this,true);ccms.event.attach(this.queryElement,"onchange",this.doSearch,this,true);ccms.event.attach(this.queryElement,"click",this.reset,this,true);}
quickSearch.prototype.doSearch=function(event){var query=this.queryElement.value;switch(event.keyCode){case 32:return false;break;case 40:case 38:if(current=document.getElementById('searchResult'+this.highlight)){current.className='item '+(this.highlight%2==1?'row2':'row1');}
switch(event.keyCode){case 40:this.highlight=(this.highlight<this.total)?this.highlight+1:0;break;case 38:this.highlight=(this.highlight>0)?this.highlight-1:this.total;break;}
if(highlight=document.getElementById('searchResult'+this.highlight)){highlight.className='item highlight';}
ccms.event.stopEvent(event);break;case 27:this.reset();query='';ccms.event.stopEvent(event);break;case 13:if(this.highlight>0&&document.getElementById('searchResultUri'+this.highlight)){window.location=document.getElementById('searchResultUri'+this.highlight).getAttribute('href');ccms.event.stopEvent(event);}
break;}
if(query.length>2){if(query!=this.lastQuery){this.lastQuery=query;ccms.async.http({method:'GET',url:this.searchUrl+'?query='+encodeURIComponent(query),onSuccess:this.processResults,self:this});}}
else{this.updateResults('');}}
quickSearch.prototype.updateResults=function(theHTML){if(theHTML==''){this.resultsElement.style.display='none';}
else{this.resultsElement.style.display='block';}
this.resultsElement.innerHTML=theHTML;}
quickSearch.prototype.reset=function(){this.lastQuery='';this.highlight=0;this.queryElement.value='';this.updateResults('');}
quickSearch.prototype.processResults=function(req){var items=req.responseXML.getElementsByTagName("item");var theHTML='';this.self.total=items.length;if(items.length>0){for(var i=0;i<items.length;i++){var item=items[i];title=item.getElementsByTagName('title')[0];system=item.getElementsByTagName('system')[0];rowClass=this.self.highlight==(i+1)?'highlight':((i+1)%2==1?'row2':'row1');theHTML+='<div id="searchResult'+(i+1)+'" class="item '+rowClass+'">\n';theHTML+='<div class="left"><img class="framed" src="images/'+item.getAttribute('uri')+'/icon.jpg" width="'+this.self.iconSize+'" height="'+this.self.iconSize+'" alt="'+title.firstChild.data+'" /></div>\n';theHTML+='<h2 class="item-heading"><a id="searchResultUri'+(i+1)+'" href="'+item.getAttribute('url')+'">'+title.firstChild.data+'</a></h2>\n';theHTML+='<p><strong>'+system.firstChild.data+'</strong></p>\n';theHTML+='<div class="clear"></div>\n';theHTML+='</div>\n';}
theHTML='<div class="items">'+theHTML+'</div><p class="controls">[Esc] Close, [Up/Dn] Move, [Enter] Submit</p>';}
this.self.updateResults(theHTML);}