
function AutoSuggestBox(SearchInputID,MultiSelectID,fnSearch,fnFound){var that={};var eSearchInput,eMultiSelect;var iMaxListHeight=280;var arrArgs;var iSelectTextHeight=20;function Initiate(){eSearchInput=document.getElementById(SearchInputID);eMultiSelect=document.getElementById(MultiSelectID);PositionElement();eMultiSelect.style.visibility='hidden';eMultiSelect.onclick=GetResultClickHandler;eMultiSelect.onkeypress=GetResultKeyPressHandler;eSearchInput.onkeypress=GetResultKeyPressHandler;}
function GetResultClickHandler(){var id=eMultiSelect.options[eMultiSelect.selectedIndex].id;var text=eMultiSelect.options[eMultiSelect.selectedIndex].innerHTML;eSearchInput.value=text;eMultiSelect.style.visibility='hidden';fnFound(id,text,arrArgs);}
function GetResultKeyPressHandler(e){if(e==undefined)e=event;if(GetKeyCode(e)==13){GetResultClickHandler();return!(e&&e.keyCode==13);}}
function GetKeyCode(e){if(e){return e.charCode?e.charCode:e.keyCode;}
else{return window.event.charCode?window.event.charCode:window.event.keyCode;}}
function PositionElement(){eMultiSelect.style.position='absolute';eMultiSelect.style.width=eSearchInput.offsetWidth+'px';}
var undefined;that.CreateResults=function(e){var unicode=GetKeyCode(e);if(unicode==13)return;document.getElementById("CityID").value=0;document.getElementById("CityText").innerHTML="";if(arguments!=undefined){arrArgs=arguments;}
if(unicode==40){if(eMultiSelect.style.visibility=='visible'){eMultiSelect.options.selectedIndex=0;eMultiSelect.focus();return;}}
if(unicode==38){if(eMultiSelect.style.visibility=='visible'){eMultiSelect.options.selectedIndex=eMultiSelect.options.length-1;eMultiSelect.focus();return;}}
if(eSearchInput.value.length<1){eMultiSelect.style.visibility='hidden';return;}
var arrResults=fnSearch(eSearchInput.value),i,eOption,iCount=0;if(arrResults==undefined){eMultiSelect.style.visibility='hidden';return;}
eMultiSelect.innerHTML='';for(i=0;i<arrResults.length;i++){if(arrResults[i]!=undefined){eOption=document.createElement('option');eOption.setAttribute('id',arrResults[i].id);eOption.innerHTML=arrResults[i].text;eMultiSelect.appendChild(eOption);iCount++;}}
if(iCount<1){eMultiSelect.style.visibility='hidden';return;}
PositionElement();var iHeight=iCount*iSelectTextHeight;if(iCount>2){if(iHeight>iMaxListHeight){eMultiSelect.style.height=iMaxListHeight+'px';}
else{eMultiSelect.style.height=iHeight+'px';}}
eMultiSelect.style.visibility='visible';eMultiSelect.options.selectedIndex=0;}
Initiate();return that;}
function GetResults(sSearch){var arrCountryCodePairs=new countryCodes(),i,arrResults=new Array(arrCountryCodePairs.length),arrBits,objResult,iCount=0;for(i=0;i<arrCountryCodePairs.length;i++){arrBits=arrCountryCodePairs[i].split('=');if(arrBits.length>1){if(arrBits[1].toLowerCase().substring(0,sSearch.length)==sSearch.toLowerCase()){objResult={};objResult.id=arrBits[0];objResult.text=arrBits[1];arrResults[iCount]=objResult;iCount++;}}}
return arrResults;}
function HandleChoice(sID,sText,arrExtra){var ID=sID.split(',')
var Text=sText.split(',')
document.getElementById("CityID").value=ID[0];document.getElementById("CityText").innerHTML=" FOR "+ID[1]+' '+Text[0]+' HOTELS ';}