var cookieName = "menuState";
var plusPic = "layout/plus.gif";
var minusPic = "layout/minus.gif";
var menuState;

/*
 * Initializes the Menu with the settings stored in a cookie.
 */
function initMenu() {	
	var cookies = document.cookie.split(";");
	for (i = 0; i < cookies.length; i++) {
		var values = cookies[i].split("=");
		if (ltrim(values[0]) == cookieName) {
			menuState = values[1].split("|");
		}
	}	
	if (menuState) {
		for (i = 0; i < menuState.length; i++) {
			if (menuState[i] != "") {
				var element = document.getElementById(menuState[i] + "Menu");
				var pic = document.getElementById(menuState[i] + "Pic");
				element.style.display = "inline";
				pic.src = minusPic;
			}
		}
	}
}

/*
 * Toggles the display of the menu with the specified name. The meny area
 * itself is called <name>Menu and the plus/minus picture is calles <name>Pic.
*/
function toggleMenu(name) {
	var elementName = name + "Menu";
	var picName = name + "Pic";
	var element = document.getElementById(elementName);
	var pic = document.getElementById(picName);
	if (element.style.display != "none") {
		element.style.display = "none";
		pic.src = plusPic;
		removeMenuState(name);
	}
	else {
		element.style.display = "inline";
		pic.src = minusPic;			
		recordMenuState(name);
	}
}

/*
 * Adds an exanded menu state to the cookie.
*/
function recordMenuState(name) {
	if (!menuState) {
		menuState = Array();
	}
	else {
		for (i = 0; i < menuState.length; i++) {
			if (menuState[i] == name) {
				return;
			}
		}
	}
	menuState[menuState.length] = name;
	document.cookie=cookieName+"="+menuState.join("|");
}

/*
 * Removes an expanded menu state from the cookie.
 */
function removeMenuState(name) {
	if (menuState) {
		var tmp = Array();
		for (i = 0; i < menuState.length; i++) {
			if (menuState[i] != name) {
				tmp[tmp.length] = menuState[i]; 
			}
		}
		menuState = tmp;
	}
	if (menuState.length > 0) {
		document.cookie=cookieName+"="+menuState.join("|");
	}
	else {
		document.cookie = cookieName +"=";
	}
}

/*
 * Removes leading spaces
 */
function ltrim(str) {
	while (str.substring(0,1) == ' ') {
		str = str.substring(1, str.length);
	}
	return str;
}
