var hoveredLi = null;
var hoverOffTimer = 0;
var removeScreenTimer = 0;

function hoverOn(current, bod, ext) {
	if (hoveredLi != null) {
		if (hoverOffTimer > 0) {
			clearTimeout(hoverOffTimer);
			clearTimeout(removeScreenTimer);
			hoverOff(hoveredLi, bod, ext);
		}
	}
	var li = $$("#topNav li." + current)[0];
	var button = li.down();
	if (hoveredLi == null) {
		$("screen").setStyle({
			display: "block",
			opacity: 0
		});
		Effect.Fade("screen", {
			from: 0.0,
			to: 0.9,
			duration: 0.25
		});
	}
	if (bod == "home") 
		button.setStyle("background-image: url(images/button_topNav_" + current + "_on.gif);");
	else 
		button.setStyle("background-image: url(../images/button_topNav_" + current + "_on.gif);");
	$$("#topNav li." + current + " div.topSubNav")[0].setStyle("display: block;");
	hoveredLi = current;
}

function hoverOff(current, bod, ext) {
	var li = $$("#topNav li." + current)[0];
	var button = li.down();
	if (bod == "home") 
		button.setStyle("background-image: url(images/button_topNav_" + current + "_off" + ext + ");");
	else {
		if (li.readAttribute("class").split(" ")[1] == bod) {
			button.setStyle({
				backgroundImage: "url(../images/button_topNav_" + current + "_curr.gif)"
			});
		} else {
			button.setStyle("background-image: url(../images/button_topNav_" + current + "_off" + ext + ");");
		}
	}
	$$("#topNav li." + current + " div.topSubNav")[0].setStyle("display: none;");
}

function removeScreen() {
	Effect.Fade("screen", {
		from: 0.9,
		to: 0.0,
		duration: 0.25
	});
	
	setTimeout("$('screen').setStyle({display: 'none', opacity: 0}); hoveredLi = null;", 250);
	/*$("screen").setStyle({
		display: "none",
		opacity: 0
	});
	hoveredLi = null;*/
}

function topSubNav() {
	var pageSize = getPageSize();
	$("screen").setStyle({
		height: pageSize[1] + "px",
		opacity: 0
	});
	$$("#topNav li.section").each(function(li) {
		var current = li.readAttribute("class").split(" ")[1];
		var bod = $$("body")[0].readAttribute("class").split(" ")[0];
		var ext = (browser == "ie6") ? "_ie6.gif" : ".png";
		li.observe("mouseover", function() {
			hoverOn(current, bod, ext);
		});
		li.observe("mouseout", function() {
			hoverOffTimer = setTimeout("hoverOff('" + current + "', '" + bod + "', '" + ext + "')", 125);
			removeScreenTimer = setTimeout("removeScreen()", 125);
		});
	});
}
