menuMaxOpacity = 80;
menuOpen = 0;

menus = new Array();
menus[1] = new Array('menu_blog', 'menu_hobbies', 'menu_portfolio');
menus[2] = new Array('submenu_duiken');

function menu(id, a)
{
	var o = document.getElementById('menu_' + id).style;
	
	if(o.display == 'block')
		return;

	closeMenu(1);

	// mozilla && opera	
	if(a.offsetParent.nodeName.toLowerCase() != 'body')
	{
		offsetL = (a.offsetLeft + document.getElementById('main').offsetLeft) + 'px';
	}
	// IE
	else
	{
		offsetL = a.offsetLeft + 'px';
	}
	
	o.left = offsetL;
	o.top = (document.getElementById('menu').offsetTop + document.getElementById('menu').offsetHeight) + 'px';
	doCool(o);
	o.display = 'block';

	mo(1);
}

function submenu(subid, parid, a)
{
	var o  = document.getElementById(subid);
	var o2 = document.getElementById(parid);

	if(o.style.display == 'block')
		return;

	var level = getLevel(o.id);
	closeMenu(level);
	
	var leftSide = (parseInt(o2.style.left) + a.offsetWidth - 10);
	
	if(leftSide + o2.offsetWidth > document.body.offsetWidth - 20)
	{
		leftSide -=  2 * a.offsetWidth - 40;
	}
	
	o.style.left = leftSide + 'px';
	o.style.top = (parseInt(o2.style.top) +  + a.offsetTop) + 'px';
	doCool(o.style);
	o.style.display = 'block';
	
	mo(1);
}

function closeMenu(level)
{
	if(level != 1)
		mo(1);
	else
		mo(0);

	if(typeof(level) == 'undefined' || typeof(level) == 'object')
	{
		level = 1;
	}
	else if(typeof(level) == 'string')
	{
		level = getLevel(level) + 1;
	}
	
	var l = menus.length;
	for(var i = level; i < l; i++)
	{
		var a = menus[i];
		var al = a.length;
		for(var j = 0; j < al; j++)
		{
			document.getElementById(a[j]).style.display = 'none';
		}
	}
}

function mo(n)
{
	if(!n)	n = 0;
	menuOpen = n;
	
	if(n == 0)
	{
		clearInterval(document.theInterval);
		document.theInterval = setInterval(checkMenu, 1000);
	}
	else
	{
		clearInterval(document.theInterval);
	}
}

function doCool(o)
{
	o.filter = 'alpha(Opacity=0)';

	if(document.X)
	{
		document.X.element.filter = 'alpha(Opacity=' + menuMaxOpacity + ')';
		document.X.element.MozOpacity = menuMaxOpacity / 100;
		
		clearInterval(document.X.interval);
		//clearInterval(document.X.closeval);
	}
	
	document.X = new Object();
	document.X.element = o;
	document.X.opacity = 0;
	document.X.interval = setInterval(setOpacity,50);
}

// NIU
function checkMenu(e)
{
	if(!menuOpen)
	{
		clearInterval(document.theInterval);
		closeMenu(1);
	}
}

function setOpacity()
{
	document.X.opacity += 10;
	document.X.element.filter = 'alpha(Opacity=' + document.X.opacity + ')';
	document.X.element.MozOpacity = document.X.opacity / 100;
	if(document.X.opacity >= menuMaxOpacity)
	{
		clearInterval(document.X.interval);
	}
}

function getLevel(s)
{
	var l = menus.length;
	var i;
	for(i = 1; i < l; i++)
	{
		var a = menus[i];
		var al = a.length;
		for(var j = 0; j < al; j++)
		{
			if(a[j] == s)
			{
				return i;
			}
		}
	}
	alert('menu niet goed geconfigureerd!');
}
