//
// FILE: menu.js
// AUTHOR: Brandon Regard
// DATE: 9.7.8
// DESCRIPTION: Utility functions for handling main menu drop downs
//

function showSubmenu(submenuId, parentId, event) {
	var submenuElement = document.getElementById(submenuId);
	var parentElement = document.getElementById(parentId);
	var x = getX(parentElement) + "px";
	var y = getY(parentElement) + parentElement.offsetHeight + "px";
	
	hideAllSubmenus();
	submenuElement.style.left = x;
	submenuElement.style.top = y;
	submenuElement.style.visibility = "visible";
	
	if(window.event) {
		window.event.cancelBubble=true;
	} else {
		event.stopPropagation();
	}
}

function hideSubmenu(submenuId) {
	var submenuElement = document.getElementById(submenuId);
	
	submenuElement.style.visibility = "hidden";
}

function hideAllSubmenus() {
	var es = getSubmenus();
	
	for(var i = 0; i < es.length; i++) {
		hideSubmenu(es[i].id);
	}
}

function getSubmenus() {
	var es = document.getElementsByTagName("div")
	var result = new Array()
	
	for(var i = 0; i < es.length; i++) {
	
		if(es[i].id.indexOf("submenu") != -1) {
			result.push(es[i]);
		}
	}
	return result;
}

function getY( oElement ) {
	var iReturnValue = 0;
	
	while( oElement != null ) {
		iReturnValue += oElement.offsetTop;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}

function getX( oElement ) {
	var iReturnValue = 0;
	
	while( oElement != null ) {
		iReturnValue += oElement.offsetLeft;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}