Type.registerNamespace("USAirways");function InitializeFindAirport(a){try{var d=$get(a);if(d.AirportFinder==null){var c=new USAirways.AirportFinder(d);d.AirportFinder=c}}catch(b){}}if(document.body.__defineGetter__){if(typeof(HTMLElement)!=="undefined"){var element=HTMLElement.prototype;if(element.__defineGetter__){element.__defineGetter__("outerHTML",function(){var c=this.parentNode;var b=document.createElement(c.tagName);b.appendChild(this);var a=b.innerHTML;c.appendChild(this);return a})}}}USAirways.AirportFinder=function(h){USAirways.AirportFinder.initializeBase(this);this.Control(h);var d=this.Control().resulttableid;if(!d){d=this.Control().attributes.resulttableid.value}var a=this.Control().itemtemplateid;if(!a){a=this.Control().attributes.itemtemplateid.value}var g=this.Control().alternatetemplateid;if(!g){g=this.Control().attributes.alternatetemplateid.value}var f=this.Control().countrylistid;if(!f){f=this.Control().attributes.countrylistid.value}var b=this.Control().statelistid;if(!b){b=this.Control().attributes.statelistid.value}var c=this.Control().behaviorid;if(!c){c=this.Control().attributes.behaviorid.value}var e=$get(c);this.CountryList($get(f));this.StateList($get(b));this.PopOver(e.PopOverBehavior);this.ResultTable($get(d));this.ItemTemplate($get(a));this.AlternateTemplate($get(g));this.ConfigureElements();this.ConfigureHandlers()};USAirways.AirportFinder.prototype={initialize:function(){USAirways.AirportFinder.callBaseMethod(this,"initialize")},ConfigureHandlers:function(){$addHandler(this.CountryList(),"change",this.GetEventReference("OnCountryChange"));$addHandler(this.StateList(),"change",this.GetEventReference("OnStateChange"))},ConfigureElements:function(){},dispose:function(){USAirways.AirportFinder.callBaseMethod(this,"dispose")},OnCountryChange:function(a){USAirways.Web.Shared.UI.Services.LocationService.GetStates(this.CountryList().value,this.GetEventReference("OnCountryChangeSuccess"),this.GetEventReference("OnCountryChangeFailed"))},OnCountryChangeSuccess:function(b){this.StateList().options.length=1;if(b.length>0){for(var a=0;a<b.length;a++){this.StateList().options[a+1]=new Option(b[a].Name,b[a].Code)}this.StateList().options[0].selected=true;this.ClearResults();this.StateList().disabled=false}else{this.StateList().options[1]=new Option("","");this.StateList().options[1].selected=true;this.StateList().disabled=true;this.OnStateChange(null)}},OnCountryChangeFailed:function(a){alert(a)},OnStateChange:function(a){switch(this.SearchContext()){case"Hotels":USAirways.Web.Shared.UI.Services.LocationService.FindHotels(this.CountryList().value,this.StateList().value,this.SearchFilter(),this.GetEventReference("OnStateChangeSuccess"),this.GetEventReference("OnStateChangeFailed"));break;default:USAirways.Web.Shared.UI.Services.LocationService.FindAirports(this.CountryList().value,this.StateList().value,this.SearchFilter(),this.GetEventReference("OnStateChangeSuccess"),this.GetEventReference("OnStateChangeFailed"));break}},OnStateChangeSuccess:function(c){var h=this.ResultTable().id;var b=this.ItemTemplate().id;var j=this.AlternateTemplate().id;this.ClearResults();this.ResultTable().insertRow(this.ResultTable().rows.length).insertCell(0).innerHTML="here";if(this.AlternateTemplate()==null){this.AlternateTemplate(this.ItemTemplate())}var f="";for(var d=0;d<c.length;d++){var e="";if(d%2==1){e=this.AlternateTemplate().outerHTML}else{e=this.ItemTemplate().outerHTML}e=e.replace(/%cityname%/gi,c[d].CityName);e=e.replace(/%displayname%/gi,c[d].DisplayName);var a=c[d].Code;if(a.length>3){a=a.substr(0,3)}e=e.replace(/%shortcode%/gi,a);e=e.replace(/%fullcode%/gi,c[d].Code);e=e.replace(/%textresult%/gi,c[d].AnchorText);f=f+e}var g=this.ResultTable().outerHTML;g=g.replace(/<tr>\s*<td>\s*here\s*<\/td>\s*<\/tr>/gi,f);if(typeof(HTMLElement)!=="undefined"){this.ResultTable().parentNode.innerHTML=this.ResultTable().parentNode.innerHTML.replace(this.ResultTable().outerHTML,g);this.ResultTable($get(h));this.ItemTemplate($get(b));this.AlternateTemplate($get(j))}else{this.ResultTable().outerHTML=g;this.ResultTable($get(h))}this.PopOver().positionPopover()},OnStateChangeFailed:function(a){alert(a.message)},OnAirportSelected:function(a){if(typeof(this.TextBox())!=="undefined"&&this.TextBox()!=null){this.TextBox().value=a}this.Hide();return false},Control:function(a){if(typeof(a)!="undefined"){this._control=a}return this._control},CountryList:function(a){if(typeof(a)!="undefined"){this._countryList=a}return this._countryList},StateList:function(a){if(typeof(a)!="undefined"){this._stateList=a}return this._stateList},PopOver:function(a){if(typeof(a)!="undefined"){this._popOver=a}return this._popOver},SearchFilter:function(a){if(typeof(a)!="undefined"){this._searchFilter=a}return this._searchFilter},SearchContext:function(a){if(typeof(a)!="undefined"){this._searchContext=a}return this._searchContext},TextBox:function(a){if(typeof(a)!="undefined"){this._textBox=a}return this._textBox},ResultTable:function(a){if(typeof(a)!="undefined"){this._results=a}return this._results},ItemTemplate:function(a){if(typeof(a)!="undefined"){this._item=a}return this._item},AlternateTemplate:function(a){if(typeof(a)!="undefined"){this._alternate=a}return this._alternate},GetEventReference:function(a){var b=this;return function(c){b[a].call(b,c||window.event)}},ClearResults:function(){while(this.ResultTable().rows.length!=1){this.ResultTable().deleteRow(this.ResultTable().rows.length-1)}},ClearStateSelection:function(){if(this.StateList().disabled==false){this.StateList().options[0].selected=true}else{this.StateList().options[1].selected=true}},Show:function(c,b,a){if(this.StateList().disabled==false){this.ClearResults()}else{if(this.SearchFilter()!=a||this.SearchContext()!=b){this.ClearResults();this.CountryList().options[0].selected=true}}this.ClearStateSelection();this.TextBox($get(c));this.SearchFilter(a);this.SearchContext(b);this.PopOver().show()},Hide:function(){this.TextBox(null);this.PopOver().hide()}};USAirways.AirportFinder.registerClass("USAirways.AirportFinder",Sys.Component,Sys.IDisposable);if(typeof(Sys)!=="undefined"){Sys.Application.notifyScriptLoaded()};