/*
 * Define global variables
 */
var myMenu = new Array();
var interval = 0.5;    // Seconds to wait until opened submenu is closed


/**
 * Displays a selected submenu and hides all open submenus
 *
 * @param   integer     ID of the submenu
 * @return  void
 */
function openMenu(id) {
	var pos = 1;
	while (getElem('main' + pos)) {
		closeMenu(pos, true);
		pos++;
	}
	//swapImg('menu' + id, true);
	var divElem = getElem('sub' + id);
	var linkElem = getElem('main' + id);
	if (divElem && linkElem) {
		stayMenu(id);
		divElem.style.display = 'block';
		divElem.style.top = absTop(linkElem) + 'px';
		divElem.style.left = absLeft(linkElem) + linkElem.offsetWidth + 10 + 'px';
		linkElem.style.backgroundColor = '#dcdeed';
	}
}

/**
 * Close a selected submenu within an interval
 *
 * @param   integer     ID of the submenu
 * @param   boolean     TRUE: Close the submenu immediately, FALSE: Close the submenu after defined interval
 * @return  void
 */
function closeMenu(id, close) {
	divElem = getElem('sub' + id);
	linkElem = getElem('main' + id);
	if (!divElem || !linkElem) return false;
	stayMenu(id);
	if (close) {
		divElem.style.display = 'none';
		linkElem.style.backgroundColor = '';
	} else {
		myMenu[id] = window.setInterval('closeMenu(' + id + ', true)', interval * 1000);
	}
}

/**
 * Disables the closing interval of a selected submenu
 *
 * @param   integer     ID of the submenu
 * @return  void
 */
function stayMenu(id) {
	window.clearInterval(myMenu[id]);
}
