function AutoSuggest(id,suggestId,displayNum,submitForm,file,settings){ignoreBlur=false;var defaults={lang:null,useSE:null,delegator:null,dividerText:null,dividerType:null,textColor:"#000000",highlightTextColor:"#000000",backgroundColor:"transparent",highlightColor:"#C4C4C4",minTypedChars:1,submitWithDropDown:false,ajaxurl:"/tools/autosuggestlist.html"};var settings=jQuery.extend(defaults,settings);var thisAS=this;this.settings=settings;this.source=new Array();this.file=file;this.id=id;this.inputNode=document.getElementById(id);this.suggestId=suggestId;this.suggestNode=document.getElementById(suggestId);this.displayNum=displayNum;this.field=(id.indexOf("What")>-1)||(id.indexOf("BusName")>-1)?"WHAT":"WHERE";this.useSE=settings.useSE;this.lang=settings.lang;this.delegator=settings.delegator;this.suggestionIndex=-1;this.suggestedItems=null;this.inputNode.onkeydown=this.keydown;this.inputNode.onkeyup=this.keyup;this.inputNode.suggest=this;this.inputNode.submitForm=document.forms[submitForm];this.inputNode.suggestbox=this.suggestNode;this.inputNode.onblur=function(event){if(ignoreBlur){this.suggest.hide();this.focus();this.value=this.value;ignoreBlur=false;return false}};this.suggestNode.onmousedown=this.mousedown;this.suggestNode.inbox=this.inputNode;this.suggestNode.suggestbox=this;this.suggestNode.value="";this.inprogress=false;$YP("#"+this.id).blur(function(){$YP(this.suggestbox).hide()})}AutoSuggest.prototype.getdatasource=function(){var thisAS=this;var userInput=this.inputNode.value;if(userInput.length<this.settings.minTypedChars){this.source=new Array();this.hide();return}if(this.inprogress){return}if(this.inputNode==null){return}this.inprogress=true;jQuery.ajax({url:this.settings.ajaxurl,dataType:"json",data:{f:this.file,t:userInput,c:thisAS.inputNode.name,lang:this.lang,fld:this.field,SE:this.useSE},success:function(result){thisAS.source=result;thisAS.inprogress=false;thisAS.suggest()}})};AutoSuggest.prototype.keyup=function(event){event=event||window.event;var keyValue=(event.keyCode)?event.keyCode:(event.which)?event.which:null;switch(keyValue){case 38:this.suggest.moveup();break;case 40:this.suggest.movedown(event);break;default:if(keyValue!=13){this.suggest.getdatasource()}break}};AutoSuggest.prototype.keydown=function(event){event=event||window.event;var keyValue=(event.keyCode)?event.keyCode:(event.which)?event.which:null;if(13==keyValue){if(this.suggestbox.style.display=="none"||this.suggest.settings.submitWithDropDown){this.suggest.hide();if(typeof this.submitForm!="undefined"&&this.submitForm!=null){this.submitForm.submit()}}else{this.suggest.hide();return false}}};AutoSuggest.prototype.moveup=function(){if(this.suggestionIndex>0){this.suggestedItems.eq(this.suggestionIndex).css("background-color",this.settings.backgroundColor);this.suggestedItems.eq(this.suggestionIndex).css("color",this.settings.textColor);this.suggestionIndex--;this.suggestedItems.eq(this.suggestionIndex).css("background-color",this.settings.highlightColor);this.suggestedItems.eq(this.suggestionIndex).css("color",this.settings.highlightTextColor);this.inputNode.value=this.suggestedItems.eq(this.suggestionIndex).text()}};AutoSuggest.prototype.movedown=function(){if(this.suggestionIndex<this.suggestedItems.size()-1){if(this.suggestionIndex>=0){this.suggestedItems.eq(this.suggestionIndex).css("background-color",this.settings.backgroundColor);this.suggestedItems.eq(this.suggestionIndex).css("color",this.settings.textColor)}this.suggestionIndex++;this.suggestedItems.eq(this.suggestionIndex).css("background-color",this.settings.highlightColor);this.suggestedItems.eq(this.suggestionIndex).css("color",this.settings.highlightTextColor);this.inputNode.value=this.suggestedItems.eq(this.suggestionIndex).text()}};AutoSuggest.prototype.mousedown=function(event){if($YP.browser.msie){ignoreBlur=true}event=event||window.event;event.cancelBubble=true;var clickedItem=(event.srcElement)?event.srcElement:event.target;if(clickedItem.className=="asItem"){var text=clickedItem.firstChild.nodeValue;this.inbox.value=text;this.suggestbox.hide();this.inbox.focus()}return false};AutoSuggest.prototype.suggest=function(){var displayDividerAdded=false;var input=this.inputNode.value;if(!input||input==""){this.hide()}else{if(this.source.length==0){this.hide()}else{var suggestions="";for(i=0;i<this.source.length;i++){if(i>=this.displayNum){break}if(this.settings.dividerText!=null&&this.settings.dividerText!=null&&!displayDividerAdded&&this.settings.dividerType!=null&&this.source[i].type==this.settings.dividerType){suggestions+='<div class="asCachedSuggest"><div class="asDividerMarker">'+this.settings.dividerText+"</div>";displayDividerAdded=true}suggestions+='<div class="asItem">'+this.source[i].value+"</div>"}if(displayDividerAdded){suggestions+="</div>"}this.show(suggestions);this.suggestedItems=jQuery("#"+this.suggestId+" .asItem")}}};AutoSuggest.prototype.hide=function(){this.suggestNode.style.display="none";this.suggestionIndex=-1};AutoSuggest.prototype.show=function(suggestions){this.suggestNode.style.display="block";this.suggestNode.innerHTML=suggestions};
