function page (forElement) {
	var valueT = 0, valueL = 0;

	var element = forElement;
	do {
		valueT += element.offsetTop  || 0;
		valueL += element.offsetLeft || 0;

	// Safari fix
		if (element.offsetParent == document.body)
			if (element.style.position == 'absolute') break;

	} while (element = element.offsetParent);

	element = forElement;
	do {
		if (!window.opera || element.tagName=='BODY') {
			valueT -= element.scrollTop  || 0;
			valueL -= element.scrollLeft || 0;
		}
	} while (element = element.parentNode);

	return [valueL, valueT];
}

function $(id) {
	return document.getElementById(id);
}

function show(element) {
	element.style.display = "inline";
}

function hide (element) {
	element.style.display = "none";
}

var selectedmenu = null;
var ddtimer = null;



// Starts a menusession
function ddstart (menuid, btn) {
	if (selectedmenu != menuid && selectedmenu != null) ddclose();
	selectedmenu = menuid;
	ddcancel();
	show($(selectedmenu));
	var pos = page(btn);
	var x = pos[0];
	var y = pos[1] + 17;
	$(selectedmenu).style.top = y + "px";
	$(selectedmenu).style.left = x + "px";
}

// Shows the submenu
function ddview () {
}

// Ends the menusession
function ddend () {
	ddtimer = window.setTimeout(ddclose, 900);
}

// Cancels the closing timeout
function ddcancel () {
	if (ddtimer != null) window.clearTimeout(ddtimer);
	ddtimer = null;
}

// Closes the submenu
function ddclose () {
	ddcancel();
	if (selectedmenu != null) {
		hide($(selectedmenu));
		selectedmenu = null;
	}
}

// Mouse over the submenu
function ddsubstart (obj) {
	obj.className = "ddsubitemover";
	ddcancel();
}
// Mouse out from the submenu
function ddsubend (obj) {
	obj.className = "ddsubitem";
	ddend();
}

function ddsubclick (link) {
	ddclose();
	document.location.href = link;
}