/* Script Version 7.3 */

// Current Menu
var currentMenu = null;
var currentMenuStatus = false;

// Get and retrieve an object
function get_object(obj) {
	if (document.getElementById) {
		return document.getElementById(obj);
	} else if (document.all) {
		return document.all[obj];
	} else if (document.layers) {
		return document.layers[obj];
	} else {
		return null;
	}
}

// Get the position of the current object
function get_offset(obj) {
	var left_offset = obj.offsetLeft;
	var top_offset = obj.offsetTop;

	while ((obj = obj.offsetParent) != null)
	{
		left_offset += obj.offsetLeft;
		top_offset += obj.offsetTop;
	}
	top_offset += 2;
	return { 'left' : left_offset, 'top' : top_offset };
}


// Show/Hide a popup menu
function showHideMenu(obj,e) {
	obj = get_object(obj);

	pos = get_offset(obj);
	leftpx = pos['left'];
	toppx = pos['top'] + obj.offsetHeight;

	element = get_object(e);

	// Close the last active menu
	if (currentMenu != null && typeof currentMenu == "object" && currentMenu != element) {
		currentMenu.style.display = "none";
	}


	if (element.style.display == "none") {
		element.style.visibility = "hidden";
		element.style.display = "";
		currentMenu = element;
		currentMenuStatus = true;

		element.style.position = 'absolute';
		element.style.zIndex = 50;

		// Compensate for menus that are far to the right
		if ((leftpx + element.offsetWidth >= document.body.clientWidth) && (leftpx + obj.offsetWidth - element.offsetWidth) > 0) {
			element.style.left = (leftpx + obj.offsetWidth - element.offsetWidth) + 'px';
			element.style.top  = toppx + 'px';
		} else {
			element.style.left = leftpx + 'px';
			element.style.top  = toppx + 'px';
		}
		element.style.visibility = "visible";

	} else {
		element.style.display = "none";
		currentMenu = null;
		currentMenuStatus = false;
	}

}

// Clears the last active menu
function clearMenus(e) {

	if (!e) e = window.event
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3)
		targ = targ.parentNode;

	if (targ.className.indexOf("noclose") != -1 || (targ.parentNode != null && targ.parentNode.className != null && (targ.parentNode.className.indexOf("noclose") != -1 || (targ.parentNode.parentNode != null && targ.parentNode.parentNode.className != null && targ.parentNode.parentNode.className.indexOf("noclose") != -1)))) {
		return;
	}

	if (currentMenuStatus == true) {
		currentMenuStatus = false;
		return true;
	} // end if
	if (currentMenu != null && typeof currentMenu == "object") {
		currentMenu.style.display = "none";
	} // end if
} // end clearMenus


// Register a popup menu
function registerPopup(e) {

	element = get_object(e);

	if (element == null) return;

	element.style.display = "none";

	if (element.getElementsByTagName)
		var x = element.getElementsByTagName('TD');

	for (var i=0; i < x.length; i++) {
		if (x[i].className.indexOf("noclose") == -1) {
			x[i].onclick = click;
			x[i].id = e;
		}
		if (x[i].className == "popup_menu_header") continue;
		x[i].onmouseover = over;
		x[i].onmouseout = out;
	}
}

function over() {
	this.className = this.className.replace(/popup_menu_content/, "popup_menu_highlight");

}
function out() {
	this.className = this.className.replace(/popup_menu_highlight/, "popup_menu_content");
}
function click() {
	obj = get_object(this.id);
	obj.style.display="none";
}

