var searchAutoComplete = { init : function() { var autoCompleteStatus = "up"; if(autoCompleteStatus == "up" && document.getElementById("city-airport")) { // Create AutoComplete widget var cityAirportData = new YAHOO.widget.DS_XHR("/search/autoComplete.mi", ["Suggestion","City","type","AirportCode","AirportName","State","StateCode","Country","CountryCode"]); cityAirportData.responseType = YAHOO.widget.DS_XHR.TYPE_XML; cityAirportData.scriptQueryParam = "searchTerm"; var cityAirportAutoComp = new YAHOO.widget.AutoComplete("city-airport","autocomplete-results", cityAirportData); cityAirportAutoComp.queryDelay = 0.3; cityAirportAutoComp.prehighlightClassName = "yui-ac-prehighlight"; cityAirportAutoComp.useShadow = true; cityAirportAutoComp.queryMatchContains = true; cityAirportAutoComp.minQueryLength = 3; cityAirportAutoComp.maxResultsDisplayed = 100; cityAirportAutoComp.useIFrame = true; cityAirportAutoComp.itemSelectEvent.subscribe(searchAutoComplete.autoCompItemSelected); cityAirportAutoComp.allowBrowserAutocomplete = false; // This function adds the airport class to result items cityAirportAutoComp.formatResult = function(aResultItem, sQuery) { var displayText = ""; var resultClass = "city-result"; if(aResultItem[1] == "airport") { resultClass = "airport-result"; // This is airport result - display as 'Airport name (Airport code) City, StateCode, Country' displayText = aResultItem[3] + " (" + aResultItem[2] + ") " + aResultItem[0]; // Airport name, code, city if(aResultItem[5] != "") { displayText = displayText + ", " + aResultItem[5]; } // State if there is one displayText = displayText + ", " + aResultItem[6]; // Country } else { // This is city result - display as 'City, StateCode, Country' displayText = aResultItem[0]; // City if(aResultItem[5] != "") { displayText = displayText + ", " + aResultItem[5]; } // State if there is one displayText = displayText + ", " + aResultItem[6]; // Country } var markup = ["
","",displayText,"","
"]; return (markup.join("")); }; } }, autoCompItemSelected : function(sType, aArgs) { var autoCompData = aArgs[2]; //array of the data for the item as returned by the DataSource var city = autoCompData[0]; var airportCode = autoCompData[2]; var airportName = autoCompData[3]; var stateCode = autoCompData[5]; var countryCode = autoCompData[7]; var hiddenCityAirport = document.getElementById("destinationAirportCode"); var cityAirportField = document.getElementById("city-airport"); if(airportCode != "") { hiddenCityAirport.value = airportCode; cityAirportField.value = airportName + " (" + airportCode + ")"; } else { hiddenCityAirport.value = ""; cityAirportField.value = city; } // Set the state and country hiddenCityAirport.form.elements["destinationAddress.stateProvince"].value = stateCode; hiddenCityAirport.form.elements["destinationAddress.country"].value = countryCode; } } addLoadEvent(searchAutoComplete.init);