var timeoutLength = 1000;

function buildsubmenus() {
	var ultags=document.getElementById("treemenu").getElementsByTagName("ul");
	for (var t=0; t<ultags.length; t++) {
		// first level submenus
		if (ultags[t].parentNode.parentNode.id=="treemenu") {
			// dynamically position first level submenus to be width of main menu item
			ultags[t].style.left=ultags[t].parentNode.offsetWidth+"px";
		}
		// sub level submenu (ul)
		else {
			// position menu to the right of menu item that activated it
			ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px";
		}
		var parentLiNode = ultags[t].parentNode;
		parentLiNode.ulNode = ultags[t];
		parentLiNode.timeoutVal = null;
		parentLiNode.onmouseover=function() {
			var siblings = this.parentNode.childNodes;
			for(var i = 0; i < siblings.length; i++) {
				if((siblings[i] != this) && 
				   (siblings[i].tagName == "LI") && 
				   (siblings[i].getElementsByTagName("ul").length > 0)) {
						siblings[i].getElementsByTagName("ul")[0].style.display = "none";
				}
			}
			this.ulNode.style.display = "block";
			if(this.timeoutVal) {
				clearTimeout(this.timeoutVal);
			}
		}
		parentLiNode.onmouseout=function() {
			var ulNode = this.ulNode;
			this.timeoutVal = setTimeout(function() { ulNode.style.display = "none"; }, timeoutLength);
		}
	}
	// loop through all sub menus again, and use "display:none" to hide menus to prevent possible page scrollbars
	for (var t=ultags.length-1; t>-1; t--) { 
		ultags[t].style.visibility="visible";
		ultags[t].style.display="none";
	} 
}

if (window.addEventListener) { window.addEventListener("load", buildsubmenus, false) }
else if (window.attachEvent) { window.attachEvent("onload", buildsubmenus) }
