function AutoCompleteComp(){AutoCompleteComp.superclass.constructor.call(this);}YAHOO.lang.extend(AutoCompleteComp,HwTilesComp);AutoCompleteComp.PROP_AUTO_COMPLETE_CONFIGS="autoCompleteConfigs";AutoCompleteComp.STATE={AUTO_COMPLETE:1,DISAMBIGUATION:2,INTERMEDIATE:3};AutoCompleteComp.seeAllCities=function(g,h,k){var a=[];if(h){var f;if(k){f=YAHOO.util.Dom.getElementsBy(function(i){return i.name&&i.name===h;},null,document[k]);}else{f=document.getElementsByName(h);}for(var d=0;d<f.length;d++){if(f[d].id){a.push(f[d].id);}}}else{var e=g.parentNode;outerLoop:while(e!==null){var b=e.getElementsByTagName("input");for(var c=0;c<b.length;c++){if(b[c].getAttribute("type")=="text"){a.push(b[c].id);break outerLoop;}}e=e.parentNode;}}AppSupport.popUpWindow(g.href,"seeAllCities","scrollbars=1,menubar=0,resizable=1,status=0,width=469,height=585",false);AutoCompleteComp.currentSeeAllCitiesFields=a;};AutoCompleteComp.selectFromSeeAllCities=function(b,f){for(var a=0;a<AutoCompleteComp.currentSeeAllCitiesFields.length;a++){var e=document.getElementById(AutoCompleteComp.currentSeeAllCitiesFields[a]);DomSupport.setValue(e,f);if(e.id){var d=CompSupport.getJsObj(e,AutoCompleteComp);var c=d.inputId2AutoCompleteObjMap[e.id];if(c){if(c.state==AutoCompleteComp.STATE.DISAMBIGUATION){d.switchDisambiguationToIntermediate(c);}d.switchIntermediateToAutoComplete(c);}}if(a===0){e.focus();}}delete AutoCompleteComp.currentSeeAllCitiesFields;b.close();};AutoCompleteComp.prototype.doBeforeExpandContainerOverride=function(a,b,g,f){var d=b.firstChild;d.style.display="block";PositionSupport.setPosition(d,b.previousSibling);var e=b.getElementsByTagName("iframe");if(e.length>0){var c=e[0];YAHOO.util.Dom.setXY(c,YAHOO.util.Dom.getXY(d));}d.style.display="none";return true;};AutoCompleteComp.prototype.formatResultOverride=function(e,g){var c=e[0];var b=false;var a=e[1]?"airplane":"none";for(var d=1;d<e.length;d++){var f=e[d];if(f&&typeof f=="string"){if(!b){c+=" (";b=true;}else{c+=" ";}c+=e[d];}}if(b){c+=")";}return"<div class='"+a+"'>"+c+"</div>";};AutoCompleteComp.prototype.init=function(){AutoCompleteComp.superclass.init.call(this);this.inputId2AutoCompleteObjMap={};var c=this[AutoCompleteComp.PROP_AUTO_COMPLETE_CONFIGS];if(c){for(var b=0;b<c.length;b++){var a=c[b];if(this.autoCompleteDisabled&&!a.disambiguationJSON){continue;}this.registerAutoComplete(a);}}};AutoCompleteComp.prototype.registerAutoComplete=function(b){var d=this.resolveInputElement(b);if(!d){return;}var f=document.createElement("div");d.parentNode.insertBefore(f,d.nextSibling);var e;if(this.autoCompleteDisabled){e=new YAHOO.util.LocalDataSource([]);}else{e=new YAHOO.util.XHRDataSource("/autocomplete");e.responseType=YAHOO.util.XHRDataSource.TYPE_JSON;e.responseSchema=b.schema;if(b.resultsMutatorFunc){e.subscribe("responseParseEvent",this[b.resultsMutatorFunc],b,this);}}var a=new YAHOO.widget.AutoComplete(d,f,e);if(!this.autoCompleteDisabled){var g="PGoodCode="+b.pGoodCode;if(b.filterType){g+="&filterType="+b.filterType;}if(b.queryParams){g+="&"+b.queryParams;}a.generateRequest=function(h){return"?"+g+"&query="+h;};}a.formatResult=this.formatResultOverride;a.doBeforeExpandContainer=this.doBeforeExpandContainerOverride;a.minQueryLength=3;a.animSpeed=0.1;a.queryDelay=0.1;if(YAHOO.env.ua.ie>0&&YAHOO.env.ua.ie<=6){a.useIFrame=true;}a.inputElementId=d.id;this.inputId2AutoCompleteObjMap[d.id]=a;a.state=AutoCompleteComp.STATE.AUTO_COMPLETE;YAHOO.util.Event.addListener(d,"keydown",this.acKeyDownEventHandler,a,this);var c=YAHOO.util.Dom.getPreviousSibling(d);if(c){if(c.name==="isFromAutoComplete"){a.itemSelectEvent.subscribe(this.setIsFromAutoCompleteToTrue,c,true);YAHOO.util.Event.addListener(d,"keydown",this.setIsFromAutoCompleteToFalse,c,this);}}if(b.disambiguationJSON){this.registerDisambiguation(a,b);}};AutoCompleteComp.prototype.registerDisambiguation=function(f,b){var a=[];var g=b.disambiguationJSON[b.schema.resultsList];for(var e=0;e<g.length;e++){var h=[];for(var d=0;d<b.schema.fields.length;d++){h[d]=g[e][b.schema.fields[d]];}a[e]=h;}f.cachedDataSource=f.dataSource;f.dataSource=new YAHOO.util.FunctionDataSource(function(i){return a;});if(b.resultsMutatorFunc){f.dataSource.subscribe("responseParseEvent",this[b.resultsMutatorFunc],b,this);}if(b.disambiguationHeader){f.setHeader(b.disambiguationHeader);}f.state=AutoCompleteComp.STATE.DISAMBIGUATION;f.textboxFocusEvent.subscribe(this.disambiguationFocusEventHandler,this,true);f.textboxKeyEvent.subscribe(this.disambiguationKeydownEventHandler,this,true);f.textboxBlurEvent.subscribe(this.disambiguationBlurEventHandler,this,true);f.itemSelectEvent.subscribe(this.disambiguationItemSelectEventHandler,this,true);if(!this.initialDisambiguationLayerShown){var k;var c=function(i){if(document.getElementById(this.domId).style.visibility==="inherit"){k.cancel();document.getElementById(i.inputElementId).focus();this.initialDisambiguationLayerShown=true;}};k=YAHOO.lang.later(100,this,c,f,true);}};AutoCompleteComp.prototype.acKeyDownEventHandler=function(a,b){var c=a.keyCode;if(YAHOO.env.ua.ie>0&&c==27&&b.isContainerOpen()){YAHOO.util.Event.stopEvent(a);}};AutoCompleteComp.prototype.disambiguationFocusEventHandler=function(a,c){var b=c[0];b.minQueryLength=0;b.sendQuery("");};AutoCompleteComp.prototype.disambiguationBlurEventHandler=function(a,c){var b=c[0];if(b.state==AutoCompleteComp.STATE.INTERMEDIATE){this.switchIntermediateToAutoComplete(b);}else{this.focusNextAmbiguousInput(b);}};AutoCompleteComp.prototype.disambiguationItemSelectEventHandler=function(a,c){var b=c[0];if(b.state==AutoCompleteComp.STATE.DISAMBIGUATION){this.switchDisambiguationToIntermediate(b);}this.switchIntermediateToAutoComplete(b);};AutoCompleteComp.prototype.switchDisambiguationToIntermediate=function(a){a.dataSource=a.cachedDataSource;a.cachedDataSource=null;a.setHeader(null);a.minQueryLength=3;a.textboxFocusEvent.unsubscribe(this.disambiguationFocusEventHandler);a.state=AutoCompleteComp.STATE.INTERMEDIATE;};AutoCompleteComp.prototype.focusNextAmbiguousInput=function(a){var f=document.getElementById(a.inputElementId);var c=YAHOO.util.Dom.getAncestorByTagName(f,"form").getElementsByTagName("input");for(var b=0;b<c.length;b++){var d=c[b];if(d.id){var e=this.inputId2AutoCompleteObjMap[d.id];if(e&&e!=a&&e.cachedDataSource){d.focus();break;}}}};AutoCompleteComp.prototype.switchIntermediateToAutoComplete=function(a){a.textboxBlurEvent.unsubscribe(this.disambiguationBlurEventHandler);a.itemSelectEvent.unsubscribe(this.disambiguationItemSelectEventHandler);a.textboxKeyEvent.unsubscribe(this.disambiguationKeydownEventHandler);a.state=AutoCompleteComp.STATE.AUTO_COMPLETE;this.focusNextAmbiguousInput(a);};AutoCompleteComp.prototype.disambiguationKeydownEventHandler=function(a,c){var b=c[0];var d=c[1];if(d==37||d==38||d==40){return;}if(b.state==AutoCompleteComp.STATE.DISAMBIGUATION){this.switchDisambiguationToIntermediate(b);}if(d==39||d==13){this.switchIntermediateToAutoComplete(b);}};AutoCompleteComp.prototype.resolveInputElement=function(b){var a,c;if(b.formName){var d=function(e){return e.name==b.formName;};a=YAHOO.util.Dom.getElementsBy(d,"form",this.domId,null);}else{a=document.getElementById(this.domId).getElementsByTagName("form");}if(a.length>0){c=a[a.length-1][b.fieldName];if(!c.id){c.id=this.domId+"-"+b.fieldName;if(b.formName){c.id+="-"+b.formName;}}}return c;};AutoCompleteComp.prototype.appendCitySuffixForDisplay=function(a,b){var d=a.response.results;for(var c=0;c<d.length;c++){var e=d[c];if(!(e.a)){e.e="city";}else{e.e="airport";}}};AutoCompleteComp.prototype.setIsFromAutoCompleteToTrue=function(){DomSupport.setValue(this,true);};AutoCompleteComp.prototype.setIsFromAutoCompleteToFalse=function(a,b){var c=a.keyCode;if(c!==9&&c!==13){DomSupport.setValue(b,false);}};