function SuggestSearch(D,C,B){var A=this;this.instance_name=false;this.field_id=false;this.menu_name=false;this.menuobj=false;this.min_length=1;this.menu_open=false;this.timeout=false;this.timeout2=false;this.active=false;this.selected=0;this.result=new Array();this.value="";this.elements=new Array();this.autoset=false;this.highlight=false;this.request_count=0;this.default_value="";this.__construct=function(G,F,E){this.instance_name=G;this.menuobj=$("#"+E+"_menu");this.menu_name=E+"_menu";this.field_id=F;this.result=new Array();if($("#"+F).type=="text"){$("#"+F).setAttribute("autocomplete","off",0)}if(this.default_value&&$("#"+F).value!=this.default_value){$("#"+F).value=this.default_value}$("#"+F).onfocus=function(H){if(A.default_value&&$("#"+F).value==A.default_value){$("#"+F).value=""}A.active=true;clearTimeout(A.timeout2)};$("#"+F).onblur=function(H){if(A.default_value&&$("#"+F).value==""){$("#"+F).value=A.default_value}A.active=false;A.timeout2=setTimeout(A.instance_name+".HideMenu( true );",100)};$("#"+F).onkeyup=function(H){return A.HandleEvent(H)};$("#"+F).onkeypress=function(H){H=(H)?H:window.event;if(H.keyCode==13){return(A.menu_open)?false:true}}};this.HandleEvent=function(E){E=(E)?E:window.event;if(this.menu_open){switch(E.keyCode){case 13:if(!this.selected){this.HideMenu();$("#"+this.instance_name+"_form").submit();return false}this.SetResult(this.selected);return false;break;case 27:if(this.autoset){$("#"+this.field_id).value=this.value;$("#"+this.field_id).focus()}this.HideMenu();return false;break;case 38:this._SwitchSelection(-1);return false;break;case 40:this._SwitchSelection(1);return false;break}}this._GetValue();if(this.value.length>=this.min_length){clearTimeout(this.timeout);this.timeout=setTimeout(this.instance_name+"._GetResults();",200)}else{this.HideMenu()}};this._SwitchSelection=function(E){if(this.selected===false){this.selected=(E<0)?0:-1}var G=parseInt(this.selected,10)+parseInt(E,10);if(G<0){G=this.result.length-1}else{if(G>=this.result.length){G=0}}if(this.selected!=-1){this.elements[this.selected].className="suggest_entry"}this.selected=G;this.elements[this.selected].className="suggest_entry_selected";if(this.autoset){$("#"+this.field_id).value=PHP.htmlspecialchars_decode(this.result[this.selected]);$("#"+this.field_id).focus()}return false};this.MouseOver=function(E){if(this.selected!==false&&this.selected!=-1){this.elements[this.selected].className="suggest_entry"}this.selected=E;this.elements[this.selected].className="suggest_entry_selected"};this._GetValue=function(){this.value=$("#"+this.field_id).value;this.value=PHP.trim(this.value)};this.SetResult=function(E){clearTimeout(this.timeout2);if(this.result[E]){$("#"+this.field_id).value=PHP.htmlspecialchars_decode(this.result[E])}$("#"+this.field_id).focus();this.HideMenu();return false};this._GetResults=function(){if(this.active&&this.value){this.request_count++;var E=new Ajax({Method:"GET",Url:"/suggest/",Params:{m:"xml",l:this.value.length,c:this.request_count,q:PHP.urlencode(this.value)},Async:true,ResponseType:"xml",Timeout:3000,AdditionalHeaders:{"X-Request-Type":"ajax"},OnError:function(F,G){alert("Error "+F+" while loading the suggest response! - \n"+G)},OnSuccess:function(G,F,H){A._PrepairResults(G,F,H)}});if(typeof this.type!="undefined"){E.options.Params.t=this.type}E.doRequest()}};this._PrepairResults=function(F,E,I){if(this.active&&this.value){var H=(F.getElementsByTagName("result"))?F.getElementsByTagName("result"):{};this.result=new Array();for(var G=0;G<H.length;G++){this.result[G]=H[G].firstChild.nodeValue}if(this.result.length>0){this._BuildMenu();this._ShowMenu()}else{this.HideMenu()}}else{this.HideMenu()}};this._BuildMenu=function(){this._ClearMenu();if(this.highlight){var H=PHP.explode(" ",this.value);regex="";for(var F=0;F<H.length;F++){regex=regex+((regex)?"|":"")+PHP.preg_quote(H[F])}var G=new RegExp("("+regex+")","gi")}var E=document.createElement("ul");E.className="suggest_menu_ul";for(var F=0;F<this.result.length;F++){E.innerHTML=E.innerHTML+'<li class="'+((this.selected!==false&&F==this.selected)?"suggest_entry_selected":"suggest_entry")+'" title="'+this.result[F]+'" onmouseover="'+this.instance_name+".MouseOver( '"+F+'\' );" onclick="return '+this.instance_name+".SetResult( '"+F+"' );\">"+((this.highlight)?this.result[F].replace(G,"<strong>$1</strong>"):this.result[F])+"</li>"}this.menuobj.appendChild(E);this.elements=(typeof this.menuobj.getElementsByTagName!="undefined")?this.menuobj.getElementsByTagName("li"):new Array()};this._ShowMenu=function(){if(this.active){this.selected=false;this.menuobj.className=this.menu_name;this.menu_open=true}};this.HideMenu=function(E){E=(E&&this.autoset)?true:false;this.selected=false;if(this.menu_open){try{this.menuobj.className="hidden"}catch(F){}this.menu_open=false;if(E){$("#"+this.field_id).value=this.value;$("#"+this.field_id).focus()}}};this._ClearMenu=function(){this.selected=false;while(this.menuobj.firstChild){this.menuobj.removeChild(this.menuobj.firstChild)}};this.__construct(D,C,B)};