function getElemById(idName) {
	return document.getElementById(idName);
}

function startList() {
	var navRoot = getElemById("main_navigation");
	var i = 0;
	var node = null;
	for (i = 0; i < navRoot.childNodes.length; i++) {
		node = navRoot.childNodes[i];
		startListRec(node);
	}
}

function show(elem) {
	elem.style.display = "block";
}

function hide(elem) {
	elem.style.display = "none";
}

function startListRec(elem) {
	if (elem.nodeName == "LI" && elem.className != "separator") {
		elem.className = "";
		
		elem.onmouseover=function() {
			if (typeof selectedPath != "undefined") {
				if(this.id != selectedPath[0]){
					hidePath();
				}
			}
			
			var i = 0;
			var j = 0;
			var node1 = null;
			var node2 = null;
			for (i = 0; i < this.childNodes.length; i++) {
				node1 = this.childNodes[i];
				if (node1.nodeName == "DIV") {
					for (j = 0; j < node1.childNodes.length; j++) {
						node2 = node1.childNodes[j];
						if (node2.nodeName == "UL") {
							show(node2);
						}
					}
				}
			}
			this.className = "over";
		}
		
		elem.onmouseout=function() {
			var i = 0;
			var j = 0;
			var node1 = null;
			var node2 = null;
			for (i = 0; i < this.childNodes.length; i++) {
				node1 = this.childNodes[i];
				if (node1.nodeName == "DIV") {
					for (j = 0; j < node1.childNodes.length; j++) {
						node2 = node1.childNodes[j];
						if (node2.nodeName == "UL") {
							hide(node2);
						}
					}
				}
			}
			this.className = "";
		}
	}
	
	var i = 0;
	var node = null;	
	for (i = 0; i < elem.childNodes.length; i++) {
		node = elem.childNodes[i];
		startListRec(node);
	}
}

$(document).ready (function() {
	startList();
	showSelectedPath();
});

// Hide the selected path
function hidePath() {
	var node1;
	if (typeof selectedPath != "undefined") {
		for (var i=0; i<selectedPath.length; i++) {
			node1 = document.getElementById(selectedPath[i]);
			var node2;
			for (var j = 0; j < node1.childNodes.length; j++) {
				node2 = node1.childNodes[j];
				if (node2.nodeName == "A") {
					node2.className = "";
				}
				if (node2.nodeName == "DIV") {
					var node3;
					for (var k = 0; k < node2.childNodes.length; k++) {
						node3 = node2.childNodes[k];
						if (node3.nodeName == "UL") {
							hide(node3);
						}
					}
				}
			}
		}
	}
}

// Show the selected path
function showSelectedPath() {
	var node1;
	if (typeof selectedPath != "undefined") {
		for (var i=0; i<selectedPath.length; i++) {
			node1 = document.getElementById(selectedPath[i]);
			var node2;
			for (var j = 0; j < node1.childNodes.length; j++) {
				node2 = node1.childNodes[j];
				if (node2.nodeName == "A") {
					node2.className = "selected";
				}
				if (node2.nodeName == "DIV") {
					var node3;
					for (var k = 0; k < node2.childNodes.length; k++) {
						node3 = node2.childNodes[k];
						if (node3.nodeName == "UL") {
							show(node3);
						}
					}
				}
			}
		}
	}
}

