var ua = navigator.userAgent.toLowerCase(); // Get client info
var is_opera	= (ua.indexOf('opera') != -1);
var is_msie		= (!is_opera && ua.indexOf('msie') != -1);

// dropdown hiding timeout, mseconds
var hidingTimeout = 300;
// dropdown offset, [x, y]
var submenuOffset = [0, 0];
//var submenuOffset = [0, 26];

var prevMenu	= null;
var prevSubMenu	= null;

function setupPage()
{
	var i = 1;
	while(true)
	{
		var menuitem = getObj('menuitem'+i);
		if(menuitem) setupMenuitem(i);
		else break;
		i++;
	}
	var holder = getObj('menu_holder');
	if(holder) holder.style.visibility = 'visible';
}

function setupMenuitem(id)
{
	var obj		= getObj('menuitem'+id);
	var submenu	= getObj('submenu'+id);

	obj.alt = obj.src;
	obj.onmouseout = function() {
		fadeout(id);
	}
	obj.onmouseover = function() {
		if(prevMenu != id) hideSubMenu(prevMenu);
		stopFadeout(id);
		showSubMenu(id);
	}

	if(submenu) {
		submenu.onmouseout = function() {
			fadeout(id);
		}
		submenu.onmouseover = function() {
			stopFadeout(id);
		}
	}
}

function showSubMenu(id)
{
	var menuitem	= getObj('menuitem'+id);
	var submenu		= getObj('submenu'+id);
	if(!menuitem || !submenu) return false;

	moveObj(submenu, menuitem, submenuOffset);

	if(prevMenu && prevMenu != id) {
		hideSubMenu(prevMenu);
	}
	prevMenu = id;

	submenu.style.display = 'block';
	
}

function hideSubMenu(id)
{
	var submenu = getObj('submenu'+id);
	if(!submenu) return false;

	submenu.style.display = 'none';
	if(timeouts[submenu.id]) clearTimeout(timeouts[submenu.id]);
	prevMenu = null;
}


var timeouts = [];
function fadeout(id)
{
	var menuitem	= getObj('menuitem'+id);
	var submenu		= getObj('submenu'+id);
	if(!menuitem || !submenu) return false;

	if (menuitem.className !== 'on') menuitem.className = 'link';
	timeouts[submenu.id] = setTimeout(function() {
		submenu.style.display = 'none';
		prevMenu = null;
	}, hidingTimeout);
}

function stopFadeout(id)
{
	var menuitem	= getObj('menuitem'+id);
	var submenu		= getObj('submenu'+id);
	if(!menuitem || !submenu) return false;
	
	if (menuitem.className !== 'on') menuitem.className = 'sub_on';
	if(timeouts[submenu.id]) clearTimeout(timeouts[submenu.id]);
}

function moveObj(move_id, from_id, delta) // delta = [x, y]
{
	var move = getObj(move_id);
	var from = getObj(from_id);
	if(!move || !from) return false;

	var x = findPosX(from) + delta[0];
	var y = findPosY(from) + 23;
	//move.style.left = x + 'px';
	//move.style.top = y + 'px';
}

function getObj(obj)
{
	if(!document.getElementById) return false;
	return (typeof(obj) == 'string') ? document.getElementById(obj) : obj;
}

function findPosX(obj)
{
	//var curleft = obj.offsetWidth;
	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;
	var printstring = '';
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	window.status = printstring;
	return curtop;
}
