(function() { var Dom = YAHOO.util.Dom; var Event = YAHOO.util.Event; YAHOO.widget.MenuManager = new function() { var m_bInitializedEventHandlers = false; var m_oMenus = {}; var m_oItems = {}; var m_oVisibleMenus = {}; var addItem = function(p_oItem) { var sYUIId = Dom.generateId(); if(p_oItem && m_oItems[sYUIId] != p_oItem) { p_oItem.element.setAttribute("yuiid", sYUIId); m_oItems[sYUIId] = p_oItem; p_oItem.destroyEvent.subscribe(onItemDestroy, p_oItem);}
}; var removeItem = function(p_oItem) { var sYUIId = p_oItem.element.getAttribute("yuiid"); if(sYUIId && m_oItems[sYUIId]) { delete m_oItems[sYUIId];}
}; var getMenuRootElement = function(p_oElement) { var oParentNode; if(p_oElement && p_oElement.tagName) { switch(p_oElement.tagName.toUpperCase()) { case "DIV":
oParentNode = p_oElement.parentNode; if( Dom.hasClass(p_oElement, "bd") &&
oParentNode &&
oParentNode.tagName &&
oParentNode.tagName.toUpperCase() == "DIV" ) { return oParentNode;}
else { return p_oElement;}
break; case "LI":
return p_oElement; default:
oParentNode = p_oElement.parentNode; if(oParentNode) { return getMenuRootElement(oParentNode);}
break;}
}
}; var onDOMEvent = function(p_oEvent) { var oTarget = Event.getTarget(p_oEvent); var oElement = getMenuRootElement(oTarget); var oMenuItem; var oMenu; if(oElement) { var sTagName = oElement.tagName.toUpperCase(); if(sTagName == "LI") { var sYUIId = oElement.getAttribute("yuiid"); if(sYUIId) { oMenuItem = m_oItems[sYUIId]; oMenu = oMenuItem.parent;}
}
else if(sTagName == "DIV") { if(oElement.id) { oMenu = m_oMenus[oElement.id];}
}
}
if(oMenu) { var oEventTypes = { "click": "clickEvent", "mousedown": "mouseDownEvent", "mouseup": "mouseUpEvent", "mouseover": "mouseOverEvent", "mouseout": "mouseOutEvent", "keydown": "keyDownEvent", "keyup": "keyUpEvent", "keypress": "keyPressEvent"
}; var sCustomEventType = oEventTypes[p_oEvent.type]; if(oMenuItem && !oMenuItem.cfg.getProperty("disabled")) { oMenuItem[sCustomEventType].fire(p_oEvent);}
oMenu[sCustomEventType].fire(p_oEvent, oMenuItem);}
else if(p_oEvent.type == "mousedown") { var oActiveItem; for(var i in m_oMenus) { if(m_oMenus.hasOwnProperty(i)) { oMenu = m_oMenus[i]; if( oMenu.cfg.getProperty("clicktohide") &&
oMenu.cfg.getProperty("position") == "dynamic" ) { oMenu.hide();}
else { oMenu.clearActiveItem(true);}
}
}
}
}; var onMenuDestroy = function(p_sType, p_aArgs, p_oMenu) { this.removeMenu(p_oMenu);}; var onItemDestroy = function(p_sType, p_aArgs, p_oItem) { var sYUIId = p_oItem.element.getAttribute("yuiid"); if(sYUIId) { delete m_oItems[sYUIId];}
}; var onMenuVisibleConfigChange = function(p_sType, p_aArgs, p_oMenu) { var bVisible = p_aArgs[0]; if(bVisible) { m_oVisibleMenus[p_oMenu.id] = p_oMenu;}
else if(m_oVisibleMenus[p_oMenu.id]) { delete m_oVisibleMenus[p_oMenu.id];}
}; var onItemAdded = function(p_sType, p_aArgs) { addItem(p_aArgs[0]);}; var onItemRemoved = function(p_sType, p_aArgs) { removeItem(p_aArgs[0]);}; this.addMenu = function(p_oMenu) { if(p_oMenu && p_oMenu.id && !m_oMenus[p_oMenu.id]) { m_oMenus[p_oMenu.id] = p_oMenu; if(!m_bInitializedEventHandlers) { var oDoc = document; Event.addListener(oDoc, "mouseover", onDOMEvent, this, true); Event.addListener(oDoc, "mouseout", onDOMEvent, this, true); Event.addListener(oDoc, "mousedown", onDOMEvent, this, true); Event.addListener(oDoc, "mouseup", onDOMEvent, this, true); Event.addListener(oDoc, "click", onDOMEvent, this, true); Event.addListener(oDoc, "keydown", onDOMEvent, this, true); Event.addListener(oDoc, "keyup", onDOMEvent, this, true); Event.addListener(oDoc, "keypress", onDOMEvent, this, true); m_bInitializedEventHandlers = true;}
p_oMenu.destroyEvent.subscribe(onMenuDestroy, p_oMenu, this); p_oMenu.cfg.subscribeToConfigEvent( "visible", onMenuVisibleConfigChange, p_oMenu ); p_oMenu.itemAddedEvent.subscribe(onItemAdded); p_oMenu.itemRemovedEvent.subscribe(onItemRemoved);}
}; this.removeMenu = function(p_oMenu) { if(p_oMenu && m_oMenus[p_oMenu.id]) { delete m_oMenus[p_oMenu.id];}
}; this.hideVisible = function() { var oMenu; for(var i in m_oVisibleMenus) { if(m_oVisibleMenus.hasOwnProperty(i)) { oMenu = m_oVisibleMenus[i]; if(oMenu.cfg.getProperty("position") == "dynamic") { oMenu.hide();}
}
}
}; this.getMenus = function() { return m_oMenus;}; this.getMenu = function(p_sId) { if(m_oMenus[p_sId]) { return m_oMenus[p_sId];}
}; this.toString = function() { return ("MenuManager");};};})(); (function() { var Dom = YAHOO.util.Dom; var Event = YAHOO.util.Event; YAHOO.widget.Menu = function(p_oElement, p_oConfig) { if(p_oConfig) { this.parent = p_oConfig.parent; this.lazyLoad = p_oConfig.lazyLoad || p_oConfig.lazyload; this.itemData = p_oConfig.itemData || p_oConfig.itemdata;}
YAHOO.widget.Menu.superclass.constructor.call( this, p_oElement, p_oConfig );}; YAHOO.extend(YAHOO.widget.Menu, YAHOO.widget.Overlay, { CSS_CLASS_NAME: "yuimenu", ITEM_TYPE: null, GROUP_TITLE_TAG_NAME: "h6", _nHideDelayId: null, _nShowDelayId: null, _hideDelayEventHandlersAssigned: false, _bHandledMouseOverEvent: false, _bHandledMouseOutEvent: false, _aGroupTitleElements: null, _aItemGroups: null, _aListElements: null, lazyLoad: false, itemData: null, activeItem: null, parent: null, srcElement: null, mouseOverEvent: null, mouseOutEvent: null, mouseDownEvent: null, mouseUpEvent: null, clickEvent: null, keyPressEvent: null, keyDownEvent: null, keyUpEvent: null, itemAddedEvent: null, itemRemovedEvent: null, init: function(p_oElement, p_oConfig) { this._aItemGroups = []; this._aListElements = []; this._aGroupTitleElements = []; if(!this.ITEM_TYPE) { this.ITEM_TYPE = YAHOO.widget.MenuItem;}
var oElement; if(typeof p_oElement == "string") { oElement = document.getElementById(p_oElement);}
else if(p_oElement.tagName) { oElement = p_oElement;}
if(oElement && oElement.tagName) { switch(oElement.tagName.toUpperCase()) { case "DIV":
this.srcElement = oElement; if(!oElement.id) { oElement.setAttribute("id", Dom.generateId());}
YAHOO.widget.Menu.superclass.init.call(this, oElement); this.beforeInitEvent.fire(YAHOO.widget.Menu); break; case "SELECT":
this.srcElement = oElement; YAHOO.widget.Menu.superclass.init.call(this, Dom.generateId()); this.beforeInitEvent.fire(YAHOO.widget.Menu); break;}
}
else { YAHOO.widget.Menu.superclass.init.call(this, p_oElement); this.beforeInitEvent.fire(YAHOO.widget.Menu);}
if(this.element) { var oEl = this.element; Dom.addClass(oEl, this.CSS_CLASS_NAME); this.initEvent.subscribe(this._onInit, this, true); this.beforeRenderEvent.subscribe(this._onBeforeRender, this, true); this.renderEvent.subscribe(this._onRender, this, true); this.beforeShowEvent.subscribe(this._onBeforeShow, this, true); this.showEvent.subscribe(this._onShow, this, true); this.beforeHideEvent.subscribe(this._onBeforeHide, this, true); this.mouseOverEvent.subscribe(this._onMouseOver, this, true); this.mouseOutEvent.subscribe(this._onMouseOut, this, true); this.clickEvent.subscribe(this._onClick, this, true); this.keyDownEvent.subscribe(this._onKeyDown, this, true); if(p_oConfig) { this.cfg.applyConfig(p_oConfig, true);}
YAHOO.widget.MenuManager.addMenu(this); this.initEvent.fire(YAHOO.widget.Menu);}
}, _initSubTree: function() { var oNode; if(this.srcElement.tagName == "DIV") { oNode = this.body.firstChild; var nGroup = 0; var sGroupTitleTagName = this.GROUP_TITLE_TAG_NAME.toUpperCase(); do { if(oNode && oNode.tagName) { switch(oNode.tagName.toUpperCase()) { case sGroupTitleTagName:
this._aGroupTitleElements[nGroup] = oNode; break; case "UL":
this._aListElements[nGroup] = oNode; this._aItemGroups[nGroup] = []; nGroup++; break;}
}
}
while((oNode = oNode.nextSibling)); if(this._aListElements[0]) { Dom.addClass(this._aListElements[0], "first-of-type");}
}
oNode = null; if(this.srcElement.tagName) { switch(this.srcElement.tagName.toUpperCase()) { case "DIV":
if(this._aListElements.length > 0) { var i = this._aListElements.length - 1; do { oNode = this._aListElements[i].firstChild; do { if(oNode && oNode.tagName) { switch(oNode.tagName.toUpperCase()) { case "LI":
this.addItem( new this.ITEM_TYPE( oNode, { parent: this } ), i ); break;}
}
}
while((oNode = oNode.nextSibling));}
while(i--);}
break; case "SELECT":
oNode = this.srcElement.firstChild; do { if(oNode && oNode.tagName) { switch(oNode.tagName.toUpperCase()) { case "OPTGROUP":
case "OPTION":
this.addItem( new this.ITEM_TYPE( oNode, { parent: this }
) ); break;}
}
}
while((oNode = oNode.nextSibling)); break;}
}
}, _getFirstEnabledItem: function() { var nGroups = this._aItemGroups.length; var oItem; var aItemGroup; for(var i=0; i<nGroups; i++) { aItemGroup = this._aItemGroups[i]; if(aItemGroup) { var nItems = aItemGroup.length; for(var n=0; n<nItems; n++) { oItem = aItemGroup[n]; if( !oItem.cfg.getProperty("disabled") &&
oItem.element.style.display != "none" ) { return oItem;}
oItem = null;}
}
}
}, _checkPosition: function(p_sPosition) { if(typeof p_sPosition == "string") { var sPosition = p_sPosition.toLowerCase(); return ("dynamic,static".indexOf(sPosition) != -1);}
}, _addItemToGroup: function(p_nGroupIndex, p_oItem, p_nItemIndex) { var oItem; if(p_oItem instanceof this.ITEM_TYPE) { oItem = p_oItem; oItem.parent = this;}
else if(typeof p_oItem == "string") { oItem = new this.ITEM_TYPE(p_oItem, { parent: this });}
else if(typeof p_oItem == "object" && p_oItem.text) { var sText = p_oItem.text; delete p_oItem["text"]; p_oItem.parent = this; oItem = new this.ITEM_TYPE(sText, p_oItem);}
if(oItem) { var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0; var aGroup = this._getItemGroup(nGroupIndex); var oGroupItem; if(!aGroup) { aGroup = this._createItemGroup(nGroupIndex);}
if(typeof p_nItemIndex == "number") { var bAppend = (p_nItemIndex >= aGroup.length); if(aGroup[p_nItemIndex]) { aGroup.splice(p_nItemIndex, 0, oItem);}
else { aGroup[p_nItemIndex] = oItem;}
oGroupItem = aGroup[p_nItemIndex]; if(oGroupItem) { if( bAppend &&
( !oGroupItem.element.parentNode || oGroupItem.element.parentNode.nodeType == 11
) ) { this._aListElements[nGroupIndex].appendChild( oGroupItem.element );}
else { var getNextItemSibling = function(p_aArray, p_nStartIndex) { return ( p_aArray[p_nStartIndex] || getNextItemSibling( p_aArray, (p_nStartIndex+1)
) );}; var oNextItemSibling = getNextItemSibling(aGroup, (p_nItemIndex+1)); if( oNextItemSibling &&
( !oGroupItem.element.parentNode || oGroupItem.element.parentNode.nodeType == 11
) ) { this._aListElements[nGroupIndex].insertBefore( oGroupItem.element, oNextItemSibling.element );}
}
oGroupItem.parent = this; this._subscribeToItemEvents(oGroupItem); this._configureSubmenu(oGroupItem); this._updateItemProperties(nGroupIndex); this.itemAddedEvent.fire(oGroupItem); return oGroupItem;}
}
else { var nItemIndex = aGroup.length; aGroup[nItemIndex] = oItem; oGroupItem = aGroup[nItemIndex]; if(oGroupItem) { if( !Dom.isAncestor( this._aListElements[nGroupIndex], oGroupItem.element
) ) { this._aListElements[nGroupIndex].appendChild( oGroupItem.element );}
oGroupItem.element.setAttribute("groupindex", nGroupIndex); oGroupItem.element.setAttribute("index", nItemIndex); oGroupItem.parent = this; oGroupItem.index = nItemIndex; oGroupItem.groupIndex = nGroupIndex; this._subscribeToItemEvents(oGroupItem); this._configureSubmenu(oGroupItem); if(nItemIndex === 0) { Dom.addClass(oGroupItem.element, "first-of-type");}
this.itemAddedEvent.fire(oGroupItem); return oGroupItem;}
}
}
}, _removeItemFromGroupByIndex: function(p_nGroupIndex, p_nItemIndex) { var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0; var aGroup = this._getItemGroup(nGroupIndex); if(aGroup) { var aArray = aGroup.splice(p_nItemIndex, 1); var oItem = aArray[0]; if(oItem) { this._updateItemProperties(nGroupIndex); if(aGroup.length === 0) { var oUL = this._aListElements[nGroupIndex]; if(this.body && oUL) { this.body.removeChild(oUL);}
this._aItemGroups.splice(nGroupIndex, 1); this._aListElements.splice(nGroupIndex, 1); oUL = this._aListElements[0]; if(oUL) { Dom.addClass(oUL, "first-of-type");}
}
this.itemRemovedEvent.fire(oItem); return oItem;}
}
}, _removeItemFromGroupByValue: function(p_nGroupIndex, p_oItem) { var aGroup = this._getItemGroup(p_nGroupIndex); if(aGroup) { var nItems = aGroup.length; var nItemIndex = -1; if(nItems > 0) { var i = nItems-1; do { if(aGroup[i] == p_oItem) { nItemIndex = i; break;}
}
while(i--); if(nItemIndex > -1) { return this._removeItemFromGroupByIndex( p_nGroupIndex, nItemIndex );}
}
}
}, _updateItemProperties: function(p_nGroupIndex) { var aGroup = this._getItemGroup(p_nGroupIndex); var nItems = aGroup.length; if(nItems > 0) { var i = nItems - 1; var oItem; var oLI; do { oItem = aGroup[i]; if(oItem) { oLI = oItem.element; oItem.index = i; oItem.groupIndex = p_nGroupIndex; oLI.setAttribute("groupindex", p_nGroupIndex); oLI.setAttribute("index", i); Dom.removeClass(oLI, "first-of-type");}
}
while(i--); if(oLI) { Dom.addClass(oLI, "first-of-type");}
}
}, _createItemGroup: function(p_nIndex) { if(!this._aItemGroups[p_nIndex]) { this._aItemGroups[p_nIndex] = []; var oUL = document.createElement("ul"); this._aListElements[p_nIndex] = oUL; return this._aItemGroups[p_nIndex];}
}, _getItemGroup: function(p_nIndex) { var nIndex = ((typeof p_nIndex == "number") ? p_nIndex : 0); return this._aItemGroups[nIndex];}, _configureSubmenu: function(p_oItem) { var oSubmenu = p_oItem.cfg.getProperty("submenu"); if(oSubmenu) { this.cfg.configChangedEvent.subscribe( this._onParentMenuConfigChange, oSubmenu, true ); this.renderEvent.subscribe( this._onParentMenuRender, oSubmenu, true ); oSubmenu.beforeShowEvent.subscribe( this._onSubmenuBeforeShow, oSubmenu, true ); oSubmenu.showEvent.subscribe( this._onSubmenuShow, oSubmenu, true ); oSubmenu.hideEvent.subscribe( this._onSubmenuHide, oSubmenu, true );}
}, _subscribeToItemEvents: function(p_oItem) { p_oItem.focusEvent.subscribe(this._onMenuItemFocus, p_oItem, this); p_oItem.blurEvent.subscribe(this._onMenuItemBlur, this, true); p_oItem.cfg.configChangedEvent.subscribe( this._onMenuItemConfigChange, p_oItem, this );}, _getOffsetWidth: function() { var oClone = this.element.cloneNode(true); Dom.setStyle(oClone, "width", ""); document.body.appendChild(oClone); var sWidth = oClone.offsetWidth; document.body.removeChild(oClone); return sWidth;}, _cancelHideDelay: function() { var oRoot = this.getRoot(); if(oRoot._nHideDelayId) { window.clearTimeout(oRoot._nHideDelayId);}
}, _execHideDelay: function() { this._cancelHideDelay(); var oRoot = this.getRoot(); var me = this; var hideMenu = function() { if(oRoot.activeItem) { oRoot.clearActiveItem();}
if(oRoot == me && me.cfg.getProperty("position") == "dynamic") { me.hide();}
}; oRoot._nHideDelayId = window.setTimeout(hideMenu, oRoot.cfg.getProperty("hidedelay"));}, _cancelShowDelay: function() { var oRoot = this.getRoot(); if(oRoot._nShowDelayId) { window.clearTimeout(oRoot._nShowDelayId);}
}, _execShowDelay: function(p_oMenu) { this._cancelShowDelay(); var oRoot = this.getRoot(); var showMenu = function() { p_oMenu.show();}; oRoot._nShowDelayId = window.setTimeout(showMenu, oRoot.cfg.getProperty("showdelay"));}, _onMouseOver: function(p_sType, p_aArgs, p_oMenu) { var oEvent = p_aArgs[0]; var oItem = p_aArgs[1]; var oTarget = Event.getTarget(oEvent); if( !this._bHandledMouseOverEvent &&
(oTarget == this.element || Dom.isAncestor(this.element, oTarget)) ) { this.clearActiveItem(); this._bHandledMouseOverEvent = true; this._bHandledMouseOutEvent = false;}
if( oItem && !oItem.handledMouseOverEvent &&
(oTarget == oItem.element || Dom.isAncestor(oItem.element, oTarget)) ) { var oItemCfg = oItem.cfg; oItemCfg.setProperty("selected", true); oItem.focus(); if(this.cfg.getProperty("autosubmenudisplay")) { var oSubmenu = oItemCfg.getProperty("submenu"); if(oSubmenu) { if(this.cfg.getProperty("showdelay") > 0) { this._execShowDelay(oSubmenu);}
else { oSubmenu.show();}
}
}
oItem.handledMouseOverEvent = true; oItem.handledMouseOutEvent = false;}
}, _onMouseOut: function(p_sType, p_aArgs, p_oMenu) { var oEvent = p_aArgs[0]; var oItem = p_aArgs[1]; var oRelatedTarget = Event.getRelatedTarget(oEvent); var bMovingToSubmenu = false; if(oItem) { var oItemCfg = oItem.cfg; var oSubmenu = oItemCfg.getProperty("submenu"); if( oSubmenu &&
( oRelatedTarget == oSubmenu.element || Dom.isAncestor(oSubmenu.element, oRelatedTarget)
) ) { bMovingToSubmenu = true;}
if( !oItem.handledMouseOutEvent &&
( ( oRelatedTarget != oItem.element &&
!Dom.isAncestor(oItem.element, oRelatedTarget) ) || bMovingToSubmenu
) ) { if(this.cfg.getProperty("showdelay") > 0) { this._cancelShowDelay();}
if(!bMovingToSubmenu) { oItemCfg.setProperty("selected", false);}
if(this.cfg.getProperty("autosubmenudisplay")) { if(oSubmenu) { if( !( oRelatedTarget == oSubmenu.element || YAHOO.util.Dom.isAncestor( oSubmenu.element, oRelatedTarget
)
) ) { oSubmenu.hide();}
}
}
oItem.handledMouseOutEvent = true; oItem.handledMouseOverEvent = false;}
}
if( !this._bHandledMouseOutEvent &&
( ( oRelatedTarget != this.element &&
!Dom.isAncestor(this.element, oRelatedTarget)
) || bMovingToSubmenu
) ) { this._bHandledMouseOutEvent = true; this._bHandledMouseOverEvent = false;}
}, _onClick: function(p_sType, p_aArgs, p_oMenu) { var oEvent = p_aArgs[0]; var oItem = p_aArgs[1]; var oTarget = Event.getTarget(oEvent); if(oItem) { var oItemCfg = oItem.cfg; var oSubmenu = oItemCfg.getProperty("submenu"); if(oTarget == oItem.submenuIndicator && oSubmenu) { if(oSubmenu.cfg.getProperty("visible")) { oSubmenu.hide();}
else { this.clearActiveItem(); this.activeItem = oItem; oItem.cfg.setProperty("selected", true); oSubmenu.show();}
}
else { var sURL = oItemCfg.getProperty("url"); var bCurrentPageURL = (sURL.substr((sURL.length-1),1) == "#"); var sTarget = oItemCfg.getProperty("target"); var bHasTarget = (sTarget && sTarget.length > 0); if( oTarget.tagName.toUpperCase() == "A" &&
bCurrentPageURL && !bHasTarget ) { Event.preventDefault(oEvent);}
if( oTarget.tagName.toUpperCase() != "A" &&
!bCurrentPageURL && !bHasTarget ) { document.location = sURL;}
if(bCurrentPageURL && !oSubmenu) { var oRoot = this.getRoot(); if(oRoot.cfg.getProperty("position") == "static") { oRoot.clearActiveItem();}
else { oRoot.hide();}
}
}
}
}, _onKeyDown: function(p_sType, p_aArgs, p_oMenu) { var oEvent = p_aArgs[0]; var oItem = p_aArgs[1]; var oSubmenu; if(oItem) { var oItemCfg = oItem.cfg; var oParentItem = this.parent; var oRoot; var oNextItem; switch(oEvent.keyCode) { case 38:
case 40:
if( oItem == this.activeItem &&
!oItemCfg.getProperty("selected") ) { oItemCfg.setProperty("selected", true);}
else { oNextItem = (oEvent.keyCode == 38) ?
oItem.getPreviousEnabledSibling() :
oItem.getNextEnabledSibling(); if(oNextItem) { this.clearActiveItem(); oNextItem.cfg.setProperty("selected", true); oNextItem.focus();}
}
Event.preventDefault(oEvent); break; case 39:
oSubmenu = oItemCfg.getProperty("submenu"); if(oSubmenu) { if(!oItemCfg.getProperty("selected")) { oItemCfg.setProperty("selected", true);}
oSubmenu.show(); oSubmenu.setInitialSelection();}
else { oRoot = this.getRoot(); if(oRoot instanceof YAHOO.widget.MenuBar) { oNextItem = oRoot.activeItem.getNextEnabledSibling(); if(oNextItem) { oRoot.clearActiveItem(); oNextItem.cfg.setProperty("selected", true); oSubmenu = oNextItem.cfg.getProperty("submenu"); if(oSubmenu) { oSubmenu.show();}
oNextItem.focus();}
}
}
Event.preventDefault(oEvent); break; case 37:
if(oParentItem) { var oParentMenu = oParentItem.parent; if(oParentMenu instanceof YAHOO.widget.MenuBar) { oNextItem = oParentMenu.activeItem.getPreviousEnabledSibling(); if(oNextItem) { oParentMenu.clearActiveItem(); oNextItem.cfg.setProperty("selected", true); oSubmenu = oNextItem.cfg.getProperty("submenu"); if(oSubmenu) { oSubmenu.show();}
oNextItem.focus();}
}
else { this.hide(); oParentItem.focus();}
}
Event.preventDefault(oEvent); break;}
}
if(oEvent.keyCode == 27) { if(this.cfg.getProperty("position") == "dynamic") { this.hide(); if(this.parent) { this.parent.focus();}
}
else if(this.activeItem) { oSubmenu = this.activeItem.cfg.getProperty("submenu"); if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { oSubmenu.hide(); this.activeItem.focus();}
else { this.activeItem.cfg.setProperty("selected", false); this.activeItem.blur();}
}
Event.preventDefault(oEvent);}
}, _onInit: function(p_sType, p_aArgs, p_oMenu) { if( ( (this.parent && !this.lazyLoad) || (!this.parent && this.cfg.getProperty("position") == "static") || ( !this.parent &&
!this.lazyLoad &&
this.cfg.getProperty("position") == "dynamic"
) ) &&
this.getItemGroups().length === 0 ) { if(this.srcElement) { this._initSubTree();}
if(this.itemData) { this.addItems(this.itemData);}
}
else if(this.lazyLoad) { this.cfg.fireQueue();}
}, _onBeforeRender: function(p_sType, p_aArgs, p_oMenu) { var oConfig = this.cfg; var oEl = this.element; var nListElements = this._aListElements.length; if(nListElements > 0) { var i = 0; var bFirstList = true; var oUL; var oGroupTitle; do { oUL = this._aListElements[i]; if(oUL) { if(bFirstList) { Dom.addClass(oUL, "first-of-type"); bFirstList = false;}
if(!Dom.isAncestor(oEl, oUL)) { this.appendToBody(oUL);}
oGroupTitle = this._aGroupTitleElements[i]; if(oGroupTitle) { if(!Dom.isAncestor(oEl, oGroupTitle)) { oUL.parentNode.insertBefore(oGroupTitle, oUL);}
Dom.addClass(oUL, "hastitle");}
}
i++;}
while(i < nListElements);}
}, _onRender: function(p_sType, p_aArgs, p_oMenu) { if(this.cfg.getProperty("position") == "dynamic") { var sWidth = this.element.parentNode.tagName.toUpperCase() == "BODY" ?
this.element.offsetWidth : this._getOffsetWidth(); this.cfg.setProperty("width", (sWidth + "px"));}
}, _onBeforeShow: function(p_sType, p_aArgs, p_oMenu) { if(this.lazyLoad && this.getItemGroups().length === 0) { if(this.srcElement) { this._initSubTree();}
if(this.itemData) { if( this.parent && this.parent.parent &&
this.parent.parent.srcElement &&
this.parent.parent.srcElement.tagName.toUpperCase() == "SELECT" ) { var nOptions = this.itemData.length; for(var n=0; n<nOptions; n++) { if(this.itemData[n].tagName) { this.addItem((new this.ITEM_TYPE(this.itemData[n])));}
}
}
else { this.addItems(this.itemData);}
}
if(this.srcElement) { this.render();}
else { if(this.parent) { this.render(this.parent.element);}
else { this.render(this.cfg.getProperty("container"));}
}
}
}, _onShow: function(p_sType, p_aArgs, p_oMenu) { this.setInitialFocus(); var oParent = this.parent; if(oParent) { var oParentMenu = oParent.parent; var aParentAlignment = oParentMenu.cfg.getProperty("submenualignment"); var aAlignment = this.cfg.getProperty("submenualignment"); if( (aParentAlignment[0] != aAlignment[0]) &&
(aParentAlignment[1] != aAlignment[1]) ) { this.cfg.setProperty( "submenualignment", [ aParentAlignment[0], aParentAlignment[1] ] );}
if( !oParentMenu.cfg.getProperty("autosubmenudisplay") &&
oParentMenu.cfg.getProperty("position") == "static" ) { oParentMenu.cfg.setProperty("autosubmenudisplay", true); var disableAutoSubmenuDisplay = function(p_oEvent) { if( p_oEvent.type == "mousedown" || (p_oEvent.type == "keydown" && p_oEvent.keyCode == 27) ) { var oTarget = Event.getTarget(p_oEvent); if( oTarget != oParentMenu.element || !YAHOO.util.Dom.isAncestor(oParentMenu.element, oTarget) ) { oParentMenu.cfg.setProperty( "autosubmenudisplay", false ); Event.removeListener( document, "mousedown", disableAutoSubmenuDisplay ); Event.removeListener( document, "keydown", disableAutoSubmenuDisplay );}
}
}; Event.addListener(document, "mousedown", disableAutoSubmenuDisplay); Event.addListener(document, "keydown", disableAutoSubmenuDisplay);}
}
}, _onBeforeHide: function(p_sType, p_aArgs, p_oMenu) { this.clearActiveItem(true);}, _onParentMenuConfigChange: function(p_sType, p_aArgs, p_oSubmenu) { var sPropertyName = p_aArgs[0][0]; var oPropertyValue = p_aArgs[0][1]; switch(sPropertyName) { case "iframe":
case "constraintoviewport":
case "hidedelay":
case "showdelay":
case "clicktohide":
case "effect":
p_oSubmenu.cfg.setProperty(sPropertyName, oPropertyValue); break;}
}, _onParentMenuRender: function(p_sType, p_aArgs, p_oSubmenu) { var oParentMenu = p_oSubmenu.parent.parent; var oConfig = { constraintoviewport:
oParentMenu.cfg.getProperty("constraintoviewport"), xy: [0,0], clicktohide:
oParentMenu.cfg.getProperty("clicktohide"), effect:
oParentMenu.cfg.getProperty("effect")
}; var nShowDelay = oParentMenu.cfg.getProperty("showdelay"); if(nShowDelay > 0) { oConfig.showdelay = nShowDelay;}
var nHideDelay = oParentMenu.cfg.getProperty("hidedelay"); if(nHideDelay > 0) { oConfig.hidedelay = nHideDelay;}
if( this.cfg.getProperty("position") == oParentMenu.cfg.getProperty("position") ) { oConfig.iframe = oParentMenu.cfg.getProperty("iframe");}
p_oSubmenu.cfg.applyConfig(oConfig); if(!this.lazyLoad) { if(Dom.inDocument(this.element)) { this.render();}
else { this.render(this.parent.element);}
}
}, _onSubmenuBeforeShow: function(p_sType, p_aArgs, p_oSubmenu) { var oParent = this.parent; var aAlignment = oParent.parent.cfg.getProperty("submenualignment"); this.cfg.setProperty( "context", [oParent.element, aAlignment[0], aAlignment[1]] ); oParent.submenuIndicator.alt = oParent.EXPANDED_SUBMENU_INDICATOR_ALT_TEXT;}, _onSubmenuShow: function(p_sType, p_aArgs, p_oSubmenu) { var oParent = this.parent; oParent.submenuIndicator.alt = oParent.EXPANDED_SUBMENU_INDICATOR_ALT_TEXT;}, _onSubmenuHide: function(p_sType, p_aArgs, p_oSubmenu) { var oParent = this.parent; oParent.submenuIndicator.alt = oParent.COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT;}, _onMenuItemFocus: function(p_sType, p_aArgs, p_oItem) { this.activeItem = p_oItem;}, _onMenuItemBlur: function(p_sType, p_aArgs) { this.activeItem = null;}, _onMenuItemConfigChange: function(p_sType, p_aArgs, p_oItem) { var sProperty = p_aArgs[0][0]; switch(sProperty) { case "submenu":
var oSubmenu = p_aArgs[0][1]; if(oSubmenu) { this._configureSubmenu(p_oItem);}
break; case "text":
case "helptext":
if(this.element.style.width) { var sWidth = this._getOffsetWidth() + "px"; Dom.setStyle(this.element, "width", sWidth);}
break;}
}, enforceConstraints: function(type, args, obj) { var oConfig = this.cfg; var pos = args[0]; var x = pos[0]; var y = pos[1]; var bod = document.getElementsByTagName('body')[0]; var htm = document.getElementsByTagName('html')[0]; var bodyOverflow = Dom.getStyle(bod, "overflow"); var htmOverflow = Dom.getStyle(htm, "overflow"); var offsetHeight = this.element.offsetHeight; var offsetWidth = this.element.offsetWidth; var viewPortWidth = Dom.getClientWidth(); var viewPortHeight = Dom.getClientHeight(); var scrollX = window.scrollX || document.body.scrollLeft; var scrollY = window.scrollY || document.body.scrollTop; var topConstraint = scrollY + 10; var leftConstraint = scrollX + 10; var bottomConstraint = scrollY + viewPortHeight - offsetHeight - 10; var rightConstraint = scrollX + viewPortWidth - offsetWidth - 10; var aContext = oConfig.getProperty("context"); var oContextElement = aContext ? aContext[0] : null; if (x < 10) { x = leftConstraint;} else if ((x + offsetWidth) > viewPortWidth) { if( oContextElement &&
((x - oContextElement.offsetWidth) > offsetWidth) ) { x = (x - (oContextElement.offsetWidth + offsetWidth));}
else { x = rightConstraint;}
}
if (y < 10) { y = topConstraint;} else if (y > bottomConstraint) { if(oContextElement && (y > offsetHeight)) { y = ((y + oContextElement.offsetHeight) - offsetHeight);}
else { y = bottomConstraint;}
}
oConfig.setProperty("x", x, true); oConfig.setProperty("y", y, true);}, configVisible: function(p_sType, p_aArgs, p_oMenu) { if(this.cfg.getProperty("position") == "dynamic") { YAHOO.widget.Menu.superclass.configVisible.call( this, p_sType, p_aArgs, p_oMenu );}
else { var bVisible = p_aArgs[0]; var sDisplay = Dom.getStyle(this.element, "display"); if(bVisible) { if(sDisplay != "block") { this.beforeShowEvent.fire(); Dom.setStyle(this.element, "display", "block"); this.showEvent.fire();}
}
else { if(sDisplay == "block") { this.beforeHideEvent.fire(); Dom.setStyle(this.element, "display", "none"); this.hideEvent.fire();}
}
}
}, configPosition: function(p_sType, p_aArgs, p_oMenu) { var sCSSPosition = p_aArgs[0] == "static" ? "static" : "absolute"; var oCfg = this.cfg; Dom.setStyle(this.element, "position", sCSSPosition); if(sCSSPosition == "static") { oCfg.setProperty("iframe", false); Dom.setStyle(this.element, "display", "block"); oCfg.setProperty("visible", true);}
else { Dom.setStyle(this.element, "visibility", "hidden");}
if(sCSSPosition == "absolute") { var nZIndex = oCfg.getProperty("zindex"); if(!nZIndex || nZIndex === 0) { nZIndex = this.parent ?
(this.parent.parent.cfg.getProperty("zindex") + 1) : 1; oCfg.setProperty("zindex", nZIndex);}
}
}, configIframe: function(p_sType, p_aArgs, p_oMenu) { if(this.cfg.getProperty("position") == "dynamic") { YAHOO.widget.Menu.superclass.configIframe.call( this, p_sType, p_aArgs, p_oMenu );}
}, configHideDelay: function(p_sType, p_aArgs, p_oMenu) { var nHideDelay = p_aArgs[0]; var oMouseOutEvent = this.mouseOutEvent; var oMouseOverEvent = this.mouseOverEvent; var oKeyDownEvent = this.keyDownEvent; if(nHideDelay > 0) { if(!this._hideDelayEventHandlersAssigned) { oMouseOutEvent.subscribe(this._execHideDelay, true); oMouseOverEvent.subscribe(this._cancelHideDelay, this, true); oKeyDownEvent.subscribe(this._cancelHideDelay, this, true); this._hideDelayEventHandlersAssigned = true;}
}
else { oMouseOutEvent.unsubscribe(this._execHideDelay, this); oMouseOverEvent.unsubscribe(this._cancelHideDelay, this); oKeyDownEvent.unsubscribe(this._cancelHideDelay, this); this._hideDelayEventHandlersAssigned = false;}
}, configContainer: function(p_sType, p_aArgs, p_oMenu) { var oElement = p_aArgs[0]; if(typeof oElement == 'string') { this.cfg.setProperty( "container", document.getElementById(oElement), true );}
}, onDomResize: function(e, obj) { if(!this._handleResize) { this._handleResize = true; return;}
var oConfig = this.cfg; if(oConfig.getProperty("position") == "dynamic") { oConfig.setProperty("width", (this._getOffsetWidth() + "px"));}
YAHOO.widget.Menu.superclass.onDomResize.call(this, e, obj);}, initEvents: function() { YAHOO.widget.Menu.superclass.initEvents.call(this); var CustomEvent = YAHOO.util.CustomEvent; this.mouseOverEvent = new CustomEvent("mouseOverEvent", this); this.mouseOutEvent = new CustomEvent("mouseOutEvent", this); this.mouseDownEvent = new CustomEvent("mouseDownEvent", this); this.mouseUpEvent = new CustomEvent("mouseUpEvent", this); this.clickEvent = new CustomEvent("clickEvent", this); this.keyPressEvent = new CustomEvent("keyPressEvent", this); this.keyDownEvent = new CustomEvent("keyDownEvent", this); this.keyUpEvent = new CustomEvent("keyUpEvent", this); this.itemAddedEvent = new CustomEvent("itemAddedEvent", this); this.itemRemovedEvent = new CustomEvent("itemRemovedEvent", this);}, getRoot: function() { var oItem = this.parent; if(oItem) { var oParentMenu = oItem.parent; return oParentMenu ? oParentMenu.getRoot() : this;}
else { return this;}
}, toString: function() { return ("Menu " + this.id);}, setItemGroupTitle: function(p_sGroupTitle, p_nGroupIndex) { if(typeof p_sGroupTitle == "string" && p_sGroupTitle.length > 0) { var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0; var oTitle = this._aGroupTitleElements[nGroupIndex]; if(oTitle) { oTitle.innerHTML = p_sGroupTitle;}
else { oTitle = document.createElement(this.GROUP_TITLE_TAG_NAME); oTitle.innerHTML = p_sGroupTitle; this._aGroupTitleElements[nGroupIndex] = oTitle;}
var i = this._aGroupTitleElements.length - 1; var nFirstIndex; do { if(this._aGroupTitleElements[i]) { Dom.removeClass(this._aGroupTitleElements[i], "first-of-type"); nFirstIndex = i;}
}
while(i--); if(nFirstIndex !== null) { Dom.addClass( this._aGroupTitleElements[nFirstIndex], "first-of-type" );}
}
}, addItem: function(p_oItem, p_nGroupIndex) { if(p_oItem) { return this._addItemToGroup(p_nGroupIndex, p_oItem);}
}, addItems: function(p_aItems, p_nGroupIndex) { function isArray(p_oValue) { return (typeof p_oValue == "object" && p_oValue.constructor == Array);}
if(isArray(p_aItems)) { var nItems = p_aItems.length; var aItems = []; var oItem; for(var i=0; i<nItems; i++) { oItem = p_aItems[i]; if(isArray(oItem)) { aItems[aItems.length] = this.addItems(oItem, i);}
else { aItems[aItems.length] = this._addItemToGroup(p_nGroupIndex, oItem);}
}
if(aItems.length) { return aItems;}
}
}, insertItem: function(p_oItem, p_nItemIndex, p_nGroupIndex) { if(p_oItem) { return this._addItemToGroup(p_nGroupIndex, p_oItem, p_nItemIndex);}
}, removeItem: function(p_oObject, p_nGroupIndex) { if(typeof p_oObject != "undefined") { var oItem; if(p_oObject instanceof YAHOO.widget.MenuItem) { oItem = this._removeItemFromGroupByValue(p_nGroupIndex, p_oObject);}
else if(typeof p_oObject == "number") { oItem = this._removeItemFromGroupByIndex(p_nGroupIndex, p_oObject);}
if(oItem) { oItem.destroy(); return oItem;}
}
}, getItemGroups: function() { return this._aItemGroups;}, getItem: function(p_nItemIndex, p_nGroupIndex) { if(typeof p_nItemIndex == "number") { var aGroup = this._getItemGroup(p_nGroupIndex); if(aGroup) { return aGroup[p_nItemIndex];}
}
}, destroy: function() { this.mouseOverEvent.unsubscribeAll(); this.mouseOutEvent.unsubscribeAll(); this.mouseDownEvent.unsubscribeAll(); this.mouseUpEvent.unsubscribeAll(); this.clickEvent.unsubscribeAll(); this.keyPressEvent.unsubscribeAll(); this.keyDownEvent.unsubscribeAll(); this.keyUpEvent.unsubscribeAll(); var nItemGroups = this._aItemGroups.length; var nItems; var oItemGroup; var oItem; var i; var n; if(nItemGroups > 0) { i = nItemGroups - 1; do { oItemGroup = this._aItemGroups[i]; if(oItemGroup) { nItems = oItemGroup.length; if(nItems > 0) { n = nItems - 1; do { oItem = this._aItemGroups[i][n]; if(oItem) { oItem.destroy();}
}
while(n--);}
}
}
while(i--);}
YAHOO.widget.Menu.superclass.destroy.call(this);}, setInitialFocus: function() { var oItem = this._getFirstEnabledItem(); if(oItem) { oItem.focus();}
}, setInitialSelection: function() { var oItem = this._getFirstEnabledItem(); if(oItem) { oItem.cfg.setProperty("selected", true);}
}, clearActiveItem: function(p_bBlur) { if(this.cfg.getProperty("showdelay") > 0) { this._cancelShowDelay();}
var oActiveItem = this.activeItem; if(oActiveItem) { var oConfig = oActiveItem.cfg; oConfig.setProperty("selected", false); var oSubmenu = oConfig.getProperty("submenu"); if(oSubmenu) { oSubmenu.hide();}
if(p_bBlur) { oActiveItem.blur();}
}
}, initDefaultConfig: function() { YAHOO.widget.Menu.superclass.initDefaultConfig.call(this); var oConfig = this.cfg; oConfig.addProperty( "visible", { value:false, handler:this.configVisible, validator:this.cfg.checkBoolean
} ); oConfig.addProperty( "constraintoviewport", { value:true, handler:this.configConstrainToViewport, validator:this.cfg.checkBoolean, supercedes:["iframe","x","y","xy"]
} ); oConfig.addProperty( "position", { value: "dynamic", handler: this.configPosition, validator: this._checkPosition, supercedes: ["visible"]
} ); oConfig.addProperty("submenualignment", { value: ["tl","tr"] } ); oConfig.addProperty( "autosubmenudisplay", { value: true, validator: oConfig.checkBoolean
} ); oConfig.addProperty( "showdelay", { value: 0, validator: oConfig.checkNumber
} ); oConfig.addProperty( "hidedelay", { value: 0, validator: oConfig.checkNumber, handler: this.configHideDelay, suppressEvent: true
} ); oConfig.addProperty( "clicktohide", { value: true, validator: oConfig.checkBoolean
} ); this.cfg.addProperty( "container", { value:document.body, handler:this.configContainer } );}
});})(); YAHOO.widget.MenuModule = YAHOO.widget.Menu; (function() { var Dom = YAHOO.util.Dom; var Module = YAHOO.widget.Module; var Menu = YAHOO.widget.Menu; YAHOO.widget.MenuItem = function(p_oObject, p_oConfig) { if(p_oObject) { if(p_oConfig) { this.parent = p_oConfig.parent; this.value = p_oConfig.value;}
this.init(p_oObject, p_oConfig);}
}; YAHOO.widget.MenuItem.prototype = { SUBMENU_INDICATOR_IMAGE_PATH: "nt/ic/ut/alt1/menuarorght8_nrm_1.gif", SELECTED_SUBMENU_INDICATOR_IMAGE_PATH:
"nt/ic/ut/alt1/menuarorght8_hov_1.gif", DISABLED_SUBMENU_INDICATOR_IMAGE_PATH:
"nt/ic/ut/alt1/menuarorght8_dim_1.gif", COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT: "Collapsed.  Click to expand.", EXPANDED_SUBMENU_INDICATOR_ALT_TEXT: "Expanded.  Click to collapse.", DISABLED_SUBMENU_INDICATOR_ALT_TEXT: "Disabled.", CHECKED_IMAGE_PATH: "nt/ic/ut/bsc/menuchk8_nrm_1.gif", SELECTED_CHECKED_IMAGE_PATH: "nt/ic/ut/bsc/menuchk8_hov_1.gif", DISABLED_CHECKED_IMAGE_PATH: "nt/ic/ut/bsc/menuchk8_dim_1.gif", CHECKED_IMAGE_ALT_TEXT: "Checked.", DISABLED_CHECKED_IMAGE_ALT_TEXT: "Checked. (Item disabled.)", CSS_CLASS_NAME: "yuimenuitem", SUBMENU_TYPE: null, IMG_ROOT: "http://us.i1.yimg.com/us.yimg.com/i/", IMG_ROOT_SSL: "https://a248.e.akamai.net/sec.yimg.com/i/", _oAnchor: null, _oText: null, _oHelpTextEM: null, _oSubmenu: null, _checkImage: null, constructor: YAHOO.widget.MenuItem, imageRoot: null, isSecure: Module.prototype.isSecure, index: null, groupIndex: null, parent: null, element: null, srcElement: null, value: null, submenuIndicator: null, browser: Module.prototype.browser, destroyEvent: null, mouseOverEvent: null, mouseOutEvent: null, mouseDownEvent: null, mouseUpEvent: null, clickEvent: null, keyPressEvent: null, keyDownEvent: null, keyUpEvent: null, focusEvent: null, blurEvent: null, init: function(p_oObject, p_oConfig) { this.imageRoot = (this.isSecure) ? this.IMG_ROOT_SSL : this.IMG_ROOT; if(!this.SUBMENU_TYPE) { this.SUBMENU_TYPE = Menu;}
this.cfg = new YAHOO.util.Config(this); this.initDefaultConfig(); var oConfig = this.cfg; if(this._checkString(p_oObject)) { this._createRootNodeStructure(); oConfig.setProperty("text", p_oObject);}
else if(this._checkDOMNode(p_oObject)) { switch(p_oObject.tagName.toUpperCase()) { case "OPTION":
this._createRootNodeStructure(); oConfig.setProperty("text", p_oObject.text); this.srcElement = p_oObject; break; case "OPTGROUP":
this._createRootNodeStructure(); oConfig.setProperty("text", p_oObject.label); this.srcElement = p_oObject; this._initSubTree(); break; case "LI":
var oAnchor = this._getFirstElement(p_oObject, "A"); var sURL = "#"; var sTarget = null; var sText = null; if(oAnchor) { sURL = oAnchor.getAttribute("href"); sTarget = oAnchor.getAttribute("target"); if(oAnchor.innerText) { sText = oAnchor.innerText;}
else { var oRange = oAnchor.ownerDocument.createRange(); oRange.selectNodeContents(oAnchor); sText = oRange.toString();}
}
else { var oText = p_oObject.firstChild; sText = oText.nodeValue; oAnchor = document.createElement("a"); oAnchor.setAttribute("href", sURL); p_oObject.replaceChild(oAnchor, oText); oAnchor.appendChild(oText);}
this.srcElement = p_oObject; this.element = p_oObject; this._oAnchor = oAnchor; var oEmphasisNode = this._getFirstElement(oAnchor); var bEmphasis = false; var bStrongEmphasis = false; if(oEmphasisNode) { this._oText = oEmphasisNode.firstChild; switch(oEmphasisNode.tagName.toUpperCase()) { case "EM":
bEmphasis = true; break; case "STRONG":
bStrongEmphasis = true; break;}
}
else { this._oText = oAnchor.firstChild;}
oConfig.setProperty("text", sText, true); oConfig.setProperty("url", sURL, true); oConfig.setProperty("target", sTarget, true); oConfig.setProperty("emphasis", bEmphasis, true); oConfig.setProperty( "strongemphasis", bStrongEmphasis, true ); this._initSubTree(); break;}
}
if(this.element) { Dom.addClass(this.element, this.CSS_CLASS_NAME); var CustomEvent = YAHOO.util.CustomEvent; this.destroyEvent = new CustomEvent("destroyEvent", this); this.mouseOverEvent = new CustomEvent("mouseOverEvent", this); this.mouseOutEvent = new CustomEvent("mouseOutEvent", this); this.mouseDownEvent = new CustomEvent("mouseDownEvent", this); this.mouseUpEvent = new CustomEvent("mouseUpEvent", this); this.clickEvent = new CustomEvent("clickEvent", this); this.keyPressEvent = new CustomEvent("keyPressEvent", this); this.keyDownEvent = new CustomEvent("keyDownEvent", this); this.keyUpEvent = new CustomEvent("keyUpEvent", this); this.focusEvent = new CustomEvent("focusEvent", this); this.blurEvent = new CustomEvent("blurEvent", this); if(p_oConfig) { oConfig.applyConfig(p_oConfig);}
oConfig.fireQueue();}
}, _getFirstElement: function(p_oElement, p_sTagName) { var oElement; if(p_oElement.firstChild && p_oElement.firstChild.nodeType == 1) { oElement = p_oElement.firstChild;}
else if( p_oElement.firstChild &&
p_oElement.firstChild.nextSibling &&
p_oElement.firstChild.nextSibling.nodeType == 1 ) { oElement = p_oElement.firstChild.nextSibling;}
if(p_sTagName) { return (oElement && oElement.tagName.toUpperCase() == p_sTagName) ?
oElement : false;}
return oElement;}, _checkString: function(p_oObject) { return (typeof p_oObject == "string");}, _checkDOMNode: function(p_oObject) { return (p_oObject && p_oObject.tagName);}, _createRootNodeStructure: function () { this.element = document.createElement("li"); this._oText = document.createTextNode(""); this._oAnchor = document.createElement("a"); this._oAnchor.appendChild(this._oText); this.cfg.refireEvent("url"); this.element.appendChild(this._oAnchor);}, _initSubTree: function() { var oSrcEl = this.srcElement; var oConfig = this.cfg; if(oSrcEl.childNodes.length > 0) { if( this.parent.lazyLoad &&
this.parent.srcElement &&
this.parent.srcElement.tagName.toUpperCase() == "SELECT" ) { oConfig.setProperty( "submenu", { id: Dom.generateId(), itemdata: oSrcEl.childNodes } );}
else { var oNode = oSrcEl.firstChild; var aOptions = []; do { if(oNode && oNode.tagName) { switch(oNode.tagName.toUpperCase()) { case "DIV":
oConfig.setProperty("submenu", oNode); break; case "OPTION":
aOptions[aOptions.length] = oNode; break;}
}
}
while((oNode = oNode.nextSibling)); var nOptions = aOptions.length; if(nOptions > 0) { var oMenu = new this.SUBMENU_TYPE(Dom.generateId()); oConfig.setProperty("submenu", oMenu); for(var n=0; n<nOptions; n++) { oMenu.addItem((new oMenu.ITEM_TYPE(aOptions[n])));}
}
}
}
}, _preloadImage: function(p_sPath) { var sPath = this.imageRoot + p_sPath; if(!document.images[sPath]) { var oImage = document.createElement("img"); oImage.src = sPath; oImage.name = sPath; oImage.id = sPath; oImage.style.display = "none"; document.body.appendChild(oImage);}
}, configText: function(p_sType, p_aArgs, p_oItem) { var sText = p_aArgs[0]; if(this._oText) { this._oText.nodeValue = sText;}
}, configHelpText: function(p_sType, p_aArgs, p_oItem) { var me = this; var oHelpText = p_aArgs[0]; var oEl = this.element; var oConfig = this.cfg; var aNodes = [oEl, this._oAnchor]; var oImg = this.submenuIndicator; var initHelpText = function() { Dom.addClass(aNodes, "hashelptext"); if(oConfig.getProperty("disabled")) { oConfig.refireEvent("disabled");}
if(oConfig.getProperty("selected")) { oConfig.refireEvent("selected");}
}; var removeHelpText = function() { Dom.removeClass(aNodes, "hashelptext"); oEl.removeChild(me._oHelpTextEM); me._oHelpTextEM = null;}; if(this._checkDOMNode(oHelpText)) { if(this._oHelpTextEM) { this._oHelpTextEM.parentNode.replaceChild( oHelpText, this._oHelpTextEM );}
else { this._oHelpTextEM = oHelpText; oEl.insertBefore(this._oHelpTextEM, oImg);}
initHelpText();}
else if(this._checkString(oHelpText)) { if(oHelpText.length === 0) { removeHelpText();}
else { if(!this._oHelpTextEM) { this._oHelpTextEM = document.createElement("em"); oEl.insertBefore(this._oHelpTextEM, oImg);}
this._oHelpTextEM.innerHTML = oHelpText; initHelpText();}
}
else if(!oHelpText && this._oHelpTextEM) { removeHelpText();}
}, configURL: function(p_sType, p_aArgs, p_oItem) { var sURL = p_aArgs[0]; if(!sURL) { sURL = "#";}
this._oAnchor.setAttribute("href", sURL);}, configTarget: function(p_sType, p_aArgs, p_oItem) { var sTarget = p_aArgs[0]; var oAnchor = this._oAnchor; if(sTarget && sTarget.length > 0) { oAnchor.setAttribute("target", sTarget);}
else { oAnchor.removeAttribute("target");}
}, configEmphasis: function(p_sType, p_aArgs, p_oItem) { var bEmphasis = p_aArgs[0]; var oAnchor = this._oAnchor; var oText = this._oText; var oConfig = this.cfg; var oEM; if(bEmphasis && oConfig.getProperty("strongemphasis")) { oConfig.setProperty("strongemphasis", false);}
if(oAnchor) { if(bEmphasis) { oEM = document.createElement("em"); oEM.appendChild(oText); oAnchor.appendChild(oEM);}
else { oEM = this._getFirstElement(oAnchor, "EM"); oAnchor.removeChild(oEM); oAnchor.appendChild(oText);}
}
}, configStrongEmphasis: function(p_sType, p_aArgs, p_oItem) { var bStrongEmphasis = p_aArgs[0]; var oAnchor = this._oAnchor; var oText = this._oText; var oConfig = this.cfg; var oStrong; if(bStrongEmphasis && oConfig.getProperty("emphasis")) { oConfig.setProperty("emphasis", false);}
if(oAnchor) { if(bStrongEmphasis) { oStrong = document.createElement("strong"); oStrong.appendChild(oText); oAnchor.appendChild(oStrong);}
else { oStrong = this._getFirstElement(oAnchor, "STRONG"); oAnchor.removeChild(oStrong); oAnchor.appendChild(oText);}
}
}, configChecked: function(p_sType, p_aArgs, p_oItem) { var bChecked = p_aArgs[0]; var oEl = this.element; var oConfig = this.cfg; var oImg; if(bChecked) { this._preloadImage(this.CHECKED_IMAGE_PATH); this._preloadImage(this.SELECTED_CHECKED_IMAGE_PATH); this._preloadImage(this.DISABLED_CHECKED_IMAGE_PATH); oImg = document.createElement("img"); oImg.src = (this.imageRoot + this.CHECKED_IMAGE_PATH); oImg.alt = this.CHECKED_IMAGE_ALT_TEXT; var oSubmenu = this.cfg.getProperty("submenu"); if(oSubmenu) { oEl.insertBefore(oImg, oSubmenu.element);}
else { oEl.appendChild(oImg);}
Dom.addClass([oEl, oImg], "checked"); this._checkImage = oImg; if(oConfig.getProperty("disabled")) { oConfig.refireEvent("disabled");}
if(oConfig.getProperty("selected")) { oConfig.refireEvent("selected");}
}
else { oImg = this._checkImage; Dom.removeClass([oEl, oImg], "checked"); if(oImg) { oEl.removeChild(oImg);}
this._checkImage = null;}
}, configDisabled: function(p_sType, p_aArgs, p_oItem) { var bDisabled = p_aArgs[0]; var oAnchor = this._oAnchor; var aNodes = [this.element, oAnchor]; var oEM = this._oHelpTextEM; var oConfig = this.cfg; var oImg; var sImgSrc; var sImgAlt; if(oEM) { aNodes[2] = oEM;}
if(this.cfg.getProperty("checked")) { sImgAlt = this.CHECKED_IMAGE_ALT_TEXT; sImgSrc = this.CHECKED_IMAGE_PATH; oImg = this._checkImage; if(bDisabled) { sImgAlt = this.DISABLED_CHECKED_IMAGE_ALT_TEXT; sImgSrc = this.DISABLED_CHECKED_IMAGE_PATH;}
oImg.src = document.images[(this.imageRoot + sImgSrc)].src; oImg.alt = sImgAlt;}
oImg = this.submenuIndicator; if(bDisabled) { if(oConfig.getProperty("selected")) { oConfig.setProperty("selected", false);}
oAnchor.removeAttribute("href"); Dom.addClass(aNodes, "disabled"); sImgSrc = this.DISABLED_SUBMENU_INDICATOR_IMAGE_PATH; sImgAlt = this.DISABLED_SUBMENU_INDICATOR_ALT_TEXT;}
else { oAnchor.setAttribute("href", oConfig.getProperty("url")); Dom.removeClass(aNodes, "disabled"); sImgSrc = this.SUBMENU_INDICATOR_IMAGE_PATH; sImgAlt = this.COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT;}
if(oImg) { oImg.src = this.imageRoot + sImgSrc; oImg.alt = sImgAlt;}
}, configSelected: function(p_sType, p_aArgs, p_oItem) { if(!this.cfg.getProperty("disabled")) { var bSelected = p_aArgs[0]; var oEM = this._oHelpTextEM; var aNodes = [this.element, this._oAnchor]; var oImg = this.submenuIndicator; var sImgSrc; if(oEM) { aNodes[aNodes.length] = oEM;}
if(oImg) { aNodes[aNodes.length] = oImg;}
if(this.cfg.getProperty("checked")) { sImgSrc = this.imageRoot + (bSelected ?
this.SELECTED_CHECKED_IMAGE_PATH : this.CHECKED_IMAGE_PATH); this._checkImage.src = document.images[sImgSrc].src;}
if(bSelected) { Dom.addClass(aNodes, "selected"); sImgSrc = this.SELECTED_SUBMENU_INDICATOR_IMAGE_PATH;}
else { Dom.removeClass(aNodes, "selected"); sImgSrc = this.SUBMENU_INDICATOR_IMAGE_PATH;}
if(oImg) { oImg.src = document.images[(this.imageRoot + sImgSrc)].src;}
}
}, configSubmenu: function(p_sType, p_aArgs, p_oItem) { var oEl = this.element; var oSubmenu = p_aArgs[0]; var oImg = this.submenuIndicator; var oConfig = this.cfg; var aNodes = [this.element, this._oAnchor]; var oMenu; var bLazyLoad = this.parent && this.parent.lazyLoad; if(oSubmenu) { if(oSubmenu instanceof Menu) { oMenu = oSubmenu; oMenu.parent = this; oMenu.lazyLoad = bLazyLoad;}
else if( typeof oSubmenu == "object" &&
oSubmenu.id &&
!oSubmenu.nodeType ) { var sSubmenuId = oSubmenu.id; var oSubmenuConfig = oSubmenu; delete oSubmenu["id"]; oSubmenuConfig.lazyload = bLazyLoad; oSubmenuConfig.parent = this; oMenu = new this.SUBMENU_TYPE(sSubmenuId, oSubmenuConfig); this.cfg.setProperty("submenu", oMenu, true);}
else { oMenu = new this.SUBMENU_TYPE( oSubmenu, { lazyload: bLazyLoad, parent: this } ); this.cfg.setProperty("submenu", oMenu, true);}
if(oMenu) { this._oSubmenu = oMenu; if(!oImg) { this._preloadImage(this.SUBMENU_INDICATOR_IMAGE_PATH); this._preloadImage( this.SELECTED_SUBMENU_INDICATOR_IMAGE_PATH ); this._preloadImage( this.DISABLED_SUBMENU_INDICATOR_IMAGE_PATH ); oImg = document.createElement("img"); oImg.src = (this.imageRoot + this.SUBMENU_INDICATOR_IMAGE_PATH); oImg.alt = this.COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT; oEl.appendChild(oImg); this.submenuIndicator = oImg; Dom.addClass(aNodes, "hassubmenu"); if(oConfig.getProperty("disabled")) { oConfig.refireEvent("disabled");}
if(oConfig.getProperty("selected")) { oConfig.refireEvent("selected");}
}
}
}
else { Dom.removeClass(aNodes, "hassubmenu"); if(oImg) { oEl.removeChild(oImg);}
if(this._oSubmenu) { this._oSubmenu.destroy();}
}
}, initDefaultConfig : function() { var oConfig = this.cfg; var CheckBoolean = oConfig.checkBoolean; oConfig.addProperty( "text", { value: "", handler: this.configText, validator: this._checkString, suppressEvent: true
} ); oConfig.addProperty("helptext", { handler: this.configHelpText }); oConfig.addProperty( "url", { value: "#", handler: this.configURL, suppressEvent: true } ); oConfig.addProperty( "target", { handler: this.configTarget, suppressEvent: true } ); oConfig.addProperty( "emphasis", { value: false, handler: this.configEmphasis, validator: CheckBoolean, suppressEvent: true
} ); oConfig.addProperty( "strongemphasis", { value: false, handler: this.configStrongEmphasis, validator: CheckBoolean, suppressEvent: true
} ); oConfig.addProperty( "checked", { value: false, handler: this.configChecked, validator: this.cfg.checkBoolean, suppressEvent: true, supercedes:["disabled"]
} ); oConfig.addProperty( "disabled", { value: false, handler: this.configDisabled, validator: CheckBoolean, suppressEvent: true
} ); oConfig.addProperty( "selected", { value: false, handler: this.configSelected, validator: CheckBoolean, suppressEvent: true
} ); oConfig.addProperty("submenu", { handler: this.configSubmenu });}, getNextEnabledSibling: function() { if(this.parent instanceof Menu) { var nGroupIndex = this.groupIndex; var getNextArrayItem = function(p_aArray, p_nStartIndex) { return p_aArray[p_nStartIndex] || getNextArrayItem(p_aArray, (p_nStartIndex+1));}; var aItemGroups = this.parent.getItemGroups(); var oNextItem; if(this.index < (aItemGroups[nGroupIndex].length - 1)) { oNextItem = getNextArrayItem( aItemGroups[nGroupIndex], (this.index+1) );}
else { var nNextGroupIndex; if(nGroupIndex < (aItemGroups.length - 1)) { nNextGroupIndex = nGroupIndex + 1;}
else { nNextGroupIndex = 0;}
var aNextGroup = getNextArrayItem(aItemGroups, nNextGroupIndex); oNextItem = getNextArrayItem(aNextGroup, 0);}
return ( oNextItem.cfg.getProperty("disabled") || oNextItem.element.style.display == "none" ) ?
oNextItem.getNextEnabledSibling() : oNextItem;}
}, getPreviousEnabledSibling: function() { if(this.parent instanceof Menu) { var nGroupIndex = this.groupIndex; var getPreviousArrayItem = function(p_aArray, p_nStartIndex) { return p_aArray[p_nStartIndex] || getPreviousArrayItem(p_aArray, (p_nStartIndex-1));}; var getFirstItemIndex = function(p_aArray, p_nStartIndex) { return p_aArray[p_nStartIndex] ?
p_nStartIndex :
getFirstItemIndex(p_aArray, (p_nStartIndex+1));}; var aItemGroups = this.parent.getItemGroups(); var oPreviousItem; if( this.index > getFirstItemIndex(aItemGroups[nGroupIndex], 0) ) { oPreviousItem = getPreviousArrayItem( aItemGroups[nGroupIndex], (this.index-1) );}
else { var nPreviousGroupIndex; if(nGroupIndex > getFirstItemIndex(aItemGroups, 0)) { nPreviousGroupIndex = nGroupIndex - 1;}
else { nPreviousGroupIndex = aItemGroups.length - 1;}
var aPreviousGroup = getPreviousArrayItem(aItemGroups, nPreviousGroupIndex); oPreviousItem = getPreviousArrayItem( aPreviousGroup, (aPreviousGroup.length - 1) );}
return ( oPreviousItem.cfg.getProperty("disabled") || oPreviousItem.element.style.display == "none" ) ?
oPreviousItem.getPreviousEnabledSibling() : oPreviousItem;}
}, focus: function() { var oParent = this.parent; var oAnchor = this._oAnchor; var oActiveItem = oParent.activeItem; if( !this.cfg.getProperty("disabled") &&
oParent &&
oParent.cfg.getProperty("visible") &&
this.element.style.display != "none" ) { if(oActiveItem) { oActiveItem.blur();}
try { oAnchor.focus();}
catch(e) { }
this.focusEvent.fire();}
}, blur: function() { var oParent = this.parent; if( !this.cfg.getProperty("disabled") &&
oParent &&
Dom.getStyle(oParent.element, "visibility") == "visible" ) { this._oAnchor.blur(); this.blurEvent.fire();}
}, destroy: function() { var oEl = this.element; if(oEl) { this.mouseOverEvent.unsubscribeAll(); this.mouseOutEvent.unsubscribeAll(); this.mouseDownEvent.unsubscribeAll(); this.mouseUpEvent.unsubscribeAll(); this.clickEvent.unsubscribeAll(); this.keyPressEvent.unsubscribeAll(); this.keyDownEvent.unsubscribeAll(); this.keyUpEvent.unsubscribeAll(); this.focusEvent.unsubscribeAll(); this.blurEvent.unsubscribeAll(); this.cfg.configChangedEvent.unsubscribeAll(); var oParentNode = oEl.parentNode; if(oParentNode) { oParentNode.removeChild(oEl); this.destroyEvent.fire();}
this.destroyEvent.unsubscribeAll();}
}, toString: function() { return ("MenuItem: " + this.cfg.getProperty("text"));}
};})(); YAHOO.widget.MenuModuleItem = YAHOO.widget.MenuItem; YAHOO.widget.ContextMenu = function(p_oElement, p_oConfig) { YAHOO.widget.ContextMenu.superclass.constructor.call( this, p_oElement, p_oConfig );}; YAHOO.extend(YAHOO.widget.ContextMenu, YAHOO.widget.Menu, { _oTrigger: null, contextEventTarget: null, init: function(p_oElement, p_oConfig) { if(!this.ITEM_TYPE) { this.ITEM_TYPE = YAHOO.widget.ContextMenuItem;}
YAHOO.widget.ContextMenu.superclass.init.call(this, p_oElement); this.beforeInitEvent.fire(YAHOO.widget.ContextMenu); if(p_oConfig) { this.cfg.applyConfig(p_oConfig, true);}
this.initEvent.fire(YAHOO.widget.ContextMenu);}, _removeEventHandlers: function() { var Event = YAHOO.util.Event; var oTrigger = this._oTrigger; var bOpera = (this.browser == "opera"); Event.removeListener( oTrigger, (bOpera ? "mousedown" : "contextmenu"), this._onTriggerContextMenu ); if(bOpera) { Event.removeListener(oTrigger, "click", this._onTriggerClick);}
}, _onTriggerClick: function(p_oEvent, p_oMenu) { if(p_oEvent.ctrlKey) { YAHOO.util.Event.stopEvent(p_oEvent);}
}, _onTriggerContextMenu: function(p_oEvent, p_oMenu) { YAHOO.widget.MenuManager.hideVisible(); var Event = YAHOO.util.Event; var oConfig = this.cfg; if(p_oEvent.type == "mousedown" && !p_oEvent.ctrlKey) { return;}
this.contextEventTarget = Event.getTarget(p_oEvent); var nX = Event.getPageX(p_oEvent); var nY = Event.getPageY(p_oEvent); oConfig.applyConfig( { xy:[nX, nY], visible:true } ); oConfig.fireQueue(); Event.stopEvent(p_oEvent);}, toString: function() { return ("ContextMenu " + this.id);}, initDefaultConfig: function() { YAHOO.widget.ContextMenu.superclass.initDefaultConfig.call(this); this.cfg.addProperty("trigger", { handler: this.configTrigger });}, destroy: function() { this._removeEventHandlers(); YAHOO.widget.ContextMenu.superclass.destroy.call(this);}, configTrigger: function(p_sType, p_aArgs, p_oMenu) { var Event = YAHOO.util.Event; var oTrigger = p_aArgs[0]; if(oTrigger) { if(this._oTrigger) { this._removeEventHandlers();}
this._oTrigger = oTrigger; var bOpera = (this.browser == "opera"); Event.addListener( oTrigger, (bOpera ? "mousedown" : "contextmenu"), this._onTriggerContextMenu, this, true ); if(bOpera) { Event.addListener( oTrigger, "click", this._onTriggerClick, this, true );}
}
else { this._removeEventHandlers();}
}
}); YAHOO.widget.ContextMenuItem = function(p_oObject, p_oConfig) { YAHOO.widget.ContextMenuItem.superclass.constructor.call( this, p_oObject, p_oConfig );}; YAHOO.extend(YAHOO.widget.ContextMenuItem, YAHOO.widget.MenuItem, { init: function(p_oObject, p_oConfig) { if(!this.SUBMENU_TYPE) { this.SUBMENU_TYPE = YAHOO.widget.ContextMenu;}
YAHOO.widget.ContextMenuItem.superclass.init.call(this, p_oObject); var oConfig = this.cfg; if(p_oConfig) { oConfig.applyConfig(p_oConfig, true);}
oConfig.fireQueue();}, toString: function() { return ("MenuBarItem: " + this.cfg.getProperty("text"));}
}); YAHOO.widget.MenuBar = function(p_oElement, p_oConfig) { YAHOO.widget.MenuBar.superclass.constructor.call( this, p_oElement, p_oConfig );}; YAHOO.extend(YAHOO.widget.MenuBar, YAHOO.widget.Menu, { init: function(p_oElement, p_oConfig) { if(!this.ITEM_TYPE) { this.ITEM_TYPE = YAHOO.widget.MenuBarItem;}
YAHOO.widget.MenuBar.superclass.init.call(this, p_oElement); this.beforeInitEvent.fire(YAHOO.widget.MenuBar); if(p_oConfig) { this.cfg.applyConfig(p_oConfig, true);}
this.initEvent.fire(YAHOO.widget.MenuBar);}, CSS_CLASS_NAME: "yuimenubar", _onKeyDown: function(p_sType, p_aArgs, p_oMenuBar) { var Event = YAHOO.util.Event; var oEvent = p_aArgs[0]; var oItem = p_aArgs[1]; var oItemCfg = oItem.cfg; var oSubmenu; switch(oEvent.keyCode) { case 27:
if(this.cfg.getProperty("position") == "dynamic") { this.hide(); if(this.parent) { this.parent.focus();}
}
else if(this.activeItem) { oSubmenu = this.activeItem.cfg.getProperty("submenu"); if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { oSubmenu.hide(); this.activeItem.focus();}
else { this.activeItem.cfg.setProperty("selected", false); this.activeItem.blur();}
}
Event.preventDefault(oEvent); break; case 37:
case 39:
if( oItem == this.activeItem &&
!oItemCfg.getProperty("selected") ) { oItemCfg.setProperty("selected", true);}
else { var oNextItem = (oEvent.keyCode == 37) ?
oItem.getPreviousEnabledSibling() :
oItem.getNextEnabledSibling(); if(oNextItem) { this.clearActiveItem(); oNextItem.cfg.setProperty("selected", true); if(this.cfg.getProperty("autosubmenudisplay")) { oSubmenu = oNextItem.cfg.getProperty("submenu"); if(oSubmenu) { oSubmenu.show(); oSubmenu.activeItem.blur(); oSubmenu.activeItem = null;}
}
oNextItem.focus();}
}
Event.preventDefault(oEvent); break; case 40:
if(this.activeItem != oItem) { this.clearActiveItem(); oItemCfg.setProperty("selected", true); oItem.focus();}
oSubmenu = oItemCfg.getProperty("submenu"); if(oSubmenu) { if(oSubmenu.cfg.getProperty("visible")) { oSubmenu.setInitialSelection(); oSubmenu.setInitialFocus();}
else { oSubmenu.show();}
}
Event.preventDefault(oEvent); break;}
}, _onClick: function(p_sType, p_aArgs, p_oMenuBar) { YAHOO.widget.MenuBar.superclass._onClick.call( this, p_sType, p_aArgs, p_oMenuBar ); var oItem = p_aArgs[1]; if(oItem) { var Event = YAHOO.util.Event; var Dom = YAHOO.util.Dom; var oEvent = p_aArgs[0]; var oTarget = Event.getTarget(oEvent); var oActiveItem = this.activeItem; var oConfig = this.cfg; if(oActiveItem && oActiveItem != oItem) { this.clearActiveItem();}
oItem.cfg.setProperty("selected", true); oItem.focus(); var oSubmenu = oItem.cfg.getProperty("submenu"); if(oSubmenu && oTarget != oItem.submenuIndicator) { if(oSubmenu.cfg.getProperty("visible")) { oSubmenu.hide();}
else { oSubmenu.show();}
}
}
}, toString: function() { return ("MenuBar " + this.id);}, initDefaultConfig: function() { YAHOO.widget.MenuBar.superclass.initDefaultConfig.call(this); var oConfig = this.cfg; oConfig.addProperty( "position", { value: "static", handler: this.configPosition, validator: this._checkPosition, supercedes: ["visible"]
} ); oConfig.addProperty("submenualignment", { value: ["tl","bl"] } ); oConfig.addProperty( "autosubmenudisplay", { value: false, validator: oConfig.checkBoolean } );}
}); YAHOO.widget.MenuBarItem = function(p_oObject, p_oConfig) { YAHOO.widget.MenuBarItem.superclass.constructor.call( this, p_oObject, p_oConfig );}; YAHOO.extend(YAHOO.widget.MenuBarItem, YAHOO.widget.MenuItem, { init: function(p_oObject, p_oConfig) { if(!this.SUBMENU_TYPE) { this.SUBMENU_TYPE = YAHOO.widget.Menu;}
YAHOO.widget.MenuBarItem.superclass.init.call(this, p_oObject); var oConfig = this.cfg; if(p_oConfig) { oConfig.applyConfig(p_oConfig, true);}
oConfig.fireQueue();}, CSS_CLASS_NAME: "yuimenubaritem", SUBMENU_INDICATOR_IMAGE_PATH: "nt/ic/ut/alt1/menuarodwn8_nrm_1.gif", SELECTED_SUBMENU_INDICATOR_IMAGE_PATH: "nt/ic/ut/alt1/menuarodwn8_hov_1.gif", DISABLED_SUBMENU_INDICATOR_IMAGE_PATH: "nt/ic/ut/alt1/menuarodwn8_dim_1.gif", toString: function() { return ("MenuBarItem: " + this.cfg.getProperty("text"));}
}); 