var closeTimer, activeMenu, activeEle, activeId, activeSubEle, activeSubMenu;
var correctLeft = -20; // body padding/margin
var menuAmount = 2;
var subMenuWidth = 50; // copy from CSS

var boxModelBorderCorrection = document.all ? 0 : -2;

function hover (ele, state) {

	if (activeSubMenu && activeSubMenu != ele.parentNode)
		closeSubMenu ();

	if (state && closeTimer)
		clearTimeout (closeTimer);
	
	if (!state)
		timedClose();
}

function openMenu (id, ele) {
	if (activeEle) 

	closeSubMenu ();

	
	activeEle = ele;
	activeId = id;

	if (closeTimer)
		clearTimeout (closeTimer);

	if (activeMenu)
		activeMenu.style.display = "none";

	if (id) {
		activeMenu = document.getElementById ("ddmenu" + id);
		activeMenu.style.left = (getAbsoluteLeft (activeEle) + correctLeft) + 'px';
		activeMenu.style.display = "block";
	}
}

function openSubMenu (id, ele) {
	if (closeTimer)
		clearTimeout (closeTimer);

	if (activeSubMenu)
		closeSubMenu();

	activeSubMenu = document.getElementById ('ddsubmenu' +id);
	activeSubEle = ele;

	
	
	activeSubMenu.style.top = getAbsoluteTop(ele) + 'px';

	var placeLeft = getAbsoluteLeft(activeEle) + subMenuWidth + (-1*boxModelBorderCorrection) + correctLeft + 1;
	if (placeLeft + subMenuWidth > document.body.scrollWidth)
		placeLeft = getAbsoluteLeft(activeEle) - subMenuWidth + (boxModelBorderCorrection) + correctLeft - 1;

	activeSubMenu.style.left = placeLeft + 'px';
	activeSubMenu.style.display = 'block';
}

function getMenuWidth () {
	return Math.round((document.body.scrollWidth - (2*correctLeft)+68 ) / 6) + boxModelBorderCorrection;
}

function timedClose () {
	if (closeTimer)
		clearTimeout (closeTimer);
	closeTimer = setTimeout ("_timedClose()", 500);
}

function _timedClose () {
	if (activeMenu) {
		activeMenu.style.display = "none";
		activeMenu = null;
	}
	if (activeEle) {
		
		activeEle = null;
	}
	closeSubMenu ();
}

function closeSubMenu () {
	if (activeSubMenu) {
		activeSubMenu.style.display = "none";
		activeSubMenu = null;
	}
	if (activeSubEle) {
		activeSubEle.style.backgroundColor = subOutColor;
		activeSubEle = null;
	}
}

function ddnav (url, target, width, height) {
	if (target == "huidig")
		location.href = url;
	else if (target == "nieuw")
		window.open (url);
	else if (target == "popup")
		openPopup (url, "popup", width, height, 1);
	
	return false;
}

function openPopup (url, name, w, h, resizable) {
	var resizable = resizable || 0;
	var opt = "toolbar=0,location=0,scrollbars="+resizable+",directories=0,status=0,menubar=0,resizable="+resizable+","
				+"width="+w+",height="+h+",left="+parseInt((screen.width-w)/2)+",top="+parseInt((screen.height-h)/3);
	window.open(url, name, opt);
}

function getAbsoluteTop (ele) {
	var v = parseInt (ele.offsetTop);
	if (ele.parentNode && ele.parentNode.offsetTop) {
		v += getAbsoluteTop (ele.parentNode);
	}
	return v;
}

function getAbsoluteLeft (ele) {
	var v = parseInt (ele.offsetLeft);
	if (ele.parentNode && ele.parentNode.offsetLeft) {
		v += getAbsoluteTop (ele.parentNode);
	}
	return v;
}