/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
Version 0.11.0
*/
YAHOO.widget.MenuModule = function(_1, _2) {
   YAHOO.widget.MenuModule.superclass.constructor.call(this, _1, _2);
   };
YAHOO.extend(YAHOO.widget.MenuModule, YAHOO.widget.Overlay);
YAHOO.widget.MenuModule.prototype.CSS_CLASS_NAME = "yuimenu";
YAHOO.widget.MenuModule.prototype.ITEM_TYPE = null;
YAHOO.widget.MenuModule.prototype.GROUP_TITLE_TAG_NAME = "H6";
YAHOO.widget.MenuModule.prototype._aGroupTitleElements = null;
YAHOO.widget.MenuModule.prototype._aItemGroups = null;
YAHOO.widget.MenuModule.prototype._aListElements = null;
YAHOO.widget.MenuModule.prototype._oEventUtil = YAHOO.util.Event;
YAHOO.widget.MenuModule.prototype._oDom = YAHOO.util.Dom;
YAHOO.widget.MenuModule.prototype._oCurrentItem = null;
YAHOO.widget.MenuModule.prototype._bFiredMouseOverEvent = false;
YAHOO.widget.MenuModule.prototype._bFiredMouseOutEvent = false;
YAHOO.widget.MenuModule.prototype.activeItem = null;
YAHOO.widget.MenuModule.prototype.parent = null;
YAHOO.widget.MenuModule.prototype.srcElement = null;
YAHOO.widget.MenuModule.prototype.mouseOverEvent = null;
YAHOO.widget.MenuModule.prototype.mouseOutEvent = null;
YAHOO.widget.MenuModule.prototype.mouseDownEvent = null;
YAHOO.widget.MenuModule.prototype.mouseUpEvent = null;
YAHOO.widget.MenuModule.prototype.clickEvent = null;
YAHOO.widget.MenuModule.prototype.keyPressEvent = null;
YAHOO.widget.MenuModule.prototype.keyDownEvent = null;
YAHOO.widget.MenuModule.prototype.keyUpEvent = null;
YAHOO.widget.MenuModule.prototype.init = function(_3, _4) {
   var _5 = this._oDom;
   var _6 = this._oEventUtil;
   if(!this.ITEM_TYPE) {
      this.ITEM_TYPE = YAHOO.widget.MenuModuleItem;
      }
   this._aItemGroups = [];
   this._aListElements = [];
   this._aGroupTitleElements = [];
   var _7;
   if(typeof _3 == "string") {
      _7 = document.getElementById(_3);
      }
   else {
      if(_3.tagName) {
         _7 = _3;
         }
      }
   if(_7) {
      switch(_7.tagName) {
         case "DIV" : this.srcElement = _7;
         YAHOO.widget.MenuModule.superclass.init.call(this, _7);
         this.beforeInitEvent.fire(YAHOO.widget.MenuModule);
         var _8 = this.body.firstChild;
         var i = 0;
         do {
            switch(_8.tagName) {
               case this.GROUP_TITLE_TAG_NAME : this._aGroupTitleElements[i] = _8;
               break;
               case "UL" : this._aListElements[i] = _8;
               this._aItemGroups[i] = [];
               i++;
               break;
               }
            }
         while((_8 = _8.nextSibling));
         if(this._aListElements[0]) {
            _5.addClass(this._aListElements[0], "first-of-type");
            }
         break;
         case "SELECT" : this.srcElement = _7;
         var _a = _5.generateId();
         YAHOO.widget.MenuModule.superclass.init.call(this, _a);
         this.beforeInitEvent.fire(YAHOO.widget.MenuModule);
         break;
         }
      }
   else {
      YAHOO.widget.MenuModule.superclass.init.call(this, _3);
      this.beforeInitEvent.fire(YAHOO.widget.MenuModule);
      }
   if(this.element) {
      var _b = this.element;
      var _c = YAHOO.util.CustomEvent;
      _5.addClass(_b, this.CSS_CLASS_NAME);
      _6.addListener(_b, "mouseover", this._onElementMouseOver, this, true);
      _6.addListener(_b, "mouseout", this._onElementMouseOut, this, true);
      _6.addListener(_b, "mousedown", this._onDOMEvent, this, true);
      _6.addListener(_b, "mouseup", this._onDOMEvent, this, true);
      _6.addListener(_b, "click", this._onElementClick, this, true);
      _6.addListener(_b, "keydown", this._onDOMEvent, this, true);
      _6.addListener(_b, "keyup", this._onDOMEvent, this, true);
      _6.addListener(_b, "keypress", this._onDOMEvent, this, true);
      this.mouseOverEvent = new _c("mouseOverEvent", this);
      this.mouseOutEvent = new _c("mouseOutEvent", this);
      this.mouseDownEvent = new _c("mouseDownEvent", this);
      this.mouseUpEvent = new _c("mouseUpEvent", this);
      this.clickEvent = new _c("clickEvent", this);
      this.keyPressEvent = new _c("keyPressEvent", this);
      this.keyDownEvent = new _c("keyDownEvent", this);
      this.keyUpEvent = new _c("keyUpEvent", this);
      this.beforeRenderEvent.subscribe(this._onBeforeRender, this, true);
      this.renderEvent.subscribe(this._onRender, this, true);
      this.showEvent.subscribe(this._onShow, this, true);
      this.beforeHideEvent.subscribe(this._onBeforeHide, this, true);
      if(_4) {
         this.cfg.applyConfig(_4, true);
         }
      this.cfg.queueProperty("visible", false);
      if(this.srcElement) {
         this._initSubTree();
         }
      }
   this.initEvent.fire(YAHOO.widget.MenuModule);
   };
YAHOO.widget.MenuModule.prototype._initSubTree = function() {
   var _d;
   switch(this.srcElement.tagName) {
      case "DIV" : if(this._aListElements.length > 0) {
         var i = this._aListElements.length - 1;
         do {
            _d = this._aListElements[i].firstChild;
            do {
               switch(_d.tagName) {
                  case "LI" : this.addItem(new this.ITEM_TYPE(_d), i);
                  break;
                  }
               }
            while((_d = _d.nextSibling));
            }
         while(i--);
         }
      break;
      case "SELECT" : _d = this.srcElement.firstChild;
      do {
         switch(_d.tagName) {
            case "OPTGROUP" : case "OPTION" : this.addItem(new this.ITEM_TYPE(_d));
            break;
            }
         }
      while((_d = _d.nextSibling));
      break;
      }
   };
YAHOO.widget.MenuModule.prototype._getFirstEnabledItem = function() {
   var _f = this._aItemGroups.length;
   var _10;
   var _11;
   for(var i = 0; i < _f; i++) {
      _11 = this._aItemGroups[i];
      if(_11) {
         var _13 = _11.length;
         for(var n = 0; n < _13; n++) {
            _10 = _11[n];
            if(!_10.cfg.getProperty("disabled")) {
               return _10;
               }
            _10 = null;
            }
         }
      }
   };
YAHOO.widget.MenuModule.prototype._checkPosition = function(_15) {
   if(typeof _15 == "string") {
      var _16 = _15.toLowerCase();
      return ("dynamic,static".indexOf(_16) !=- 1);
      }
   };
YAHOO.widget.MenuModule.prototype._addItemToGroup = function(_17, _18, _19) {
   var Dom = this._oDom;
   var _1b;
   if(_18 instanceof this.ITEM_TYPE) {
      _1b = _18;
      }
   else {
      if(typeof _18 == "string") {
         _1b = new this.ITEM_TYPE(_18);
         }
      }
   if(_1b) {
      var _1c = typeof _17 == "number" ? _17 : 0;
      var _1d = this._getItemGroup(_1c);
      var _1e;
      if(!_1d) {
         _1d = this._createItemGroup(_1c);
         }
      if(typeof _19 == "number") {
         var _1f = (_19 >= _1d.length);
         if(_1d[_19]) {
            _1d.splice(_19, 0, _1b);
            }
         else {
            _1d[_19] = _1b;
            }
         _1e = _1d[_19];
         if(_1e) {
            if(_1f &&!_1e.element.parentNode) {
               this._aListElements[_1c].appendChild(_1e.element);
               }
            else {
               function getNextItemSibling(_20, _21) {
                  return (_20[_21] || getNextItemSibling(_20, (_21 + 1)));
                  }
               var _22 = getNextItemSibling(_1d, (_19 + 1));
               if(_22 &&!_1e.element.parentNode) {
                  this._aListElements[_1c].insertBefore(_1e.element, _22.element);
                  }
               }
            _1e.parent = this;
            this._subscribeToItemEvents(_1e);
            this._configureItemSubmenuModule(_1e);
            this._updateItemProperties(_1c);
            return _1e;
            }
         }
      else {
         var _23 = _1d.length;
         _1d[_23] = _1b;
         _1e = _1d[_23];
         if(_1e) {
            if(!Dom.isAncestor(this._aListElements[_1c], _1e.element)) {
               this._aListElements[_1c].appendChild(_1e.element);
               }
            _1e.element.setAttribute("groupindex", _1c);
            _1e.element.setAttribute("index", _23);
            _1e.parent = this;
            _1e.index = _23;
            _1e.groupIndex = _1c;
            this._subscribeToItemEvents(_1e);
            this._configureItemSubmenuModule(_1e);
            if(_23 === 0) {
               Dom.addClass(_1e.element, "first-of-type");
               }
            return _1e;
            }
         }
      }
   };
YAHOO.widget.MenuModule.prototype._removeItemFromGroupByIndex = function(_24, _25) {
   var _26 = typeof _24 == "number" ? _24 : 0;
   var _27 = this._getItemGroup(_26);
   if(_27) {
      var _28 = _27.splice(_25, 1);
      var _29 = _28[0];
      if(_29) {
         this._updateItemProperties(_26);
         if(_27.length === 0) {
            var oUL = this._aListElements[_26];
            if(this.body && oUL) {
               this.body.removeChild(oUL);
               }
            this._aItemGroups.splice(_26, 1);
            this._aListElements.splice(_26, 1);
            oUL = this._aListElements[0];
            if(oUL) {
               this._oDom.addClass(oUL, "first-of-type");
               }
            }
         return _29;
         }
      }
   };
YAHOO.widget.MenuModule.prototype._removeItemFromGroupByValue = function(_2b, _2c) {
   var _2d = this._getItemGroup(_2b);
   if(_2d) {
      var _2e = _2d.length;
      var _2f =- 1;
      if(_2e > 0) {
         var i = _2e - 1;
         do {
            if(_2d[i] == _2c) {
               _2f = i;
               break;
               }
            }
         while(i--);
         if(_2f >- 1) {
            return this._removeItemFromGroupByIndex(_2b, _2f);
            }
         }
      }
   };
YAHOO.widget.MenuModule.prototype._updateItemProperties = function(_31) {
   var _32 = this._getItemGroup(_31);
   var _33 = _32.length;
   if(_33 > 0) {
      var Dom = this._oDom;
      var i = _33 - 1;
      var _36;
      var oLI;
      do {
         _36 = _32[i];
         if(_36) {
            oLI = _36.element;
            _36.index = i;
            _36.groupIndex = _31;
            oLI.setAttribute("groupindex", _31);
            oLI.setAttribute("index", i);
            Dom.removeClass(oLI, "first-of-type");
            }
         }
      while(i--);
      if(oLI) {
         Dom.addClass(oLI, "first-of-type");
         }
      }
   };
YAHOO.widget.MenuModule.prototype._createItemGroup = function(_38) {
   if(!this._aItemGroups[_38]) {
      this._aItemGroups[_38] = [];
      var oUL = document.createElement("ul");
      this._aListElements[_38] = oUL;
      return this._aItemGroups[_38];
      }
   };
YAHOO.widget.MenuModule.prototype._getItemGroup = function(_3a) {
   var _3b = ((typeof _3a == "number") ? _3a : 0);
   return this._aItemGroups[_3b];
   };
YAHOO.widget.MenuModule.prototype._configureItemSubmenuModule = function(_3c) {
   var _3d = _3c.cfg.getProperty("submenu");
   if(_3d) {
      this.cfg.configChangedEvent.subscribe(this._onParentMenuModuleConfigChange, _3d, true);
      this.renderEvent.subscribe(this._onParentMenuModuleRender, _3d, true);
      _3d.beforeShowEvent.subscribe(this._onSubmenuBeforeShow, _3d, true);
      _3d.showEvent.subscribe(this._onSubmenuShow, _3d, true);
      _3d.hideEvent.subscribe(this._onSubmenuHide, _3d, true);
      }
   };
YAHOO.widget.MenuModule.prototype._subscribeToItemEvents = function(_3e) {
   var _3f = [this, _3e];
   _3e.focusEvent.subscribe(this._onItemFocus, _3f);
   _3e.blurEvent.subscribe(this._onItemBlur, _3f);
   _3e.cfg.configChangedEvent.subscribe(this._onItemConfigChange, _3f);
   };
YAHOO.widget.MenuModule.prototype._getOffsetWidth = function() {
   var _40 = this.element.cloneNode(true);
   this._oDom.setStyle(_40, "width", "");
   document.body.appendChild(_40);
   var _41 = _40.offsetWidth;
   document.body.removeChild(_40);
   return _41;
   };
YAHOO.widget.MenuModule.prototype._fireItemEvent = function(_42, _43, _44) {
   var me = this;
   function getItemElement(_46) {
      if(_46 == me.element) {
         return;
         }
      else {
         if(_46.tagName == "LI") {
            return _46;
            }
         else {
            if(_46.parentNode) {
               return getItemElement(_46.parentNode);
               }
            }
         }
      }
   var _47 = getItemElement(_42);
   if(_47) {
      var _48 = parseInt(_47.getAttribute("groupindex"), 10);
      var _49 = parseInt(_47.getAttribute("index"), 10);
      var _4a = this._aItemGroups[_48][_49];
      try {
      if(!_4a.cfg.getProperty("disabled")) {
         _4a[_43].fire(_44);
         return _4a;
         }
      } catch(e){}
      }
   };
YAHOO.widget.MenuModule.prototype._onDOMEvent = function(_4b, _4c) {
   var _4d = this._oEventUtil;
   var _4e = {
      "mousedown" : "mouseDownEvent", "mouseup" : "mouseUpEvent", "keydown" : "keyDownEvent", "keyup" : "keyUpEvent", "keypress" : "keyPressEvent"};
   var _4f = _4e[_4b.type];
   var _50 = _4d.getTarget(_4b);
   this._fireItemEvent(_50, _4f, _4b);
   this[_4f].fire(_4b);
   _4d.stopPropagation(_4b);
   };
YAHOO.widget.MenuModule.prototype._onElementMouseOver = function(_51, _52) {
   var _53 = this._oEventUtil;
   var _54 = _53.getTarget(_51);
   if((_54 == this.element || this._oDom.isAncestor(this.element, _54)) &&!this._bFiredMouseOverEvent) {
      this.mouseOverEvent.fire(_51);
      this._bFiredMouseOverEvent = true;
      this._bFiredMouseOutEvent = false;
      }
   if(!this._oCurrentItem) {
      this._oCurrentItem = this._fireItemEvent(_54, "mouseOverEvent", _51);
      }
   _53.stopPropagation(_51);
   };
YAHOO.widget.MenuModule.prototype._onElementMouseOut = function(_55, _56) {
   var Dom = this._oDom;
   var _58 = this._oEventUtil;
   var _59 = _58.getRelatedTarget(_55);
   var _5a = true;
   var _5b = false;
   if(this._oCurrentItem && _59) {
      if(_59 == this._oCurrentItem.element || Dom.isAncestor(this._oCurrentItem.element, _59)) {
         _5a = false;
         }
      var _5c = this._oCurrentItem.cfg.getProperty("submenu");
      if(_5c && (_59 == _5c.element || Dom.isAncestor(_5c.element, _59))) {
         _5b = true;
         }
      }
   if(this._oCurrentItem && (_5a || _5b)) {
      this._oCurrentItem.mouseOutEvent.fire(_55);
      this._oCurrentItem = null;
      }
   if(!this._bFiredMouseOutEvent && (!Dom.isAncestor(this.element, _59) || _5b)) {
      this.mouseOutEvent.fire(_55);
      this._bFiredMouseOutEvent = true;
      this._bFiredMouseOverEvent = false;
      }
   _58.stopPropagation(_55);
   };
YAHOO.widget.MenuModule.prototype._onElementClick = function(_5d, _5e) {
   var _5f = this._oEventUtil;
   var _60 = _5f.getTarget(_5d);
   var _61 = this._fireItemEvent(_60, "clickEvent", _5d);
   var _62;
   if(_61) {
      var _63 = _61.cfg.getProperty("url");
      var _64 = _61.cfg.getProperty("submenu");
      _62 = (_63.substr((_63.length - 1), 1) == "#");
      if(_60 == _61.submenuIndicator && _64) {
         if(_64.cfg.getProperty("visible")) {
            _64.hide();
            }
         else {
            var _65 = this.activeItem;
            if(_65 && _65 != this) {
               this.clearActiveItem();
               }
            this.activeItem = _61;
            _61.cfg.setProperty("selected", true);
            _64.show();
            }
         }
      else {
         if(_60.tagName != "A" &&!_62) {
            document.location = _63;
            }
         }
      }
   switch(_60.tagName) {
      case "A" : if(_62) {
         _5f.preventDefault(_5d);
         }
      else {
         break;
         }
      default : _5f.stopPropagation(_5d);
      break;
      }
   this.clickEvent.fire(_5d);
   };
YAHOO.widget.MenuModule.prototype._onBeforeRender = function(_66, _67, _68) {
   var Dom = this._oDom;
   var _6a = this.cfg;
   var oEl = this.element;
   var _6c = this._aListElements.length;
   if(_6a.getProperty("position") == "static") {
      _6a.queueProperty("iframe", false);
      _6a.queueProperty("visible", true);
      }
   if(_6c > 0) {
      var i = 0;
      var _6e = true;
      var oUL;
      var _70;
      do {
         oUL = this._aListElements[i];
         if(oUL) {
            if(_6e) {
               Dom.addClass(oUL, "first-of-type");
               _6e = false;
               }
            if(!Dom.isAncestor(oEl, oUL)) {
               this.appendToBody(oUL);
               }
            _70 = this._aGroupTitleElements[i];
            if(_70) {
               if(!Dom.isAncestor(oEl, _70)) {
                  oUL.parentNode.insertBefore(_70, oUL);
                  }
               Dom.addClass(oUL, "hastitle");
               }
            }
         i++;
         }
      while(i < _6c);
      }
   };
YAHOO.widget.MenuModule.prototype._onRender = function(_71, _72, _73) {
   if(this.cfg.getProperty("position") == "dynamic") {
      var _74 = this.element.parentNode.tagName == "BODY" ? this.element.offsetWidth : this._getOffsetWidth();
      this.cfg.setProperty("width", (_74 + "px"));
      }
   };
YAHOO.widget.MenuModule.prototype._onShow = function(_75, _76, _77) {
   this.setInitialFocus();
   };
YAHOO.widget.MenuModule.prototype._onBeforeHide = function(_78, _79, _7a) {
   var _7b = this.activeItem;
   if(_7b) {
      _7b.blur();
      if(_7b.cfg.getProperty("selected")) {
         _7b.cfg.setProperty("selected", false);
         }
      var _7c = _7b.cfg.getProperty("submenu");
      if(_7c && _7c.cfg.getProperty("visible")) {
         _7c.hide();
         }
      }
   };
YAHOO.widget.MenuModule.prototype._onParentMenuModuleConfigChange = function(_7d, _7e, _7f) {
   var _80 = _7e[0][0];
   var _81 = _7e[0][1];
   switch(_80) {
      case "iframe" : case "constraintoviewport" : _7f.cfg.setProperty(_80, _81);
      break;
      }
   };
YAHOO.widget.MenuModule.prototype._onParentMenuModuleRender = function(_82, _83, _84) {
   var _85 = _84.parent.parent;
   _84.cfg.applyConfig( {
      constraintoviewport : _85.cfg.getProperty("constraintoviewport"), xy : [0, 0], iframe : _85.cfg.getProperty("iframe")}
   );
   if(this._oDom.inDocument(this.element)) {
      this.render();
      }
   else {
      this.render(this.parent.element);
      }
   };
YAHOO.widget.MenuModule.prototype._onSubmenuBeforeShow = function(_86, _87, _88) {
   var _89 = this.parent;
   var _8a = _89.parent.cfg.getProperty("submenualignment");
   this.cfg.setProperty("context", [_89.element, _8a[0], _8a[1]]);
   _89.submenuIndicator.alt = _89.EXPANDED_SUBMENU_INDICATOR_ALT_TEXT;
   };
YAHOO.widget.MenuModule.prototype._onSubmenuShow = function(_8b, _8c, _8d) {
   var _8e = this.parent;
   _8e.submenuIndicator.alt = _8e.EXPANDED_SUBMENU_INDICATOR_ALT_TEXT;
   };
YAHOO.widget.MenuModule.prototype._onSubmenuHide = function(_8f, _90, _91) {
   var _92 = this.parent;
   if(_92.parent.cfg.getProperty("visible")) {
      _92.cfg.setProperty("selected", false);
      _92.focus();
      }
   _92.submenuIndicator.alt = _92.COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT;
   };
YAHOO.widget.MenuModule.prototype._onItemFocus = function(_93, _94, _95) {
   var me = _95[0];
   var _97 = _95[1];
   me.activeItem = _97;
   };
YAHOO.widget.MenuModule.prototype._onItemBlur = function(_98, _99, _9a) {
   var me = _9a[0];
   var _9c = _9a[1];
   var _9d = _9c.cfg.getProperty("submenu");
   if(!_9d || (_9d &&!_9d.cfg.getProperty("visible"))) {
      me.activeItem = null;
      }
   };
YAHOO.widget.MenuModule.prototype._onItemConfigChange = function(_9e, _9f, _a0) {
   var me = _a0[0];
   var _a2 = _9f[0][0];
   var _a3 = _a0[1];
   switch(_a2) {
      case "submenu" : var _a4 = _9f[0][1];
      if(_a4) {
         me._configureItemSubmenuModule(_a3);
         }
      break;
      case "text" : case "helptext" : if(me.element.style.width) {
         var _a5 = me._getOffsetWidth() + "px";
         me._oDom.setStyle(me.element, "width", _a5);
         }
      break;
      }
   };
YAHOO.widget.MenuModule.prototype.enforceConstraints = function(_a6, _a7, obj) {
   var Dom = this._oDom;
   var _aa = this.cfg;
   var pos = _a7[0];
   var x = pos[0];
   var y = pos[1];
   var bod = document.getElementsByTagName("body")[0];
   var htm = document.getElementsByTagName("html")[0];
   var _b0 = Dom.getStyle(bod, "overflow");
   var _b1 = Dom.getStyle(htm, "overflow");
   var _b2 = this.element.offsetHeight;
   var _b3 = this.element.offsetWidth;
   var _b4 = Dom.getClientWidth();
   var _b5 = Dom.getClientHeight();
   var _b6 = window.scrollX || document.body.scrollLeft;
   var _b7 = window.scrollY || document.body.scrollTop;
   var _b8 = _b7 + 10;
   var _b9 = _b6 + 10;
   var _ba = _b7 + _b5 - _b2 - 10;
   var _bb = _b6 + _b4 - _b3 - 10;
   var _bc = _aa.getProperty("context");
   var _bd = _bc ? _bc[0] : null;
   if(x < 10) {
      x = _b9;
      }
   else {
      if((x + _b3) > _b4) {
         if(_bd && ((x - _bd.offsetWidth) > _b3)) {
            x = (x - (_bd.offsetWidth + _b3));
            }
         else {
            x = _bb;
            }
         }
      }
   if(y < 10) {
      y = _b8;
      }
   else {
      if(y > _ba) {
         if(_bd && (y > _b2)) {
            y = ((y + _bd.offsetHeight) - _b2);
            }
         else {
            y = _ba;
            }
         }
      }
   _aa.setProperty("x", x, true);
   _aa.setProperty("y", y, true);
   };
YAHOO.widget.MenuModule.prototype.configPosition = function(_be, _bf, _c0) {
   var _c1 = _bf[0] == "static" ? "static" : "absolute";
   this._oDom.setStyle(this.element, "position", _c1);
   };
YAHOO.widget.MenuModule.prototype.toString = function() {
   return ("Menu " + this.id);
   };
YAHOO.widget.MenuModule.prototype.setItemGroupTitle = function(_c2, _c3) {
   if(typeof _c2 == "string" && _c2.length > 0) {
      var Dom = this._oDom;
      var _c5 = typeof _c3 == "number" ? _c3 : 0;
      var _c6 = this._aGroupTitleElements[_c5];
      if(_c6) {
         _c6.innerHTML = _c2;
         }
      else {
         _c6 = document.createElement(this.GROUP_TITLE_TAG_NAME);
         _c6.innerHTML = _c2;
         this._aGroupTitleElements[_c5] = _c6;
         }
      var i = this._aGroupTitleElements.length - 1;
      var _c8;
      do {
         if(this._aGroupTitleElements[i]) {
            Dom.removeClass(this._aGroupTitleElements[i], "first-of-type");
            _c8 = i;
            }
         }
      while(i--);
      if(_c8 !== null) {
         Dom.addClass(this._aGroupTitleElements[_c8], "first-of-type");
         }
      }
   };
YAHOO.widget.MenuModule.prototype.addItem = function(_c9, _ca) {
   if(_c9) {
      return this._addItemToGroup(_ca, _c9);
      }
   };
YAHOO.widget.MenuModule.prototype.insertItem = function(_cb, _cc, _cd) {
   if(_cb) {
      return this._addItemToGroup(_cd, _cb, _cc);
      }
   };
YAHOO.widget.MenuModule.prototype.removeItem = function(_ce, _cf) {
   if(typeof _ce != "undefined") {
      var _d0;
      if(_ce instanceof YAHOO.widget.MenuModuleItem) {
         _d0 = this._removeItemFromGroupByValue(_cf, _ce);
         }
      else {
         if(typeof _ce == "number") {
            _d0 = this._removeItemFromGroupByIndex(_cf, _ce);
            }
         }
      if(_d0) {
         _d0.destroy();
         return _d0;
         }
      }
   };
YAHOO.widget.MenuModule.prototype.getItemGroups = function() {
   return this._aItemGroups;
   };
YAHOO.widget.MenuModule.prototype.getItem = function(_d1, _d2) {
   if(typeof _d1 == "number") {
      var _d3 = this._getItemGroup(_d2);
      if(_d3) {
         return _d3[_d1];
         }
      }
   };
YAHOO.widget.MenuModule.prototype.destroy = function() {
   this._oEventUtil.purgeElement(this.element);
   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.beforeMoveEvent.unsubscribeAll();
   var _d4 = this._aItemGroups.length;
   var _d5;
   var _d6;
   var _d7;
   var i;
   var n;
   if(_d4 > 0) {
      i = _d4 - 1;
      do {
         _d6 = this._aItemGroups[i];
         if(_d6) {
            _d5 = _d6.length;
            if(_d5 > 0) {
               n = _d5 - 1;
               do {
                  _d7 = this._aItemGroups[i][n];
                  if(_d7) {
                     _d7.destroy();
                     }
                  }
               while(n--);
               }
            }
         }
      while(i--);
      }
   YAHOO.widget.MenuModule.superclass.destroy.call(this);
   };
YAHOO.widget.MenuModule.prototype.setInitialFocus = function() {
   var _da = this._getFirstEnabledItem();
   if(_da) {
      _da.focus();
      }
   };
YAHOO.widget.MenuModule.prototype.setInitialSelection = function() {
   var _db = this._getFirstEnabledItem();
   if(_db) {
      _db.cfg.setProperty("selected", true);
      }
   };
YAHOO.widget.MenuModule.prototype.clearActiveItem = function() {
   if(this.activeItem) {
      var _dc = this.activeItem.cfg;
      _dc.setProperty("selected", false);
      var _dd = _dc.getProperty("submenu");
      if(_dd) {
         _dd.hide();
         }
      }
   };
YAHOO.widget.MenuModule.prototype.initDefaultConfig = function() {
   YAHOO.widget.MenuModule.superclass.initDefaultConfig.call(this);
   var _de = this.cfg;
   _de.addProperty("position", {
      value : "dynamic", handler : this.configPosition, validator : this._checkPosition}
   );
   _de.refireEvent("position");
   _de.addProperty("submenualignment", {
      value : ["tl", "tr"]}
   );
   };
YAHOO.widget.MenuModuleItem = function(_df, _e0) {
   if(_df) {
      this.init(_df, _e0);
      }
   };
YAHOO.widget.MenuModuleItem.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.", CSS_CLASS_NAME : "yuimenuitem", SUBMENU_TYPE : null, SUBMENU_ITEM_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, _oDom : YAHOO.util.Dom, constructor : YAHOO.widget.MenuModuleItem, imageRoot : null, isSecure : YAHOO.widget.Module.prototype.isSecure, index : null, groupIndex : null, parent : null, element : null, srcElement : null, value : null, submenuIndicator : null, browser : YAHOO.widget.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(_e1, _e2) {
      this.imageRoot = (this.isSecure) ? this.IMG_ROOT_SSL : this.IMG_ROOT;
      if(!this.SUBMENU_TYPE) {
         this.SUBMENU_TYPE = YAHOO.widget.MenuModule;
         }
      if(!this.SUBMENU_ITEM_TYPE) {
         this.SUBMENU_ITEM_TYPE = YAHOO.widget.MenuModuleItem;
         }
      this.cfg = new YAHOO.util.Config(this);
      this.initDefaultConfig();
      var _e3 = this.cfg;
      if(this._checkString(_e1)) {
         this._createRootNodeStructure();
         _e3.setProperty("text", _e1);
         }
      else {
         if(this._checkDOMNode(_e1)) {
            switch(_e1.tagName) {
               case "OPTION" : this._createRootNodeStructure();
               _e3.setProperty("text", _e1.text);
               this.srcElement = _e1;
               break;
               case "OPTGROUP" : this._createRootNodeStructure();
               _e3.setProperty("text", _e1.label);
               this.srcElement = _e1;
               this._initSubTree();
               break;
               case "LI" : var _e4 = this._getFirstElement(_e1, "A");
               var _e5 = "#";
               var _e6 = null;
               if(_e4) {
                  _e5 = _e4.getAttribute("href");
                  if(_e4.innerText) {
                     _e6 = _e4.innerText;
                     }
                  else {
                     var _e7 = _e4.ownerDocument.createRange();
                     _e7.selectNodeContents(_e4);
                     _e6 = _e7.toString();
                     }
                  }
               else {
                  var _e8 = _e1.firstChild;
                  _e6 = _e8.nodeValue;
                  _e4 = document.createElement("a");
                  _e4.setAttribute("href", _e5);
                  _e1.replaceChild(_e4, _e8);
                  _e4.appendChild(_e8);
                  }
               this.srcElement = _e1;
               this.element = _e1;
               this._oAnchor = _e4;
               var _e9 = this._getFirstElement(_e4);
               var _ea = false;
               var _eb = false;
               if(_e9) {
                  this._oText = _e9.firstChild;
                  switch(_e9.tagName) {
                     case "EM" : _ea = true;
                     break;
                     case "STRONG" : _eb = true;
                     break;
                     }
                  }
               else {
                  this._oText = _e4.firstChild;
                  }
               _e3.setProperty("text", _e6, true);
               _e3.setProperty("url", _e5, true);
               _e3.setProperty("emphasis", _ea, true);
               _e3.setProperty("strongemphasis", _eb, true);
               this._initSubTree();
               break;
               }
            }
         }
      if(this.element) {
         this._oDom.addClass(this.element, this.CSS_CLASS_NAME);
         var _ec = YAHOO.util.CustomEvent;
         this.destroyEvent = new _ec("destroyEvent", this);
         this.mouseOverEvent = new _ec("mouseOverEvent", this);
         this.mouseOutEvent = new _ec("mouseOutEvent", this);
         this.mouseDownEvent = new _ec("mouseDownEvent", this);
         this.mouseUpEvent = new _ec("mouseUpEvent", this);
         this.clickEvent = new _ec("clickEvent", this);
         this.keyPressEvent = new _ec("keyPressEvent", this);
         this.keyDownEvent = new _ec("keyDownEvent", this);
         this.keyUpEvent = new _ec("keyUpEvent", this);
         this.focusEvent = new _ec("focusEvent", this);
         this.blurEvent = new _ec("blurEvent", this);
         if(_e2) {
            _e3.applyConfig(_e2);
            }
         _e3.fireQueue();
         }
      }
   , _getFirstElement : function(_ed, _ee) {
      var _ef;
      if(_ed.firstChild && _ed.firstChild.nodeType == 1) {
         _ef = _ed.firstChild;
         }
      else {
         if(_ed.firstChild && _ed.firstChild.nextSibling && _ed.firstChild.nextSibling.nodeType == 1) {
            _ef = _ed.firstChild.nextSibling;
            }
         }
      if(_ee) {
         return (_ef && _ef.tagName == _ee) ? _ef : false;
         }
      return _ef;
      }
   , _checkString : function(_f0) {
      return (typeof _f0 == "string");
      }
   , _checkDOMNode : function(_f1) {
      return (_f1 && _f1.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 _f2 = this.SUBMENU_TYPE;
      var _f3 = this.SUBMENU_ITEM_TYPE;
      var _f4 = this.srcElement;
      var _f5 = this.cfg;
      if(_f4.childNodes.length > 0) {
         var _f6 = _f4.firstChild;
         var _f7 = [];
         do {
            switch(_f6.tagName) {
               case "DIV" : _f5.setProperty("submenu", (new _f2(_f6)));
               break;
               case "OPTION" : _f7[_f7.length] = _f6;
               break;
               }
            }
         while((_f6 = _f6.nextSibling));
         var _f8 = _f7.length;
         if(_f8 > 0) {
            _f5.setProperty("submenu", (new _f2(this._oDom.generateId())));
            for(var n = 0; n < _f8; n++) {
               this._oSubmenu.addItem((new _f3(_f7[n])));
               }
            }
         }
      }
   , configText : function(_fa, _fb, _fc) {
      var _fd = _fb[0];
      if(this._oText) {
         this._oText.nodeValue = _fd;
         }
      }
   , configHelpText : function(_fe, _ff, _100) {
      var me = this;
      var Dom = this._oDom;
      var _103 = _ff[0];
      var oEl = this.element;
      var _105 = this.cfg;
      var _106 = [oEl, this._oAnchor];
      var oImg = this.submenuIndicator;
      function initHelpText() {
         Dom.addClass(_106, "hashelptext");
         if(_105.getProperty("disabled")) {
            _105.refireEvent("disabled");
            }
         if(_105.getProperty("selected")) {
            _105.refireEvent("selected");
            }
         }
      function removeHelpText() {
         Dom.removeClass(_106, "hashelptext");
         oEl.removeChild(me._oHelpTextEM);
         me._oHelpTextEM = null;
         }
      if(this._checkDOMNode(_103)) {
         if(this._oHelpTextEM) {
            this._oHelpTextEM.parentNode.replaceChild(_103, this._oHelpTextEM);
            }
         else {
            this._oHelpTextEM = _103;
            oEl.insertBefore(this._oHelpTextEM, oImg);
            }
         initHelpText();
         }
      else {
         if(this._checkString(_103)) {
            if(_103.length === 0) {
               removeHelpText();
               }
            else {
               if(!this._oHelpTextEM) {
                  this._oHelpTextEM = document.createElement("em");
                  oEl.insertBefore(this._oHelpTextEM, oImg);
                  }
               this._oHelpTextEM.innerHTML = _103;
               initHelpText();
               }
            }
         else {
            if(!_103 && this._oHelpTextEM) {
               removeHelpText();
               }
            }
         }
      }
   , configURL : function(_108, _109, _10a) {
      var sURL = _109[0];
      if(!sURL) {
         sURL = "#";
         }
      this._oAnchor.setAttribute("href", sURL);
      }
   , configEmphasis : function(_10c, _10d, _10e) {
      var _10f = _10d[0];
      var _110 = this._oAnchor;
      var _111 = this._oText;
      var _112 = this.cfg;
      var oEM;
      if(_10f && _112.getProperty("strongemphasis")) {
         _112.setProperty("strongemphasis", false);
         }
      if(_110) {
         if(_10f) {
            oEM = document.createElement("em");
            oEM.appendChild(_111);
            _110.appendChild(oEM);
            }
         else {
            oEM = this._getFirstElement(_110, "EM");
            _110.removeChild(oEM);
            _110.appendChild(_111);
            }
         }
      }
   , configStrongEmphasis : function(_114, _115, _116) {
      var _117 = _115[0];
      var _118 = this._oAnchor;
      var _119 = this._oText;
      var _11a = this.cfg;
      var _11b;
      if(_117 && _11a.getProperty("emphasis")) {
         _11a.setProperty("emphasis", false);
         }
      if(_118) {
         if(_117) {
            _11b = document.createElement("strong");
            _11b.appendChild(_119);
            _118.appendChild(_11b);
            }
         else {
            _11b = this._getFirstElement(_118, "STRONG");
            _118.removeChild(_11b);
            _118.appendChild(_119);
            }
         }
      }
   , configDisabled : function(_11c, _11d, _11e) {
      var _11f = _11d[0];
      var Dom = this._oDom;
      var _121 = this._oAnchor;
      var _122 = [this.element, _121];
      var oEM = this._oHelpTextEM;
      var _124 = this.cfg;
      var oImg = this.submenuIndicator;
      var _126;
      var _127;
      if(oEM) {
         _122[2] = oEM;
         }
      if(_11f) {
         if(_124.getProperty("selected")) {
            _124.setProperty("selected", false);
            }
         _121.removeAttribute("href");
         Dom.addClass(_122, "disabled");
         _126 = this.DISABLED_SUBMENU_INDICATOR_IMAGE_PATH;
         _127 = this.DISABLED_SUBMENU_INDICATOR_ALT_TEXT;
         }
      else {
         _121.setAttribute("href", _124.getProperty("url"));
         Dom.removeClass(_122, "disabled");
         _126 = this.SUBMENU_INDICATOR_IMAGE_PATH;
         _127 = this.COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT;
         }
      if(oImg) {
         oImg.src = this.imageRoot + _126;
         oImg.alt = _127;
         }
      }
   , configSelected : function(_128, _129, _12a) {
      if(!this.cfg.getProperty("disabled")) {
         var Dom = this._oDom;
         var _12c = _129[0];
         var oEM = this._oHelpTextEM;
         var _12e = [this.element, this._oAnchor];
         var oImg = this.submenuIndicator;
         var _130;
         if(oEM) {
            _12e[2] = oEM;
            }
         if(_12c) {
            Dom.addClass(_12e, "selected");
            _130 = this.SELECTED_SUBMENU_INDICATOR_IMAGE_PATH;
            }
         else {
            Dom.removeClass(_12e, "selected");
            _130 = this.SUBMENU_INDICATOR_IMAGE_PATH;
            }
         if(oImg) {
            oImg.src = document.images[(this.imageRoot + _130)].src;
            }
         }
      }
   , configSubmenu : function(_131, _132, _133) {
      var Dom = this._oDom;
      var oEl = this.element;
      var _136 = _132[0];
      var oImg = this.submenuIndicator;
      var _138 = this.cfg;
      var _139 = [this.element, this._oAnchor];
      if(_136) {
         _136.parent = this;
         this._oSubmenu = _136;
         if(!oImg) {
            var me = this;
            function preloadImage(_13b) {
               var _13c = me.imageRoot + _13b;
               if(!document.images[_13c]) {
                  var oImg = document.createElement("img");
                  oImg.src = _13c;
                  oImg.name = _13c;
                  oImg.id = _13c;
                  oImg.style.display = "none";
                  document.body.appendChild(oImg);
                  }
               }
            preloadImage(this.SUBMENU_INDICATOR_IMAGE_PATH);
            preloadImage(this.SELECTED_SUBMENU_INDICATOR_IMAGE_PATH);
            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(_139, "hassubmenu");
            if(_138.getProperty("disabled")) {
               _138.refireEvent("disabled");
               }
            if(_138.getProperty("selected")) {
               _138.refireEvent("selected");
               }
            }
         }
      else {
         Dom.removeClass(_139, "hassubmenu");
         if(oImg) {
            oEl.removeChild(oImg);
            }
         if(this._oSubmenu) {
            this._oSubmenu.destroy();
            }
         }
      }
   , initDefaultConfig : function() {
      var _13e = this.cfg;
      var _13f = _13e.checkBoolean;
      _13e.addProperty("text", {
         value : "", handler : this.configText, validator : this._checkString, suppressEvent : true}
      );
      _13e.addProperty("helptext", {
         handler : this.configHelpText}
      );
      _13e.addProperty("url", {
         value : "#", handler : this.configURL, suppressEvent : true}
      );
      _13e.addProperty("emphasis", {
         value : false, handler : this.configEmphasis, validator : _13f, suppressEvent : true}
      );
      _13e.addProperty("strongemphasis", {
         value : false, handler : this.configStrongEmphasis, validator : _13f, suppressEvent : true}
      );
      _13e.addProperty("disabled", {
         value : false, handler : this.configDisabled, validator : _13f, suppressEvent : true}
      );
      _13e.addProperty("selected", {
         value : false, handler : this.configSelected, validator : _13f, suppressEvent : true}
      );
      _13e.addProperty("submenu", {
         handler : this.configSubmenu}
      );
      }
   , getNextEnabledSibling : function() {
      if(this.parent instanceof YAHOO.widget.MenuModule) {
         var _140 = this.groupIndex;
         function getNextArrayItem(_141, _142) {
            return _141[_142] || getNextArrayItem(_141, (_142 + 1));
            }
         var _143 = this.parent.getItemGroups();
         var _144;
         if(this.index < (_143[_140].length - 1)) {
            _144 = getNextArrayItem(_143[_140], (this.index + 1));
            }
         else {
            var _145;
            if(_140 < (_143.length - 1)) {
               _145 = _140 + 1;
               }
            else {
               _145 = 0;
               }
            var _146 = getNextArrayItem(_143, _145);
            _144 = getNextArrayItem(_146, 0);
            }
         return _144.cfg.getProperty("disabled") ? _144.getNextEnabledSibling() : _144;
         }
      }
   , getPreviousEnabledSibling : function() {
      if(this.parent instanceof YAHOO.widget.MenuModule) {
         var _147 = this.groupIndex;
         function getPreviousArrayItem(_148, _149) {
            return _148[_149] || getPreviousArrayItem(_148, (_149 - 1));
            }
         function getFirstItemIndex(_14a, _14b) {
            return _14a[_14b] ? _14b : getFirstItemIndex(_14a, (_14b + 1));
            }
         var _14c = this.parent.getItemGroups();
         var _14d;
         if(this.index > getFirstItemIndex(_14c[_147], 0)) {
            _14d = getPreviousArrayItem(_14c[_147], (this.index - 1));
            }
         else {
            var _14e;
            if(_147 > getFirstItemIndex(_14c, 0)) {
               _14e = _147 - 1;
               }
            else {
               _14e = _14c.length - 1;
               }
            var _14f = getPreviousArrayItem(_14c, _14e);
            _14d = getPreviousArrayItem(_14f, (_14f.length - 1));
            }
         return _14d.cfg.getProperty("disabled") ? _14d.getPreviousEnabledSibling() : _14d;
         }
      }
   , focus : function() {
      var _150 = this.parent;
      var _151 = this._oAnchor;
      var _152 = _150.activeItem;
      if(!this.cfg.getProperty("disabled") && _150 && _150.cfg.getProperty("visible")) {
         if(_152) {
            _152.blur();
            }
         _151.focus();
         if(_150 && this.browser == "opera" && this._oSubmenu) {
            _151.focus();
            }
         this.focusEvent.fire();
         }
      }
   , blur : function() {
      var _153 = this.parent;
      if(!this.cfg.getProperty("disabled") && _153 && this._oDom.getStyle(_153.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 _155 = oEl.parentNode;
         if(_155) {
            _155.removeChild(oEl);
            this.destroyEvent.fire();
            }
         this.destroyEvent.unsubscribeAll();
         }
      }
   };
YAHOO.widget.Menu = function(_156, _157) {
   YAHOO.widget.Menu.superclass.constructor.call(this, _156, _157);
   };
YAHOO.extend(YAHOO.widget.Menu, YAHOO.widget.MenuModule);
YAHOO.widget.Menu.prototype.init = function(_158, _159) {
   if(!this.ITEM_TYPE) {
      this.ITEM_TYPE = YAHOO.widget.MenuItem;
      }
   YAHOO.widget.Menu.superclass.init.call(this, _158);
   this.beforeInitEvent.fire(YAHOO.widget.Menu);
   this.showEvent.subscribe(this._onMenuShow, this, true);
   this.mouseOverEvent.subscribe(this._onMenuMouseOver, this, true);
   this.keyDownEvent.subscribe(this._onMenuKeyDown, this, true);
   if(_159) {
      this.cfg.applyConfig(_159, true);
      }
   this.initEvent.fire(YAHOO.widget.Menu);
   };
YAHOO.widget.Menu.prototype._onMenuShow = function(_15a, _15b, _15c) {
   var _15d = this.parent;
   if(_15d && _15d.parent instanceof YAHOO.widget.Menu) {
      var _15e = _15d.parent.cfg.getProperty("submenualignment");
      this.cfg.setProperty("submenualignment", [_15e[0], _15e[1]]);
      }
   };
YAHOO.widget.Menu.prototype._onMenuMouseOver = function(_15f, _160, _161) {
   if(this.parent) {
      this.parent.cfg.setProperty("selected", true);
      }
   };
YAHOO.widget.Menu.prototype._onMenuKeyDown = function(_162, _163, _164) {
   if(this.cfg.getProperty("position") == "dynamic") {
      var _165 = _163[0];
      var _166 = this.parent;
      if(_165.keyCode == 27) {
         this.hide();
         if(_166) {
            _166.focus();
            if(_166.parent instanceof YAHOO.widget.Menu) {
               _166.cfg.setProperty("selected", true);
               }
            YAHOO.util.Event.preventDefault(_165);
            }
         }
      }
   };
YAHOO.widget.Menu.prototype.onDomResize = function(e, obj) {
   if(!this._handleResize) {
      this._handleResize = true;
      return;
      }
   var me = this;
   var _16a = this.cfg;
   if(_16a.getProperty("position") == "dynamic") {
      _16a.setProperty("width", (this._getOffsetWidth() + "px"));
      if(this.parent && _16a.getProperty("visible")) {
         function align() {
            me.align();
            }
         window.setTimeout(align, 0);
         }
      }
   YAHOO.widget.Menu.superclass.onDomResize.call(this, e, obj);
   };
YAHOO.widget.MenuItem = function(_16b, _16c) {
   YAHOO.widget.MenuItem.superclass.constructor.call(this, _16b, _16c);
   };
YAHOO.extend(YAHOO.widget.MenuItem, YAHOO.widget.MenuModuleItem);
YAHOO.widget.MenuItem.prototype.init = function(_16d, _16e) {
   if(!this.SUBMENU_TYPE) {
      this.SUBMENU_TYPE = YAHOO.widget.Menu;
      }
   if(!this.SUBMENU_ITEM_TYPE) {
      this.SUBMENU_ITEM_TYPE = YAHOO.widget.MenuItem;
      }
   YAHOO.widget.MenuItem.superclass.init.call(this, _16d);
   this.keyDownEvent.subscribe(this._onKeyDown, this, true);
   this.mouseOverEvent.subscribe(this._onMouseOver, this, true);
   this.mouseOutEvent.subscribe(this._onMouseOut, this, true);
   var _16f = this.cfg;
   if(_16e) {
      _16f.applyConfig(_16e, true);
      }
   _16f.fireQueue();
   };
YAHOO.widget.MenuItem.prototype.CHECKED_IMAGE_PATH = "nt/ic/ut/bsc/menuchk8_nrm_1.gif";
YAHOO.widget.MenuItem.prototype.SELECTED_CHECKED_IMAGE_PATH = "nt/ic/ut/bsc/menuchk8_hov_1.gif";
YAHOO.widget.MenuItem.prototype.DISABLED_CHECKED_IMAGE_PATH = "nt/ic/ut/bsc/menuchk8_dim_1.gif";
YAHOO.widget.MenuItem.prototype.CHECKED_IMAGE_ALT_TEXT = "Checked.";
YAHOO.widget.MenuItem.prototype.DISABLED_CHECKED_IMAGE_ALT_TEXT = "Checked. (Item disabled.)";
YAHOO.widget.MenuItem.prototype._checkImage = null;
YAHOO.widget.MenuItem.prototype._onKeyDown = function(_170, _171, _172) {
   var _173 = YAHOO.util.Event;
   var _174 = _171[0];
   var _175 = this.parent;
   var _176 = this.cfg;
   var _177;
   switch(_174.keyCode) {
      case 38 : case 40 : if(this == _175.activeItem &&!_176.getProperty("selected")) {
         _176.setProperty("selected", true);
         }
      else {
         var _178 = (_174.keyCode == 38) ? this.getPreviousEnabledSibling() : this.getNextEnabledSibling();
         if(_178) {
            _175.clearActiveItem();
            _178.cfg.setProperty("selected", true);
            _178.focus();
            }
         }
      _173.preventDefault(_174);
      break;
      case 39 : _175.clearActiveItem();
      _176.setProperty("selected", true);
      this.focus();
      var _179 = _176.getProperty("submenu");
      if(_179) {
         _179.show();
         _179.setInitialSelection();
         }
      else {
         if(YAHOO.widget.MenuBarItem && _175.parent && _175.parent instanceof YAHOO.widget.MenuBarItem) {
            _175.hide();
            _177 = _175.parent;
            if(_177) {
               _177.focus();
               _177.cfg.setProperty("selected", true);
               }
            }
         }
      _173.preventDefault(_174);
      break;
      case 37 : if(_175.parent) {
         _175.hide();
         _177 = _175.parent;
         if(_177) {
            _177.focus();
            _177.cfg.setProperty("selected", true);
            }
         }
      _173.preventDefault(_174);
      break;
      }
   };
YAHOO.widget.MenuItem.prototype._onMouseOver = function(_17a, _17b, _17c) {
   var _17d = this.parent;
   var _17e = this.cfg;
   var _17f = _17d.activeItem;
   if(_17f && _17f != this) {
      _17d.clearActiveItem();
      }
   _17e.setProperty("selected", true);
   this.focus();
   var _180 = _17e.getProperty("submenu");
   if(_180) {
      _180.show();
      }
   };
YAHOO.widget.MenuItem.prototype._onMouseOut = function(_181, _182, _183) {
   var _184 = this.cfg;
   var _185 = _184.getProperty("submenu");
   _184.setProperty("selected", false);
   if(_185) {
      var _186 = _182[0];
      var _187 = YAHOO.util.Event.getRelatedTarget(_186);
      if(!(_187 == _185.element || YAHOO.util.Dom.isAncestor(_185.element, _187))) {
         _185.hide();
         }
      }
   };
YAHOO.widget.MenuItem.prototype.configChecked = function(_188, _189, _18a) {
   var Dom = YAHOO.util.Dom;
   var _18c = _189[0];
   var oEl = this.element;
   var _18e = this.cfg;
   var oImg;
   if(_18c) {
      var me = this;
      function preloadImage(_191) {
         var _192 = me.imageRoot + _191;
         if(!document.images[_192]) {
            var oImg = document.createElement("img");
            oImg.src = _192;
            oImg.name = _192;
            oImg.id = _192;
            oImg.style.display = "none";
            document.body.appendChild(oImg);
            }
         }
      preloadImage(this.CHECKED_IMAGE_PATH);
      preloadImage(this.SELECTED_CHECKED_IMAGE_PATH);
      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 _194 = this.cfg.getProperty("submenu");
      if(_194) {
         oEl.insertBefore(oImg, _194.element);
         }
      else {
         oEl.appendChild(oImg);
         }
      Dom.addClass([oEl, oImg], "checked");
      this._checkImage = oImg;
      if(_18e.getProperty("disabled")) {
         _18e.refireEvent("disabled");
         }
      if(_18e.getProperty("selected")) {
         _18e.refireEvent("selected");
         }
      }
   else {
      oImg = this._checkImage;
      Dom.removeClass([oEl, oImg], "checked");
      if(oImg) {
         oEl.removeChild(oImg);
         }
      this._checkImage = null;
      }
   };
YAHOO.widget.MenuItem.prototype.configSelected = function(_195, _196, _197) {
   YAHOO.widget.MenuItem.superclass.configSelected.call(this, _195, _196, _197);
   var _198 = this.cfg;
   if(!_198.getProperty("disabled") && _198.getProperty("checked")) {
      var _199 = _196[0];
      var sSrc = this.imageRoot + (_199 ? this.SELECTED_CHECKED_IMAGE_PATH : this.CHECKED_IMAGE_PATH);
      this._checkImage.src = document.images[sSrc].src;
      }
   };
YAHOO.widget.MenuItem.prototype.configDisabled = function(_19b, _19c, _19d) {
   YAHOO.widget.MenuItem.superclass.configDisabled.call(this, _19b, _19c, _19d);
   if(this.cfg.getProperty("checked")) {
      var _19e = _19c[0];
      var sAlt = this.CHECKED_IMAGE_ALT_TEXT;
      var sSrc = this.CHECKED_IMAGE_PATH;
      var oImg = this._checkImage;
      if(_19e) {
         sAlt = this.DISABLED_CHECKED_IMAGE_ALT_TEXT;
         sSrc = this.DISABLED_CHECKED_IMAGE_PATH;
         }
      oImg.src = document.images[(this.imageRoot + sSrc)].src;
      oImg.alt = sAlt;
      }
   };
YAHOO.widget.MenuItem.prototype.initDefaultConfig = function() {
   YAHOO.widget.MenuItem.superclass.initDefaultConfig.call(this);
   this.cfg.addProperty("checked", {
      value : false, handler : this.configChecked, validator : this.cfg.checkBoolean, suppressEvent : true}
   );
   };
YAHOO.widget.ContextMenu = function(_1a2, _1a3) {
   YAHOO.widget.ContextMenu.superclass.constructor.call(this, _1a2, _1a3);
   };
YAHOO.extend(YAHOO.widget.ContextMenu, YAHOO.widget.Menu);
YAHOO.widget.ContextMenu.prototype._oTrigger = null;
YAHOO.widget.ContextMenu.prototype.init = function(_1a4, _1a5) {
   if(!this.ITEM_TYPE) {
      this.ITEM_TYPE = YAHOO.widget.ContextMenuItem;
      }
   YAHOO.widget.ContextMenu.superclass.init.call(this, _1a4);
   this.beforeInitEvent.fire(YAHOO.widget.ContextMenu);
   if(_1a5) {
      this.cfg.applyConfig(_1a5, true);
      }
   this.initEvent.fire(YAHOO.widget.ContextMenu);
   };
YAHOO.widget.ContextMenu.prototype._onDocumentMouseDown = function(_1a6, _1a7) {
   var _1a8 = YAHOO.util.Event.getTarget(_1a6);
   var _1a9 = this._oTargetElement;
   if(_1a8 != _1a9 ||!YAHOO.util.Dom.isAncestor(_1a9, _1a8)) {
      this.hide();
      }
   };
YAHOO.widget.ContextMenu.prototype._onTriggerClick = function(_1aa, _1ab) {
   if(_1aa.ctrlKey) {
      YAHOO.util.Event.stopEvent(_1aa);
      }
   };
YAHOO.widget.ContextMenu.prototype._onTriggerContextMenu = function(_1ac, _1ad) {
   var _1ae = YAHOO.util.Event;
   var _1af = this.cfg;
   if(_1ac.type == "mousedown") {
      if(!_1ac.ctrlKey) {
         return;
         }
      _1ae.stopEvent(_1ac);
      }
   this.contextEventTarget = _1ae.getTarget(_1ac);
   var nX = _1ae.getPageX(_1ac);
   var nY = _1ae.getPageY(_1ac);
   _1af.applyConfig( {
      x : nX, y : nY, visible : true}
   );
   _1af.fireQueue();
   _1ae.preventDefault(_1ac);
   };
YAHOO.widget.ContextMenu.prototype.contextEventTarget = null;
YAHOO.widget.ContextMenu.prototype.initDefaultConfig = function() {
   YAHOO.widget.ContextMenu.superclass.initDefaultConfig.call(this);
   this.cfg.addProperty("trigger", {
      handler : this.configTrigger}
   );
   };
YAHOO.widget.ContextMenu.prototype.configTrigger = function(_1b2, _1b3, _1b4) {
   var _1b5 = YAHOO.util.Event;
   var _1b6 = _1b3[0];
   if(_1b6) {
      if(this._oTrigger) {
         _1b5.purgeElement(this._oTrigger);
         }
      this._oTrigger = _1b6;
      var _1b7 = (this.browser == "opera");
      _1b5.addListener(_1b6, (_1b7 ? "mousedown" : "contextmenu"), this._onTriggerContextMenu, this, true);
      if(_1b7) {
         _1b5.addListener(_1b6, "click", this._onTriggerClick, this, true);
         }
      _1b5.addListener(document, "mousedown", this._onDocumentMouseDown, this, true);
      }
   };
YAHOO.widget.ContextMenuItem = function(_1b8, _1b9) {
   YAHOO.widget.ContextMenuItem.superclass.constructor.call(this, _1b8, _1b9);
   };
YAHOO.extend(YAHOO.widget.ContextMenuItem, YAHOO.widget.MenuItem);
YAHOO.widget.ContextMenuItem.prototype.init = function(_1ba, _1bb) {
   if(!this.SUBMENU_TYPE) {
      this.SUBMENU_TYPE = YAHOO.widget.ContextMenu;
      }
   if(!this.SUBMENU_ITEM_TYPE) {
      this.SUBMENU_ITEM_TYPE = YAHOO.widget.ContextMenuItem;
      }
   YAHOO.widget.ContextMenuItem.superclass.init.call(this, _1ba);
   var _1bc = this.cfg;
   if(_1bb) {
      _1bc.applyConfig(_1bb, true);
      }
   _1bc.fireQueue();
   };
YAHOO.widget.MenuBar = function(_1bd, _1be) {
   YAHOO.widget.MenuBar.superclass.constructor.call(this, _1bd, _1be);
   };
YAHOO.extend(YAHOO.widget.MenuBar, YAHOO.widget.MenuModule);
YAHOO.widget.MenuBar.prototype.init = function(_1bf, _1c0) {
   if(!this.ITEM_TYPE) {
      this.ITEM_TYPE = YAHOO.widget.MenuBarItem;
      }
   YAHOO.widget.MenuBar.superclass.init.call(this, _1bf);
   this.beforeInitEvent.fire(YAHOO.widget.MenuBar);
   var _1c1 = this.cfg;
   if(!_1c0 || (_1c0 &&!_1c0.position)) {
      _1c1.queueProperty("position", "static");
      }
   if(!_1c0 || (_1c0 &&!_1c0.submenualignment)) {
      _1c1.queueProperty("submenualignment", ["tl", "bl"]);
      }
   if(_1c0) {
      _1c1.applyConfig(_1c0, true);
      }
   this.initEvent.fire(YAHOO.widget.MenuBar);
   };
YAHOO.widget.MenuBar.prototype.CSS_CLASS_NAME = "yuimenubar";
YAHOO.widget.MenuBarItem = function(_1c2, _1c3) {
   YAHOO.widget.MenuBarItem.superclass.constructor.call(this, _1c2, _1c3);
   };
YAHOO.extend(YAHOO.widget.MenuBarItem, YAHOO.widget.MenuModuleItem);
YAHOO.widget.MenuBarItem.prototype.init = function(_1c4, _1c5) {
   if(!this.SUBMENU_TYPE) {
      this.SUBMENU_TYPE = YAHOO.widget.Menu;
      }
   if(!this.SUBMENU_ITEM_TYPE) {
      this.SUBMENU_ITEM_TYPE = YAHOO.widget.MenuItem;
      }
   YAHOO.widget.MenuBarItem.superclass.init.call(this, _1c4);
   this.keyDownEvent.subscribe(this._onKeyDown, this, true);
   var _1c6 = this.cfg;
   if(_1c5) {
      _1c6.applyConfig(_1c5, true);
      }
   _1c6.fireQueue();
   };
YAHOO.widget.MenuBarItem.prototype.CSS_CLASS_NAME = "yuimenubaritem";
YAHOO.widget.MenuBarItem.prototype.SUBMENU_INDICATOR_IMAGE_PATH = "nt/ic/ut/alt1/menuarodwn8_nrm_1.gif";
YAHOO.widget.MenuBarItem.prototype.SELECTED_SUBMENU_INDICATOR_IMAGE_PATH = "nt/ic/ut/alt1/menuarodwn8_hov_1.gif";
YAHOO.widget.MenuBarItem.prototype.DISABLED_SUBMENU_INDICATOR_IMAGE_PATH = "nt/ic/ut/alt1/menuarodwn8_dim_1.gif";
YAHOO.widget.MenuBarItem.prototype._onKeyDown = function(_1c7, _1c8, _1c9) {
   var _1ca = YAHOO.util.Event;
   var _1cb = _1c8[0];
   var _1cc = this.cfg;
   var _1cd = this.parent;
   switch(_1cb.keyCode) {
      case 37 : case 39 : if(this == _1cd.activeItem &&!_1cc.getProperty("selected")) {
         _1cc.setProperty("selected", true);
         }
      else {
         var _1ce = (_1cb.keyCode == 37) ? this.getPreviousEnabledSibling() : this.getNextEnabledSibling();
         if(_1ce) {
            _1cd.clearActiveItem();
            _1ce.cfg.setProperty("selected", true);
            _1ce.focus();
            }
         }
      _1ca.preventDefault(_1cb);
      break;
      case 40 : _1cd.clearActiveItem();
      _1cc.setProperty("selected", true);
      this.focus();
      var _1cf = _1cc.getProperty("submenu");
      if(_1cf) {
         _1cf.show();
         _1cf.setInitialSelection();
         }
      _1ca.preventDefault(_1cb);
      break;
      }
   };