function $ (element) {
	return document.getElementById(element);
}

function xy (element) {
	var curleft = curtop = 0;
	if (element.offsetParent) {
		curleft = element.offsetLeft;
		curtop = element.offsetTop;
		while (element = element.offsetParent) {
			curleft += element.offsetLeft;
			curtop += element.offsetTop;
		}
	}
	return [curleft, curtop];
}

function submenu_show (sender, e) {
	// first 'a' is the menu heading	
	var a = sender.getElementsByTagName("a").item(0);
	// first ul is the menu itself
	var menu = sender.getElementsByTagName("ul").item(0);
	//alert(a.className);
	// show and move menu
	if(a.className != "marked")
	{
		a.className = "fake_hover";
	}
	menu.style.display = "block";
	menu.style.position = "absolute";
	menu.style.zIndex = 1000;
	
	// get menu position
	var coord = xy(sender);	
	var y = coord[1] + sender.offsetHeight - 1;
	var x = coord[0] - 0;
	
	// make it go up if its going off the page
	if (document.documentElement.scrollHeight < y + menu.offsetHeight) {
		y = y - sender.offsetHeight - menu.offsetHeight + 4;
	}
	
	// position the menu
	menu.style.top = y+"px";
	menu.style.left = x+"px";
}

function submenu_hide (sender, e) {
	// second child is the sub menu	
	var links = sender.getElementsByTagName("a");
	var a = links[0];
	var ul = sender.getElementsByTagName("ul");
	var menu = ul[0];
	
	// show and move menu
	if(a.className != "marked")
	{
		a.className = "none";
	}
	menu.style.display = "none";
}