var searchAutoComplete = { init : function() { var autoCompleteStatus = "up"; var endecaStatus = "up"; if(autoCompleteStatus == "up" && endecaStatus == "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.2; cityAirportAutoComp.prehighlightClassName = "yui-ac-prehighlight"; cityAirportAutoComp.useShadow = true; cityAirportAutoComp.queryMatchContains = true; cityAirportAutoComp.minQueryLength = 3; cityAirportAutoComp.maxResultsDisplayed = 100; cityAirportAutoComp.useIFrame = true; if(cityAirportAutoComp.itemSelectEvent) { 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 cityAirportField = document.getElementById("city-airport"); if(airportCode != "") { cityAirportField.value = airportCode; } else { cityAirportField.value = city; } // Set the state and country if(document.getElementById("destinationAddress.stateProvince")) {cityAirportField.form.elements["destinationAddress.stateProvince"].value = stateCode; } if(document.getElementById("destinationAddress.country")) {cityAirportField.form.elements["destinationAddress.country"].value = countryCode; } if(document.getElementById("stateList")) {cityAirportField.form.elements["searchCriteriaVO.stateProvince"].value = stateCode; } if(document.getElementById("countryList")) {cityAirportField.form.elements["searchCriteriaVO.country"].value = countryCode; } } } addLoadEvent(searchAutoComplete.init);