
// Center all sub-nav menus

function sfCenterSubNavs() {
	var a = document.getElementsByTagName("UL");
	for(var i=0;i<a.length;i++) {
		if(a[i].className == "sub_nav") {
			var curWidth = a[i].offsetWidth;
			var leftover = ((968 - curWidth) / 2);
			a[i].style.paddingLeft = leftover + "px";
			a[i].style.paddingRight = leftover + "px";
			a[i].style.width = (curWidth + 2) + "px";  // IE demands this param
		}
	}
	
	sfStayOnSubNavs();
	sfHover();
}

// Keep sub-menu visible for current section

function sfStayOnSubNavs() {
	var curPath = window.location.pathname;
	var curPage = curPath.substring(curPath.lastIndexOf('/') + 1);
	
	// Show sub-nav if sub-nav page is open	
	var b = document.getElementsByTagName("UL");
	for(var i=0;i<b.length;i++) {
		var curSubNav = b[i];
		if(b[i].className == "sub_nav") {
			var c = b[i].getElementsByTagName("LI");
			for(var j=0;j<c.length;j++) {
				var d = c[j].getElementsByTagName("A");
				for(var k=0;k<d.length;k++) {
					var linkPath = d[k].href;
					var linkPage = linkPath.substring(linkPath.lastIndexOf('/') + 1);
					if (linkPage == curPage) {
						curSubNav.parentNode.className = "sfactive";
						curSubNav.style.visibility = "visible"; // This is inane, but it's
						curSubNav.style.visibility = "";		// the only way I could make it work in IE
					}
				}
			}
		}
	}
	
	// Show sub-nav if parent page is open - this also highlights the current nav item
	var e = document.getElementById("hover_fix").getElementsByTagName("LI");
	for(var l=0;l<e.length;l++) {
		var f = e[l].getElementsByTagName("A");
		for(var m=0;m<f.length;m++) {
			var linkPath = f[m].href;
			var linkPage = linkPath.substring(linkPath.lastIndexOf('/') + 1);
			if (linkPage == curPage && f[m].parentNode.className != "last") {
				f[m].parentNode.className = "sfactive";
				f[m].parentNode.style.visibility = "visible";	// This is inane, but it's
				f[m].parentNode.style.visibility = "";			// the only way I could make it work in IE
			}
		}
	}
}


// Solve the pseudo-hoverIE problem

function sfHover() {
	var sfEls = document.getElementById("hover_fix").getElementsByTagName("LI");	
	for (var i=0;i<sfEls.length;i++) {
		if (sfEls[i].className != "last") {
			sfEls[i].onmouseover=function() {
				this.className = "sfhover";
				sfHideCurrentActives();
			}
			sfEls[i].onmouseout = function() {
				this.className = "";
				sfStayOnSubNavs();
			}
		}
	}
}

// De-hover items that aren't active

function sfHideCurrentActives() {
	var g = document.getElementsByTagName("LI");
	for (var i=0;i<g.length;i++) {
		if (g[i].className == "sfactive") {
			g[i].className = "";
		}
	}
}

window.onload = sfCenterSubNavs;

