

var currentMenu = null;
var currentActuator = null;
var menuTimeoutID = null;
	
function activateMenu(actuatorId, menuId, arrowImageId, toggle) {

	var menu = document.getElementById(menuId);
	var actuator = document.getElementById(actuatorId);
	var arrowImage = document.getElementById(arrowImageId);
	
	if(currentMenu != menu) {
		if(currentMenu != null) {
			hideMenu();
		}
		
		currentMenu = menu;
		currentActuator = actuator;
		
		showMenu(actuator, menu, arrowImage);
	}
	else if(toggle) {
		hideMenu();
	}
	
	keepMenu();
}

function deactivateMenu() {
	if(!menuTimeoutID) { menuTimeoutID = setTimeout('hideMenu()', 500); }
}

function keepMenu() {
	if(menuTimeoutID) { clearTimeout(menuTimeoutID); menuTimeoutID = null; }
}

function showMenu(actuator, menu, arrowImage) {
	try {
		if(menu.filters && menu.filters[0]) menu.filters[0].apply();
	}
	catch(e) { /* do nothing */ }

	menu.style.visibility = 'visible';
	
	try {
		if(menu.filters && menu.filters[0]) menu.filters[0].play();
	}
	catch(e) { /* do nothing */ }
	
	actuator.oldColor = actuator.style.color;
	actuator.oldBackColor = actuator.style.backgroundColor;
	actuator.oldImage = arrowImage.src;
	actuator.Image = arrowImage;
	/*
	if(MenuDropdownEventHandler) {
		MenuDropdownEventHandler(true);
	}
	*/
	
	actuator.className = "actuator-over";
	
	arrowImage.src = arrowImage.src.replace("_off", "_over");
}

function hideMenu() {
	if(currentMenu) {
		currentMenu.style.visibility = 'hidden';
		currentMenu = null;
		/*
		if(MenuDropdownEventHandler) {
			MenuDropdownEventHandler(false);
		}
		*/
	}
	if(currentActuator) {
		currentActuator.className = "actuator";
		currentActuator.Image.src = currentActuator.Image.src.replace("_over", "_off");
		currentActuator = null;
	}
	
	clearTimeout(menuTimeoutID);
	menuTimeoutID = null;
}