var Menus = new Array()
function Menu(id)
{
	HideAllMenus()
	var targ = Menus[id]
	if (targ)
	{
		targ.subMenu.show()
		//targ.placeSpacer()
	}
	else
	{
		targ = new menu(id)
		Menus[id] = targ
	}
}

function HideAllMenus(){
	for (var x in Menus)
	{
		var targ = Menus[x]
		if (targ)
		{
			targ.subMenu.hide()
		}
	}
}

function menu(id){
	/* 4558 - To make the various divs easier for EOs
	 * to work with when they create private labels, I've
	 * given the elements slightly more descriptive ids
	 * than 'menu' and 'box'.  The prefix 'menuHeading'
	 * refers to the visible menu heading; the prefix 
	 * 'menu' refers to the invisible div containing the
	 * actual links.
	 */
	//var x = document.getElementById('menu'+id).cbe
	var x = document.getElementById('menuHeading'+id).cbe
	x.isMenu = true
	x.active = 0
	var height = x.height()
	x.subMenu = new submenu(id,x.pageX()+XOFFSET, x.pageY()+x.height()+YOFFSET)
	x.subMenu.width(x.width()+PADDING)
	//x.placeSpacer = PlaceSpacer
	//x.placeSpacer()
	return x
}
function PlaceSpacer()
{
	var tag = document.getElementById('areaTag').cbe
	tag.moveTo(this.pageX(), this.pageY()+this.height()-YOFFSET)
	tag.sizeTo(this.width(),15)
	tag.zIndex(101)
	tag.show()
	//tag.innerHtml("pagx ="+this.pageX()+", pageY ="+ this.pageY())
}

function submenu(id, x, y){
	/* See 4558 above. */
	//var obj = document.getElementById('box'+id).cbe
	var obj = document.getElementById('menu'+id).cbe
	obj.type = 'submenu'
	obj.isMenu = true
	obj.moveTo(x,y)
	obj.show()
	return obj
}
function menuHideListener(e){
	var x = e.cbeTarget
	if (x.isMenu){ return }
	if (x.id=='areaTag'){ return }
	HideAllMenus()
}
