	function getCookie( name ) {
		var start = document.cookie.indexOf( name + "=" );
		var len = start + name.length + 1;
		if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
			return null;
		}
		if ( start == -1 ) return null;
		var end = document.cookie.indexOf( ";", len );
		if ( end == -1 ) end = document.cookie.length;
		return unescape( document.cookie.substring( len, end ) );
	}


	function setCookie( name, value, expires, path, domain, secure ) {
		var today = new Date();
		today.setTime( today.getTime() );
		if ( expires ) {
			expires = expires * 1000 * 60 * 60 * 24;
		}
		var expires_date = new Date( today.getTime() + (expires) );
		document.cookie = name+"="+escape( value ) +
			( ( expires ) ? ";expires="+expires_date.toGMTString() : "" ) + //expires.toGMTString()
			( ( path ) ? ";path=" + path : "" ) +
			( ( domain ) ? ";domain=" + domain : "" ) +
			( ( secure ) ? ";secure" : "" );
	}


	function deleteCookie( name, path, domain ) {
		if ( getCookie( name ) ) document.cookie = name + "=" +
				( ( path ) ? ";path=" + path : "") +
				( ( domain ) ? ";domain=" + domain : "" ) +
				";expires=Thu, 01-Jan-1970 00:00:01 GMT";
	}



	function switchMenu() {
		var el = document.getElementById(this.id.replace('_toggle','') + '_list');
		if (el.style.display != 'none') {
			el.style.display = 'none';
			deleteCookie(el.id);
		} else {
			el.style.display = '';
			setCookie(el.id,'open',1);
		}
		return false;
	}



	function doReplace() {
		if (!document.getElementsByTagName) return;
		var navigation_items = document.getElementsByTagName('a');
		var toggle;
		for (var j = 0; j < navigation_items.length; j++) {
			if ((' ' + navigation_items[j].className + ' ').indexOf(' toggle ') != -1) {
				ListToSwitch = document.getElementById(navigation_items[j].id.replace('_toggle','') + '_list');
				navigation_items[j].onclick = switchMenu;
				thisToggle = getCookie(navigation_items[j].id + '_list');
				toggle = (thisToggle == 'open' ? 'open' : 'closed');
				if (toggle == 'closed') {
					ListToSwitch.style.display = 'none';
				}
			}
		}
	}



	function addEvent(elm, evType, fn, useCapture) {
		// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko
		// By Scott Andrew
		if (elm.addEventListener) {
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
		return r;
		} else {
			elm['on' + evType] = fn;
		}
	}

	addEvent(window, 'load', doReplace, false);

