function Bd_MenuControl(id, delay) { this.Id = id; this.Menus = new Array(); this.Selected = null; this.Status = 0; // 0 = closed, 1 = closing, 2 = open this.Delay = delay; } Bd_MenuControl.prototype.AddMenu = function(menu) { var len = this.Menus.length; for (var i = 0; i < len; i++) { if (this.Menus[i] == menu) return; } this.Menus.length = len + 1; this.Menus[len] = menu; } Bd_MenuControl.prototype.HideAllMenus = function() { for (var i = 0; i < this.Menus.length; i++) { this.Menus[i].Hide(); } this.Selected = null; this.Status = 0; } Bd_MenuControl.prototype.ShowMenu = function(menu) { if (this.Selected != menu) { this.HideAllMenus(); this.Selected = menu; } this.Selected.Show(); this.Status = 2; } Bd_MenuControl.prototype.InMenu = function(menuId) { var menu = Bd_GetElement(menuId); if (menu) { var menuObject = new Bd_Menu(menuId); this.AddMenu(menuObject); this.ShowMenu(menuObject); } else { this.HideAllMenus(); } } Bd_MenuControl.prototype.HideMenu = function(allowDelay) { if (allowDelay && this.Status == 2) { this.Status = 1; setTimeout(this.Id + ".HideMenu(false)", this.Delay); } else if (this.Status == 1) { this.HideAllMenus(); } } Bd_MenuControl.prototype.OutMenu = function(menuId) { this.HideMenu(true); } function Bd_Menu(id) { this.Id = id; this.DivElement = Bd_GetElement(id); } Bd_Menu.prototype.Hide = function() { this.DivElement.style.visibility = "hidden"; } Bd_Menu.prototype.Show = function() { this.DivElement.style.visibility = "visible"; }