// Global Dropdown Menu
var openMenu = null;
var canMenuBeClosed = true;
var menuTop =  null;
var menuBottom = null;
var menuLeft = null;
var menuRight = null;
var wWidth = null;

function showMenu(id, objPos){
	if(document.getElementById){

			document.onmousemove = null;
			setElementProperty(id, 'display', 'none');
			if (openMenu != null)
				hideMenu(openMenu)
			openMenu = id;
			canMenuBeClosed = true
	
			var x = 0;
			var y = 0;
			
			x = getElementLeft(objPos);
			y = getElementBottom(objPos);
			
			wWidth = document.body.offsetWidth;
			
			document.onmousemove = getMousePosition;
			
			setElementProperty(id, 'display', 'block');
			setElementProperty(id, 'left', x + "px");
			setElementProperty(id, 'top', y + "px");
		
	}
}
function hideMenu(id){
	setElementProperty(id, 'display', 'none');
	document.onmousemove = null;
	window.status = "";
	openMenu = null;
	menuTop = null;
	menuBottom = null;
	menuLeft = null;
	menuRight = null;
	wWidth = null;
}
function getMousePosition(event){
	var x, y;
	if(window.event){
		x = window.event.clientX;
		y = window.event.clientY;
		if (document.documentElement && document.documentElement.scrollTop){
			y+=document.documentElement.scrollTop;
		} else {
			y+=document.body.scrollTop;
		}
	} else {
		x = event.pageX;
		y = event.pageY;
	}

	if(openMenu != null){
		var testInside = isInside(x, y, openMenu);
		if((wWidth != document.body.offsetWidth) || (!testInside && canMenuBeClosed == true)){
			hideMenu(openMenu);
		}
		if(testInside){
			canMenuBeClosed = true;
		}
	}
}

function isInside(xMouse, yMouse, id){

	menuLeft = menuLeft == null ? getElementLeft(id) : menuLeft;
	menuRight = menuRight == null ? getElementRight(id) : menuRight;
	menuTop = menuTop == null ? getElementTop(id) : menuTop;
	menuBottom = menuBottom == null ? getElementBottom(id) : menuBottom;
	
	if( (id != null) && (xMouse >= menuLeft - 30) && (xMouse <= menuRight + 30) && (yMouse >= menuTop - 30) && (yMouse <= menuBottom + 30) ){
		return true;
	} else {
		return false;
	}
}

function getElementLeft(id) {
	var x = 0;
	var menuDiv = typeElement(id);
	while (menuDiv != null) {
		x+= menuDiv.offsetLeft;
		menuDiv = menuDiv.offsetParent;
	}
	return parseInt(x);
}

function getElementWidth(id){
	var menuDiv = typeElement(id);
	return parseInt(menuDiv.offsetWidth);
}

function getElementRight(id){
	return getElementLeft(id) + getElementWidth(id);
}

function getElementTop(id) {
	var y = 0;
	var menuDiv = typeElement(id);
	while (menuDiv != null) {
		y+= menuDiv.offsetTop;
		menuDiv = menuDiv.offsetParent;
	}
	return parseInt(y);
}

function getElementHeight(id){
	var menuDiv = typeElement(id);
	return parseInt(menuDiv.offsetHeight);
}

function getElementBottom(id){
	return getElementTop(id) + getElementHeight(id);
}

function setElementProperty(id, id_property, id_value){
	var menuDiv = typeElement(id);
	if((menuDiv != null) && (menuDiv.style != null)){
		menuDiv = menuDiv.style;
		menuDiv[ id_property ] = id_value;
	}
}
function typeElement(id) {
	var type = null;
	if(typeof(id) == "object"){
		type = id;
	} else {
		type = document.getElementById(id);
	}
	return (type);
}