YUI.add("autocomplete-list",function(o,t){var e,s=o.Lang,i=o.Node,n=o.Array,h=o.UA.ie&&o.UA.ie<7,a="_CLASS_ITEM",r="_CLASS_ITEM_ACTIVE",l="_CLASS_ITEM_HOVER",u="_SELECTOR_ITEM",c="activeItem",d="alwaysShowList",_="circular",g="hoveredItem",v="item",f="list",m="result",p="results",I="visible",N="width",C="select",E=o.Base.create("autocompleteList",o.Widget,[o.AutoCompleteBase,o.WidgetPosition,o.WidgetPositionAlign],{ARIA_TEMPLATE:"
",ITEM_TEMPLATE:"",LIST_TEMPLATE:"",UI_EVENTS:(e=o.merge(o.Node.DOM_EVENTS),delete e.valuechange,delete e.valueChange,e),initializer:function(){var t=this.get("inputNode");t?(this._inputNode=t,this._listEvents=[],this.DEF_PARENT_NODE=t.get("parentNode"),this[a]=this.getClassName(v),this[r]=this.getClassName(v,"active"),this[l]=this.getClassName(v,"hover"),this[u]="."+this[a],this.publish(C,{defaultFn:this._defSelectFn})):o.error("No inputNode specified.")},destructor:function(){for(;this._listEvents.length;)this._listEvents.pop().detach();this._ariaNode&&this._ariaNode.remove().destroy(!0)},bindUI:function(){this._bindInput(),this._bindList()},renderUI:function(){var t=this._createAriaNode(),e=this.get("boundingBox"),i=this.get("contentBox"),s=this._inputNode,n=this._createListNode(),a=s.get("parentNode");s.addClass(this.getClassName("input")).setAttrs({"aria-autocomplete":f,"aria-expanded":!1,"aria-owns":n.get("id")}),a.append(t),h&&e.plug(o.Plugin.Shim),this._ariaNode=t,this._boundingBox=e,this._contentBox=i,this._listNode=n,this._parentNode=a},syncUI:function(){this._syncResults(),this._syncVisibility()},hide:function(){return this.get(d)?this:this.set(I,!1)},selectItem:function(t,e){if(t){if(!t.hasClass(this[a]))return this}else if(!(t=this.get(c)))return this;return this.fire(C,{itemNode:t,originEvent:e||null,result:t.getData(m)}),this},_activateNextItem:function(){var t,e=this.get(c);return t=e?e.next(this[u])||(this.get(_)?null:e):this._getFirstItemNode(),this.set(c,t),this},_activatePrevItem:function(){var t=this.get(c),e=t?t.previous(this[u]):this.get(_)&&this._getLastItemNode();return this.set(c,e||null),this},_add:function(t){var e=[];return n.each(s.isArray(t)?t:[t],function(t){e.push(this._createItemNode(t).setData(m,t))},this),e=o.all(e),this._listNode.append(e.toFrag()),e},_ariaSay:function(t,e){var i=this.get("strings."+t);this._ariaNode.set("text",e?s.sub(i,e):i)},_bindInput:function(){var t,e,i,s=this._inputNode;null===this.get("align")&&(t=(i=this.get("tokenInput"))&&i.get("boundingBox")||s,this.set("align",{node:t,points:["tl","bl"]}),!this.get(N)&&(e=t.get("offsetWidth"))&&this.set(N,e)),this._listEvents=this._listEvents.concat([s.after("blur",this._afterListInputBlur,this),s.after("focus",this._afterListInputFocus,this)])},_bindList:function(){this._listEvents=this._listEvents.concat([o.one("doc").after("click",this._afterDocClick,this),o.one("win").after("windowresize",this._syncPosition,this),this.after({mouseover:this._afterMouseOver,mouseout:this._afterMouseOut,activeItemChange:this._afterActiveItemChange,alwaysShowListChange:this._afterAlwaysShowListChange,hoveredItemChange:this._afterHoveredItemChange,resultsChange:this._afterResultsChange,visibleChange:this._afterVisibleChange}),this._listNode.delegate("click",this._onItemClick,this[u],this)])},_clear:function(){this.set(c,null),this._set(g,null),this._listNode.get("children").remove(!0)},_createAriaNode:function(){return i.create(this.ARIA_TEMPLATE).addClass(this.getClassName("aria")).setAttrs({"aria-live":"polite",role:"status"})},_createItemNode:function(t){var e=i.create(this.ITEM_TEMPLATE);return e.addClass(this[a]).setAttrs({id:o.stamp(e),role:"option"}).setAttribute("data-text",t.text).append(t.display)},_createListNode:function(){var t=this.get("listNode")||i.create(this.LIST_TEMPLATE);return t.addClass(this.getClassName(f)).setAttrs({id:o.stamp(t),role:"listbox"}),this._set("listNode",t),this.get("contentBox").append(t),t},_getFirstItemNode:function(){return this._listNode.one(this[u])},_getLastItemNode:function(){return this._listNode.one(this[u]+":last-child")},_syncPosition:function(){this._syncUIPosAlign(),this._syncShim()},_syncResults:function(t){t||(t=this.get(p)),this._clear(),t.length&&(this._add(t),this._ariaSay("items_available")),this._syncPosition(),this.get("activateFirstItem")&&!this.get(c)&&this.set(c,this._getFirstItemNode())},_syncShim:h?function(){var t=this._boundingBox.shim;t&&t.sync()}:function(){},_syncVisibility:function(t){this.get(d)&&(t=!0,this.set(I,t)),void 0===t&&(t=this.get(I)),this._inputNode.set("aria-expanded",t),this._boundingBox.set("aria-hidden",!t),t?this._syncPosition():(this.set(c,null),this._set(g,null),this._boundingBox.get("offsetWidth")),7===o.UA.ie&&o.one("body").addClass("yui3-ie7-sucks").removeClass("yui3-ie7-sucks")},_afterActiveItemChange:function(t){var e,i=this._inputNode,s=t.newVal,n=t.prevVal;n&&n._node&&n.removeClass(this[r]),s?(s.addClass(this[r]),i.set("aria-activedescendant",s.get("id"))):i.removeAttribute("aria-activedescendant"),this.get("scrollIntoView")&&((e=s||i).inRegion(o.DOM.viewportRegion(),!0)&&e.inRegion(this._contentBox,!0)||e.scrollIntoView())},_afterAlwaysShowListChange:function(t){this.set(I,t.newVal||0