var suggestions=null;var suggestionLength=17;var divDisplayed=17;var selectedDivId="";function AutoSuggestControl(oTextbox,oProvider){this.cur=-1;this.layer=null;this.provider=oProvider;this.textbox=oTextbox;this.init()}AutoSuggestControl.prototype.autosuggest=function(aSuggestions,bTypeAhead){if(aSuggestions.length>0){if(bTypeAhead){this.typeAhead(aSuggestions[0])}this.showSuggestions(aSuggestions)}else{this.showSuggestions(aSuggestions);this.hideSuggestions()}};AutoSuggestControl.prototype.createDropDown=function(){var oThis=this;this.layer=document.createElement("div");this.layer.className="suggestions";this.layer.style.visibility="hidden";this.layer.style.width=320;this.layer.onmousedown=this.layer.onmouseup=this.layer.onmouseover=function(oEvent){oEvent=oEvent||window.event;oTarget=oEvent.target||oEvent.srcElement;if(oEvent.type=="mousedown"){oThis.textbox.value=oTarget.childNodes[oTarget.childNodes.length-1].nodeValue;selectedDivId=oTarget.id;oThis.provider.setAJAXCheck(oThis.textbox.name);oThis.hideSuggestions()}else{if(oEvent.type=="mouseover"){oThis.highlightSuggestion(oTarget)}else{oThis.textbox.focus()}}};document.body.appendChild(this.layer)};AutoSuggestControl.prototype.getLeft=function(){var obj=this.textbox;var curleft=0;if(document.getElementById||document.all){while(obj.offsetParent){curleft+=obj.offsetLeft;if(obj!=this.textbox){curleft=curleft-obj.scrollLeft+obj.clientLeft}obj=obj.offsetParent}}else{if(document.layers){curleft+=obj.x}}return curleft};AutoSuggestControl.prototype.getTop=function(){var obj=this.textbox;var curtop=0;if(document.getElementById||document.all){while(obj.offsetParent){curtop+=obj.offsetTop;if(obj!=this.textbox){curtop=curtop-obj.scrollTop+obj.clientTop}obj=obj.offsetParent}}else{if(document.layers){curtop+=obj.y}}return curtop};AutoSuggestControl.prototype.handleKeyDown=function(oEvent){oTarget=oEvent.target||oEvent.srcElement;switch(oEvent.keyCode){case 38:if(this.layer.style.visibility!="hidden"){this.previousSuggestion()}this.provider.setAJAXCheck(this.textbox.name);break;case 40:if(this.layer.style.visibility!="hidden"){this.nextSuggestion()}this.provider.setAJAXCheck(this.textbox.name);break;case 13:this.hideSuggestions();break}};AutoSuggestControl.prototype.handleKeyUp=function(oEvent){var iKeyCode=oEvent.keyCode;if(iKeyCode==8||iKeyCode==46){this.provider.requestSuggestions(this,false);this.provider.resetAJAXCheck(this.textbox.name)}else{if(iKeyCode<32||(iKeyCode>=33&&iKeyCode<46)||(iKeyCode>=112&&iKeyCode<=123)){}else{this.provider.requestSuggestions(this,true);this.provider.resetAJAXCheck(this.textbox.name)}}};AutoSuggestControl.prototype.hideSuggestions=function(){this.layer.style.visibility="hidden"};AutoSuggestControl.prototype.highlightSuggestion=function(oSuggestionNode){for(var i=0;i<this.layer.childNodes.length;i++){var oNode=this.layer.childNodes[i];if(oNode==oSuggestionNode){oNode.className="current"}else{if(oNode.className=="current"){oNode.className=""}}}};AutoSuggestControl.prototype.init=function(){var oThis=this;this.textbox.onkeyup=function(oEvent){if(!oEvent){oEvent=window.event}oThis.handleKeyUp(oEvent)};this.textbox.onkeydown=function(oEvent){if(!oEvent){oEvent=window.event}oThis.handleKeyDown(oEvent)};this.textbox.onblur=function(){if(oThis.provider.getAJAXCheck(oThis.textbox.name)!="1"){if(oThis.layer.childNodes){var firstChild=oThis.layer.childNodes[0];if(firstChild&&firstChild.childNodes&&firstChild.childNodes.length>0){oThis.textbox.value=firstChild.childNodes[firstChild.childNodes.length-1].nodeValue;selectedDivId=firstChild.id;oThis.provider.setAJAXCheck(oThis.textbox.name)}}}oThis.hideSuggestions()};this.createDropDown()};AutoSuggestControl.prototype.nextSuggestion=function(){var cSuggestionNodes=this.layer.childNodes;var oDiv=null;var newDivText=null;var image=null;var actionType="next";if(suggestions.length>cSuggestionNodes.length&&this.cur==cSuggestionNodes.length-1&&suggestionLength<suggestions.length){newDivText=suggestions[suggestionLength];if(suggestions.length-1==suggestionLength){actionType="default"}if(newDivText.indexOf("(")!=-1){oDiv=this.createDiv("A",newDivText,actionType)}else{oDiv=this.createDiv("C",newDivText,actionType)}this.layer.removeChild(cSuggestionNodes[0]);this.layer.appendChild(oDiv);this.highlightSuggestion(oDiv);this.textbox.value=(suggestions[suggestionLength].split("|"))[0];suggestionLength++}if(cSuggestionNodes.length>0&&this.cur<cSuggestionNodes.length-1){var oNode=cSuggestionNodes[++this.cur];this.highlightSuggestion(oNode);selectedDivId=oNode.id;this.textbox.value=oNode.childNodes[oNode.childNodes.length-1].nodeValue}};AutoSuggestControl.prototype.previousSuggestion=function(){var cSuggestionNodes=this.layer.childNodes;var oDiv=null;var image=null;var newDivText=null;var actionType="prev";if(suggestions[0]!=this.textbox.value&&this.cur==0){newDivText=suggestions[suggestionLength-cSuggestionNodes.length-1];if(suggestionLength==cSuggestionNodes.length+1){actionType="default"}if(newDivText.indexOf("(")!=-1){oDiv=this.createDiv("A",newDivText,actionType)}else{oDiv=this.createDiv("C",newDivText,actionType)}this.layer.insertBefore(oDiv,cSuggestionNodes[0]);this.layer.removeChild(this.layer.lastChild);this.highlightSuggestion(oDiv);this.textbox.value=(suggestions[suggestionLength-cSuggestionNodes.length-1].split("|"))[0];suggestionLength--}if(cSuggestionNodes.length>0&&this.cur>0){var oNode=cSuggestionNodes[--this.cur];this.highlightSuggestion(oNode);selectedDivId=oNode.id;this.textbox.value=oNode.childNodes[oNode.childNodes.length-1].nodeValue}};AutoSuggestControl.prototype.selectRange=function(iStart,iLength){if(this.textbox.createTextRange){var oRange=this.textbox.createTextRange();oRange.moveStart("character",iStart);oRange.moveEnd("character",iLength-this.textbox.value.length);oRange.select()}else{if(this.textbox.setSelectionRange){this.textbox.setSelectionRange(iStart,iLength)}}this.textbox.focus()};AutoSuggestControl.prototype.showSuggestions=function(aSuggestions){suggestions=aSuggestions;var oDiv=null;var image=null;var imageType="default";this.layer.innerHTML="";for(var i=0;i<aSuggestions.length&&i<divDisplayed;i++){if(i==divDisplayed-1&&aSuggestions.length>divDisplayed){imageType="next"}if(aSuggestions[i].indexOf("(")!=-1){oDiv=this.createDiv("A",aSuggestions[i],imageType)}else{oDiv=this.createDiv("C",aSuggestions[i],imageType)}this.layer.appendChild(oDiv)}if(aSuggestions.length>0){this.layer.style.left=this.getLeft()+"px";this.layer.style.top=(this.getTop()+this.textbox.offsetHeight)+"px";this.layer.style.visibility="visible";this.cur=-1}};AutoSuggestControl.prototype.createDiv=function(type,textForDiv,imageType){var oDiv=document.createElement("div");var textandId=textForDiv.split("|");oDiv.style.width=320;oDiv.setAttribute("id",textandId[1]);var image=null;var image1=null;if(type=="A"){image=document.createElement("img");image.setAttribute("alt","airport");image.setAttribute("width","12");image.setAttribute("height","12");image.setAttribute("src","/objimages/airport_icon.gif");oDiv.appendChild(image)}oDiv.appendChild(document.createTextNode(textandId[0]));return oDiv};AutoSuggestControl.prototype.replaceImage=function(oDiv,imageName){var image=null;oDiv.removeChild(oDiv.childNodes[oDiv.childNodes.length-1]);image=document.createElement("img");image.setAttribute("width","12");image.setAttribute("height","12");image.setAttribute("src",imageName);oDiv.appendChild(image)};AutoSuggestControl.prototype.typeAhead=function(sSuggestion){if(this.textbox.createTextRange||this.textbox.setSelectionRange){var iLen=this.textbox.value.length;this.selectRange(iLen,sSuggestion.length)}};
