// menu array
var menu = new Array();

// timeout in ms
var timeOut = 500;

// timeout identifier
var timeOutId = 0;

// visible menu id
var visibleMenuId = 0;

var isMouseOver = false;

function getMenuItems() {
	
	var menu = new Array();
	divs = document.getElementsByTagName('div');
	
	var j=0;
	for (var i=0; i<divs.length; i++) {
		if (divs[i].id.indexOf('menu_')!=-1) menu[j++] = divs[i];
	}
	
	return menu;
	
}

function setHideTimeout(id) {
	timeOutId = window.setTimeout('hideObj("' + id + '")', timeOut);
}

function initMenu() {
	
	menu = getMenuItems();
	var mainTable = document.getElementById('mtable');
	var mmenu = document.getElementById('mmenu');
	
	for (var i=0; i<menu.length; i++) {
		
		link = document.getElementById(menu[i].id + '_link');
		
		menu[i].onmouseover = function () {
			window.clearTimeout(timeOutId);
			isMouseOver = true;
		}
		
		menu[i].onmouseout = function () {
			window.clearTimeout(timeOutId);
			isMouseOver = false;
			setHideTimeout(this.id);
		}
		
		menu[i].style.display = 'block';
		
		if (mmenu.offsetLeft + menu[i].offsetLeft + menu[i].offsetWidth > mainTable.clientWidth) {
			menu[i].style.marginLeft = "-" + (mmenu.offsetLeft + menu[i].offsetLeft + menu[i].offsetWidth - mainTable.clientWidth) + "px";
		}
/*		
		if (mmenu.offsetLeft + menu[i].offsetLeft + menu[i].offsetWidth > mainTable.clientWidth) {
			menu[i].style.marginLeft = "-" + (menu[i].offsetWidth - link.offsetWidth) + "px";
		}
*/
	}
	
}

function showMenu(id) {
	window.clearTimeout(timeOutId);
	hideObj(visibleMenuId);
	showObj(id);
}

function hideMenu(id) {
	window.clearTimeout(timeOutId);
	setHideTimeout(id);
}

function hideObj(id) {
	obj = document.getElementById(id);
	if (obj && !isMouseOver) {
		obj.style.visibility = 'hidden';
	}
}

function showObj(id) {
	obj = document.getElementById(id);
	if (obj) {
		obj.style.visibility = 'visible';
		visibleMenuId = id;
	}
}
