
/*
 * Dynamic Menu
 * Written by Andy Peatling - http://www.cssdev.com/
 * April 1, 2006.
 */

addLoadEvent(collapseMenu);
addLoadEvent(prepareMenu);

function collapseMenu(node) {
	if (!document.getElementById) return false;
	if (!document.getElementById("blogroll")) return false;
	if (!node) node = document.getElementById("blogroll");

	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("blogroll")) return false;

	var links = document.getElementById("blogroll").getElementsByTagName("a");
	for (var i=0; i<links.length; i++) {		
		links[i].onclick = function() {
			toggleMenu(this.parentNode.getElementsByTagName("UL")[0], this.href);
			return false;
		}
	}
}


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 == "menu") {
 hideTopLevels();
}

 if (node.style.display == "") {
  node.style.display = "none";
 } else {
  node.style.display = "";
 }
}



function hideTopLevels() {
 if (!document.getElementById) return false;
 if (!(node = document.getElementById("menu"))) 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";
     }
    }
   }
  }
 }
}

