/*
 * Dynamic Menu
 * Written by Andy Peatling - http://www.cssdev.com/
 * April 1, 2006.
*/

addLoadEvent(collapseMenu);
addLoadEvent(prepareMenu);
addLoadEvent(toggleMenu);
//addLoadEvent(hideTopLevels);

// ----------------------------------< MENU JAVASCRIPT >----------------------------------- \\

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

	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("menu")) return false;

	var links = document.getElementById("menu").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 == "") {
//		Effect.BlindUp(node, {duration: 0.2});
	} else {
		Effect.BlindDown(node, {duration: 0.2});
	}
}

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 == '') {
						Effect.BlindUp(grandchild, {duration: 0.2});
					}
				}
			}
		}		
	}
}

function highlightPage() {
	if(!document.getElementsByTagName) return false;
	if(!document.getElementById) return false;
	if(!document.getElementById("navigation")) return false;
	if(!document.getElementById("menu")) return false;
	var nav = document.getElementById("menu");
	var links = nav.getElementsByTagName("a");
	for (var i=0; i<links.length; i++) {
		var linkurl = links[i].getAttribute("href");
		var currenturl = document.location.href;
		if (currenturl.indexOf(linkurl) != -1) {
			links[i].className = "here";
		}
	}
}
addLoadEvent(highlightPage);

	
	   
// ---------------------------------</ MENU JAVASCRIPT >----------------------------------- \\

addLoadEvent(collapseArchiveMenu);
addLoadEvent(prepareArchiveMenu);
addLoadEvent(toggleArchiveMenu);
addLoadEvent(hideArchiveTopLevels);

// ---------------------------------< ARCHIVES MENU JAVASCRIPT >---------------------------- \\

function collapseArchiveMenu(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 prepareArchiveMenu() {
	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;
		}
	}
}

function toggleArchiveMenu(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 == "archiveMenu") {
		hideTopLevels();
	}
	
	if (node.style.display == "") {
//		Effect.BlindUp(node, {duration: 0.2});
	} else {
		Effect.BlindDown(node, {duration: 0.2});
	}
}

function hideArchiveTopLevels() {
	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 == '') {
						Effect.BlindUp(grandchild, {duration: 0.2});
					}
				}
			}
		}		
	}
}


// ---------------------------------</ ARCHIVES MENU JAVASCRIPT >---------------------------- \\


//insertAfter JS

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}

//addClass JS

function addClass(element,value) {
  if (!element.className) {
    element.className = value;
  } else {
    newClassName = element.className;
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
  }
}

// External Links <Opens Links in new window>
function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
addLoadEvent(externalLinks);

