
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 showMenu (e) 
{
	if (!hasmenu && window.menufirst == this && typeof(document.all) != "undefined")
		document.getElementById("famiglie").style.visibility = "hidden";
	window.menuopen = true;
	var s = window.menu;
	s.style.visibility = "visible";
	var left = findPosX(this);
	s.style.top = (findPosY(this)+this.offsetHeight) +"px";
	s.style.left = left +"px";
	var m = this.nextSibling;
	while (m.nodeType != 1) 
	{
		m = m.nextSibling;
	}
	s.style.width = null;
	s.className = null;
	s.innerHTML = m.innerHTML;
	var width = s.offsetWidth + 5;
	s.style.width = width +"px";
	s.className = "sub";
	var boundary = getBoundary();
	while ((left +s.offsetWidth) > boundary) 
	{
		left--;
		s.style.left = left +"px";
	}
}

function showMenu2 (e) 
{
	if (!hasmenu && window.menufirst == this && typeof(document.all) != "undefined")
		document.getElementById("famiglie").style.visibility = "hidden";
	window.menuopen = true;
	var s = window.menu;
	s.style.visibility = "visible";
	var left = findPosX(this);
	s.style.top = (findPosY(this)+this.offsetHeight) +"px";
	s.style.left = left +"px";
	var m = this.nextSibling;
	while (m.nodeType != 1) 
	{
		m = m.nextSibling;
	}
	s.style.width = null;
	s.className = null;
	s.innerHTML = m.innerHTML;
	var width = s.offsetWidth + 85;
	s.style.width = width +"px";
	s.className = "sub";
	var boundary = getBoundary();
	while ((left +s.offsetWidth) > boundary) 
	{
		left--;
		s.style.left = left +"px";
	}
}

function hideMenu (e) 
{
	if (!window.menuopen) 
	{
		window.menu.style.visibility = 'hidden';
		if (!hasmenu)
			document.getElementById("famiglie").style.visibility = "visible";
	}
}

function preHideMenu (e) 
{
	window.menuopen = false;
	setTimeout('hideMenu()', 1000);
}

function keepMenu (e) 
{
	window.menuopen = true;
}

// init
function init_menu () 
{
	var links = document.getElementsByTagName("a");
	var last = null;
	for (var i in links) 
	{
		if (links[i].className == "nav") 
		{
			if (last == null)
			{
				window.menufirst = links[i]; 
				last = links[i];
				//alert("first: " + links[i].href);
				last.onmouseover = last.onfocus = showMenu2;
			}
			else
			{
				last = links[i]; 
				last.onmouseover = last.onfocus = showMenu;
				last.onmouseout = /*last.onblur =*/ preHideMenu;
			}
		}
	}
	window.menulast = last;
	var menu = window.menu = document.getElementById("submenu");
	menu.onmouseover = menu.onfocus = keepMenu;
	menu.onmouseout = menu.onblur = preHideMenu;
	window.menuopen = false;
}

function getBoundary () 
{
	return findPosX(window.menulast) +window.menulast.offsetWidth;
}

hasmenu = true;

if (typeof (window.onloads) == "undefined") 
{
	window.onloads = [];
}


window.onloads.push(init_menu);