function CookieHandler () {}

// leave out nDays if session cookie required.
CookieHandler.setCookie = function ( sName, sValue, nDays ) {
	var expires = "";
	if ( nDays ) {
		var d = new Date();
		d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );
		expires = "; expires=" + d.toGMTString();
	}
	document.cookie = sName + "=" + sValue + expires + "; path=/";
};

CookieHandler.getCookie = function (sName) {
	var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" );
	var res = re.exec( document.cookie );
	return res != null ? res[3] : null;
};

CookieHandler.removeCookie = function ( name ) {
	setCookie( name, "", -1 );
};

function MenuHandler(menuname) {

	this.name = menuname;
	this.cname = "menuVis" + this.name;
	var cvalue = CookieHandler.getCookie(this.cname);
	this.visList = (cvalue == null) ? new Array() : cvalue.split(",");
	
	this.allMenus = new Array();
	
	this.findAll();
	this.hideAll();
	this.setInitialMenus();
}

MenuHandler.prototype = {

	menuShowHide:	function (e) {
		var elem = document.getElementById(e);
	    if (elem.style.display == "none") {
	        elem.style.display = "block";
	        // add menu item name from list of visible menus items
	        this.visList[this.visList.length] = e;
	    } else {
	        elem.style.display = "none";
	        // remove menu item name from list of visible menus items
	        for (var i = 0; i < this.visList.length; i++)
	        	if (this.visList[i] == e)
	        		this.visList.splice(i, 1);
	    }
	    // update the cookie
	    CookieHandler.setCookie(this.cname, this.visList.join(","));
	},
	
	findAll:	function () {
		for(var i = 1; i < 20; i++) {
			var elem = document.getElementById("list" + i);
			if (elem == null)
				break;
			else
				this.allMenus[this.allMenus.length] = elem;
		}
	},
	
	setInitialMenus:	function () {
		for (var i = 0; i < this.visList.length; i++) {
			var elem = document.getElementById(this.visList[i]);
			elem.style.display = "block";
		}
	},

	hideAll:	function () {
		for(var i = 0; i < this.allMenus.length; i++)
			this.allMenus[i].style.display = "none";
	}
}

