var submenu;
var subitems_to_hide = new Array();
var menu_timer;


function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function ShowTopSubmenu(submenu_id, top_menu_item) {
	Hide();
	var x = findPosX(top_menu_item);
	var y = findPosY(top_menu_item);
	submenu = document.getElementById(submenu_id);
	submenu.style.display = "block";
	submenu.style.visibility = "visible";
	submenu.style.top = y + 26;
	submenu.style.left = x;

	if(!document.all) {
		submenu.style.top += "px";
		submenu.style.left += "px";
	}
}

function ShowSubMenu(panel_id, parent_id) {
	ResetTimer();
	var panel = document.getElementById(panel_id);
	var parent = document.getElementById(parent_id);
	HideChildrenOfPanel(parent);

	subitems_to_hide.push(parent);

	panel.style.display = "block";
	panel.style.visibility = "visible";
}

function PrepareToHideSubMenu(panel_id) {
	SetTimer();
	var panel = document.getElementById(panel_id);
	for(var i = 0; i < subitems_to_hide.length; i++) {
		if(subitems_to_hide[i] == panel) {
			return;
		}
	}
	subitems_to_hide.push(panel);
}

function HideChildren(panel_id) {
	ResetTimer();
	var parent = document.getElementById(panel_id);
	HideChildrenOfPanel(parent);
}

function HideChildrenOfPanel(parent) {
	for(var i = 0; i < subitems_to_hide.length; i++) {
		if(subitems_to_hide[i] == parent) {
			for(var j = i + 1; j < subitems_to_hide.length; j++) {
				subitems_to_hide[j].style.display = "none";			
				subitems_to_hide[j].style.visibility = "hidden";
			}
			subitems_to_hide.length = i;
			break;
		}
	}
}

function Hide() {
	ResetTimer();
	if(submenu != null) {
		submenu.style.display = "none";
		submenu.style.visibility = "hidden";
	}

	for(var i = 0; i < subitems_to_hide.length; i++) {
		subitems_to_hide[i].style.display = "none";
		subitems_to_hide[i].style.visibility = "hidden";
	}
	subitems_to_hide.length = 0;
}		

function ResetTimer() {
	if(menu_timer != null) {
		clearTimeout(menu_timer);
	}
}

function SetTimer() {
	ResetTimer();
	menu_timer = setTimeout('Hide();', 500);
}
	
