navMenuId = 'nav';
curMenus = '';
function nav_init() {
	var menu = document.getElementById(navMenuId);
	var menuItems = menu.getElementsByTagName('li');
	set_nav_handlers(menuItems);

	curMenus = document.getElementsByTagName('body')[0].className;
	if (curMenus) {
    	curMenus = curMenus.split(' ');


    	// Look for menu items that match body class
    	// Note: ALL body classes MUST match a menu item id
    	for (var i=0; i<curMenus.length; i++) {
    		//alert ("current menu: " + curMenus[i]);
    		curMenus[i] = document.getElementById('nav_' + curMenus[i]);
    		var c = curMenus[i];
    		c.current = 1;
    		//c.onmouseover = null;
    		//c.onmouseout = null;
    		nav_light(c);
    	}
	}
}

function set_nav_handlers(items) {
	for (var i=0; i<items.length; i++) {
		sub = items[i].getElementsByTagName('ul');
		if (sub) items[i].submenu = sub.item(0);
		
		// Keep track of ancestors so we can figure out what to hide in nav_over
		if (items[i].parentNode.id != navMenuId) {
			// we want the enclosing li, not ul
			var parent_li = items[i].parentNode.parentNode;
			items[i].ancestors = parent_li.ancestors;
			items[i].ancestors = items[i].ancestors.concat(parent_li.id);
		} else {
			items[i].ancestors = Array();
		}
		items[i].onmouseover = nav_over;
		items[i].onmouseout  = nav_out;
	}
}

function linkDisabler () {
    this.blur();
    return false;
}

function nav_over () {
	if (this.current) return;

	if (curMenus) {
		for (var i=0; i<curMenus.length; i++) {
			var hideMenus = true;
			for (var j=0; j<this.ancestors.length; j++) {
				if (this.ancestors[j] == curMenus[i].id) {
					hideMenus = false;
				}
			}
			if (hideMenus) {
				//alert ("parent node " + this.parentNode.parentNode.id + " != " + curMenus[i].id);
				nav_dim(curMenus[i]);
			}
		}
	}
	nav_light(this);
}

function nav_light (nav) {
    nav.className = 'current';
}

function nav_out () {
	if (this.current) return;
	nav_dim(this);
	if (curMenus) {
		for (var i=0; i<curMenus.length; i++) {
			if (this.parentNode.id != curMenus[i].id) {
				nav_light(curMenus[i]);
			}
		}
	}
}

function nav_dim (nav) {
	nav.className = '';
}
