var g_menu_open = [];
var g_timeoutID = 0;

function menu_open(id){
	var menu_id;
	
	menu_close_all(id);

	if(!g_menu_open[id]){
		document.getElementById("jsm"+id).style.display="block";
		g_menu_open[id] = true;
	}
}

function menu_close(id){
	if(!g_timeoutID)
		g_timeoutID = setTimeout(function(){menu_close_exe(id)}, 125);
}

function menu_close_exe(id){
	if(g_menu_open[id]){
		document.getElementById("jsm"+id).style.display="none";
		g_menu_open[id] = false;
		g_timeoutID = 0;
	}
}

function menu_close_all(exempt_id){
	var menu_id;
	
	if(g_timeoutID){
		clearTimeout(g_timeoutID);
		g_timeoutID = 0;
	}
	
	for(menu_id in g_menu_open)
		if(g_menu_open[menu_id] && menu_id != exempt_id)
			menu_close_exe(menu_id);
}