// JavaScript Document

function findPosX(obj) {
	var curleft = 0;
	if(obj.offsetParent)
		while(1) 
		{
			curleft += obj.offsetLeft;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if(obj.offsetParent)
		while(1)
		{
			curtop += obj.offsetTop;
			if(!obj.offsetParent)
			break;
			obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}

function loadMenu(menuName, menu, width, xOffSet, yOffSet) {
	width = (width == undefined) ? "200px" : width ;
	xOffSet = (xOffSet == undefined) ? "0px" : xOffSet ;
	yOffSet = (yOffSet == undefined) ? "0px" : yOffSet ;
	
	var output = "<div id='" + menuName + "' style='visibility:hidden; position:absolute; top:0px; left:0px; z-index:5; margin-top:" + yOffSet + "; margin-left:" + xOffSet + ";' onmouseout='hideMenu(\"" + menuName +"\")' onmouseover='keepMenu(\"" + menuName +"\")' >";	
	var idNumber = 0;
	var count = 0;
	for (var x = 0; x < menu.length; x++ ) {
		if (typeof(menu[x]) == "object") {
			loadMenu((menuName + "_" + count++ ), menu[x], width );
		} else {
			output += "<div id='";
			output += menuName + "_option" + idNumber++;
			output += "' class='" + menuName + "_option' ";
			output += "style='width:" + width + "'";
			if (typeof(menu[(x+2)]) == "object") {
				output += "onmouseover='showMenu(\"";
				output += menuName + "_" + count + "\", this)' onmouseout='hideMenu(\"";
				output += menuName + "_" + count + "\")'>";
				output += "<span class='" + menuName + "_pointer' /> </span><a href='" + menu[(x+1)] + "' class='" + menuName + "_link'>" + menu[x] + "</a>";
			} else {				
				output += "><a href='" + menu[(x+1)] + "' class='" + menuName + "_link'>" + menu[x] + "</a>";
			}
			output += "</div>";
			x++;
		}
	}
	output += "</div>";
	document.write(output);
}

function showMenu(menuName, reference) {
	var xPos = findPosX(reference);
	var yPos = findPosY(reference);
	var menu = document.getElementById(menuName);
	var xOffSet = reference.style.width.split("px")[0];
	menu.style.visibility = "visible";
	xOffSet = (xOffSet == "") ? 0 : parseInt(xOffSet);
	menu.style.left = xPos + xOffSet + 5 + "px" ;
	menu.style.top = yPos + 1 + "px";
}

function keepMenu(menuName) {
	var trace = menuName.split("_");
	var marker = trace[0];
	var menu = document.getElementById(marker);
	menu.style.visibility = "visible";
	for(var x = 1 ; x < trace.length; x++) {
		marker = marker + "_" + trace[x];
		menu = document.getElementById(marker);
		menu.style.visibility = "visible";		
	}
}

function hideMenu(menuName) {
	var trace = menuName.split("_");
	var marker = trace[0];
	var menu = document.getElementById(marker);
	menu.style.visibility = "hidden";
	for(var x = 1 ; x < trace.length; x++) {
		marker = marker + "_" + trace[x];
		menu = document.getElementById(marker);
		menu.style.visibility = "hidden";		
	}
}