var curzi = 50;
var prevmenu = '';

// Cursor positioning vars
var cursorX = 0; var cursorY = 0;

function menuOn(item, menu) {
	setColor(item, '#0B243F', '#ffffff'); 
	showmenu(item, menu);	
}

function menuOff(item, menu) {
	setColor(item, 'transparent', '#FFBC1A'); 
	document.getElementById(menu).isover = ''; 
	window.setTimeout('hidemenu(\''+menu+'\')', 500);
}

function setColor(item, color, fcolor) {
	item.style.backgroundColor = color;
	if ( fcolor != '' ) {
		item.style.color = fcolor;
	}
}

function showmenu(item, menu) {
	if ( prevmenu != '' ) {
		document.getElementById(prevmenu).isover = '';
		hidemenu(prevmenu);
	}
	document.getElementById(menu).isover = 'on';
	document.getElementById(menu).style.top = (getY(item) + 24) + "px";
	document.getElementById(menu).style.left = (getX(item) + 30) + "px";
	document.getElementById(menu).style.visibility = 'visible';
	document.getElementById(menu).style.zIndex = curzi;
	prevmenu = menu;
	curzi++;
}

function hidemenu(menu) {
	if ( document.getElementById(menu).isover == '' ) {
		document.getElementById(menu).style.visibility = 'hidden';
	}
}

function closetooltip(ttid) {
	document.getElementById(ttid).style.visibility = 'hidden';
}

function tooltip(ttid, anchor) {
  	document.getElementById(ttid).style.left = (cursorX + 5) + 'px';
  	document.getElementById(ttid).style.top = (cursorY + 10) + 'px';
	document.getElementById(ttid).style.visibility = 'visible';
}

function getX(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 getY(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;
}


// Gets the current X position of the cursor
function getCursorX(obj) {
	obj = obj || window.event;
	if (obj.pageX) {
		return obj.pageX;
	} 
	else {
		var de = document.documentElement;
		var b = document.body;
		return (obj.clientX + (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0));
	}
}

// Gets the current Y position of the cursor
function getCursorY(obj) {
	obj = obj || window.event;
	if (obj.pageY) {
		return obj.pageY;
	} 
	else {
		var de = document.documentElement;
		var b = document.body;
		return obj.clientY + (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
	}
}


// Update the cursor position
function UpdateCursorPosition(e){ 
	e = e || window.event;
	
	try {
		if ( e.pageX ) {
			cursorX = e.pageX;
			cursorY = e.pageY;
		} else if ( e.clientX ) {
				cursorX = e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
				cursorY = e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
		}
	} catch (err) { }
}

// Add an event handler based on the appropriate browser implementation
function addEventListener(obj, etype, func, capture) {
    if (obj.addEventListener) {
    	obj.addEventListener(etype, func, capture);
    } else if (obj.attachEvent) {
    	obj.attachEvent("on" + etype, func);
    }
}

addEventListener(document, 'mousemove', UpdateCursorPosition, true);