var Setup = new Array();

var Tracking               = new Array();
    Tracking["Mouse Over"] = null;
    Tracking["Mouse Out"]  = null;
    Tracking["Interval"]   = null;

var Levels = new Array();

var Images = new Array();
    Images["First Highlight"]           = new Image();
    Images["First Highlight"].src       = "_images/menu_art_top_lines_blue_thick_curve_upper_highlight.gif";
    Images["Icon Bottom Highlight"]     = new Image();
    Images["Icon Bottom Highlight"].src = "_images/menu_icon_sub_down_highlight.gif";
    Images["Icon Right Highlight"]      = new Image();
    Images["Icon Right Highlight"].src  = "_images/menu_icon_sub_right_highlight.gif";

function MenuUpper_Init(setup) {
	Setup = setup;
}

function MenuUpper_OnMouseOver(pid, n, level, first) {
	var id                     = pid + "-" + n;
	    Tracking["Mouse Over"] = id;

	if (Levels[level]) {
		MenuUpper_HideSubsFromLevel(level);
	}

	Levels[level] = id;

	document.getElementById(id).oldColor           = document.getElementById(id).style.color;
	document.getElementById(id).oldBackgroundColor = document.getElementById(id).style.backgroundColor;
	document.getElementById(id).oldBorderColor     = document.getElementById(id).style.borderColor;

	if (first && document.getElementById("menu-upper-curve").className.indexOf("highlight") == -1) {
		document.getElementById(id).first = true;

		document.getElementById("menu-upper-curve").oldClassName = document.getElementById("menu-upper-curve").className;
		document.getElementById("menu-upper-curve").className    = document.getElementById("menu-upper-curve").oldClassName + '-highlight';
	}

	document.getElementById(id).style.color           = Setup["Colors"]["Text"]["Mouse Over"];
	document.getElementById(id).style.backgroundColor = Setup["Colors"]["Background"]["Mouse Over"];
	document.getElementById(id).style.borderColor     = Setup["Colors"]["Border"]["Mouse Over"];


	if (document.getElementById(id + "-" + Setup["ID"]["Sub"]) && !document.getElementById(id).sub) {
		document.getElementById(id + "-image").oldSrc = document.getElementById(id + "-image").src;
		document.getElementById(id + "-image").src    = (document.getElementById(id + "-image").oldSrc).replace(".gif", "_highlight.gif");

		document.getElementById(id).sub                                         = true;
		document.getElementById(id + "-" + Setup["ID"]["Sub"]).style.left       = document.getElementById(id).offsetLeft + "px";
		document.getElementById(id + "-" + Setup["ID"]["Sub"]).style.visibility = "visible";
	}


}

function MenuUpper_OnMouseOut(pid, n, level, timeout) {
	var id = pid + "-" + n;

	Tracking["Mouse Out"] = id;
	clearInterval(Tracking["Interval"]);

	if (!document.getElementById(id).sub) {
		MenuUpper_OnMouseOutColors(id);
	}

	if (timeout) {
		if (Tracking["Mouse Over"] == Tracking["Mouse Out"]) {
			MenuUpper_HideSubsFromLevel(1);
		}

	} else {
		Tracking["Interval"] = setInterval("MenuUpper_OnMouseOut('" + pid + "', " + n + ", " + level + ", true)", 500);
	}
}


function MenuUpper_OnMouseOutColors(id) {
	document.getElementById(id).style.color           = document.getElementById(id).oldColor;
	document.getElementById(id).style.backgroundColor = document.getElementById(id).oldBackgroundColor;
	document.getElementById(id).style.borderColor     = document.getElementById(id).oldBorderColor;

	if (document.getElementById(id).first) {
		document.getElementById("menu-upper-curve").className = document.getElementById("menu-upper-curve").oldClassName;
	}
}

function MenuUpper_HideSubsFromLevel(level) {
	while (Levels[level]) {
		MenuUpper_OnMouseOutColors(Levels[level]);

		if (document.getElementById(Levels[level] + "-" + Setup["ID"]["Sub"])) {
			document.getElementById(Levels[level] + "-image").src                              = document.getElementById(Levels[level] + "-image").oldSrc;
			document.getElementById(Levels[level] + "-" + Setup["ID"]["Sub"]).style.visibility = "hidden";

			document.getElementById(Levels[level]).sub = false;
		}

		Levels[level] = null;

		level += 1;
	}
}