/*
 * Dynamic Menu
 * Written by Andy Peatling
 * April 1, 2006.
 */

function get_cookie(Name) {
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    var offset = document.cookie.indexOf(search)
    // if cookie exists
    if (offset != -1) { 
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset);
      // set index of end of cookie value
      if (end == -1) end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}



addLoadEvent(collapseMenu);
addLoadEvent(prepareMenu);

function collapseMenu(node) {
	if (!document.getElementById) return false;
	if (!document.getElementById("archiveMenu")) return false;
	if (!node) node = document.getElementById("archiveMenu");

	if (node.childNodes.length > 0) {
		for (var i=0; i<node.childNodes.length; i++) {
			var child = node.childNodes[i];
			if (child.nodeName == "UL") {
					child.style.display = "none";
			}
			collapseMenu(child);
		}		
	}
}

function prepareMenu() {
	if (!document.getElementById || !document.getElementsByTagName) return false;
	if (!document.getElementById("archiveMenu")) return false;

	var links = document.getElementById("archiveMenu").getElementsByTagName("a");
	for (var i=0; i<links.length; i++) {
		links[i].onclick = function() {
			toggleMenu(this.parentNode.getElementsByTagName("UL")[0], this.href);
			return false;
		}
	}
	var node = document.getElementById("archiveMenu").childNodes;
	for (var i=1; i<node.length; i++) {
		if (!document.cookie) return false;
		if ((get_cookie(node[i].getElementsByTagName("a")[0].innerHTML)) == "on") {
			node[i].className = "on";
			node[i].getElementsByTagName("UL")[0].style.display = "block";
		} else {
			node[i].className = "";
			node[i].getElementsByTagName("UL")[0].style.display = "none";
		}
	}
}

function toggleMenu(node, link) {
	if (!document.getElementById) return false;
	if (!link) return false;
	if (!node) location.href = link.href;

	// Collapse all nodes, and only show clicked node (when clicking top level of menu)
	if (node.parentNode.parentNode.id == "leftMenu") {
		hideTopLevels();
	}
	if (node.style.display == "none") {
		node.style.display = "";
		var nodeValue = (node.parentNode.getElementsByTagName("a")[0].innerHTML);
		document.cookie=nodeValue+"=on";
		node.parentNode.className = "on";
	} else {
		node.style.display = "none";
		var nodeValue = (node.parentNode.getElementsByTagName("a")[0].innerHTML);
		document.cookie=nodeValue+"=off";
		node.parentNode.className = "";
	}
}

function hideTopLevels() {
	if (!document.getElementById) return false;
	if (!(node = document.getElementById("archiveMenu"))) return false;	
	
	if (node.childNodes.length > 0) {
		for (var i=0; i<node.childNodes.length; i++) {
			var child = node.childNodes[i];
			for(var j=0; j<child.childNodes.length; j++) {
				var grandchild = child.childNodes[j];
				if (grandchild.nodeName == "UL") {
					if (grandchild.style.display == '') {
						grandchild.style.display = "none";
					}
				}
			}
		}		
	}
}
