
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"; }


