NBN.MenuBase=new Class({identifier:"Menu",Implements:[Chain,Events,Options,NBN.ActionManager],options:{trigger:null,onMenuShow:$empty,onMenuHide:$empty},initialize:function(B,A){this.menuElement=$(B);this.setOptions(A);this.initMenuEvents()},initMenuEvents:function(){if(!this.options.trigger){return }this.triggerEle=$(this.options.trigger);if(this.triggerEle){this.triggerEle.addEvents({click:this.triggerClick.bindWithEvent(this)})}this.registerAction("document_click",this.document_click.bindWithEvent(this))},triggerClick:function(A){A.stop();this.toggleMenu(A)},toggleMenu:function(A){if(this.menuElement.hasClass("noshow")){this.showMenu(A)}else{this.hideMenu(A)}},showMenu:function(A){this.menuElement.removeClass("noshow");this.fireEvent("onMenuShow")},document_click:function(A){this.hideMenu(A)},hideMenu:function(A){this.menuElement.addClass("noshow");this.fireEvent("onMenuHide")}});