var registeredMenus = new Array();
var menuOpacity = new Array();
var links = new Array();


function registerMenu(name) {
	for (i = 0; i < registeredMenus.length; i++) {
		if (registeredMenus[i] == name) {
			// this menu is already registered
			return;
		}
	}
	registeredMenus[registeredMenus.length] = name;
	menuOpacity[menuOpacity.length] = 20;
}

function getOpacity(name) {
	for (i = 0; i < registeredMenus.length; i++) {
		if (registeredMenus[i] == name) {
			return menuOpacity[i];
		}
	}	
	return 0;
}

function setOpacity(name, opacity) {
	for (i = 0; i < registeredMenus.length; i++) {
		if (registeredMenus[i] == name) {
			menuOpacity[i] = opacity;
		}
	}	
}

function closeRegisteredMenus(name) {
	for (i = 0; i < registeredMenus.length; i++) {
		if (registeredMenus[i] != name) {
			// close this menu
			var ele = document.getElementById(registeredMenus[i]);

			if (ele != null) {
				if (ele.animation != null) {
					clearTimeout(ele.animation);
					ele.animation = null;
				}
				ele.animation = setTimeout("closeMenu('" + registeredMenus[i] + "')", 50);
			}

		}
	}
}

function openMenu(name) {
	var ele = document.getElementById(name);

	if (ele != null) {
		ele.style.display = "block";
		var opacity = getOpacity(name);
		if (opacity < 80) {
			opacity += 20;
			ele.style.opacity = (opacity / 100.0);
			setOpacity(name, opacity);
			ele.style.filter = "alpha(opacity=" + opacity + ")";
			ele.animation = setTimeout("openMenu('" + name + "');", 50);
		}
	}
}

function closeMenu(name) {
	var ele = document.getElementById(name);
	if (ele != null) {
		ele.style.display = "block";
		var opacity = getOpacity(name);
		if (opacity > 20) {
			opacity -= 20;
			ele.style.opacity = (opacity / 100.0);
			ele.style.filter = "alpha(opacity=" + opacity + ")";
			setOpacity(name, opacity);
			ele.animation = setTimeout("closeMenu('" + name + "');", 50);
		} else {
			ele.style.display = "none";
		}
	}
}

function cancelClose(name) {
	var ele = document.getElementById(name);

	if (ele != null) {
		if (ele.animation != null) {
			clearTimeout(ele.animation);
			ele.animation = null;
		}
	}
}

function triggerClose(name) {
	var ele = document.getElementById(name);
	if (ele != null) {
		if (ele.animation != null) {
			clearTimeout(ele.animation);
			ele.animation = null;
		}
		ele.animation = setTimeout("closeMenu('" + name + "');", 2000);
	}
}

function triggerOpen(name) {
	var ele = document.getElementById(name);
	registerMenu(name);
	closeRegisteredMenus(name);

	if (ele != null) {
		if (ele.animation != null) {
			clearTimeout(ele.animation);
			ele.animation = null;
		}
		ele.animation = setTimeout("openMenu('" + name + "');", 50);
	}
}

