var timer = "";
var openMenu = null;
var canMenuBeClosed = true;

window.onload = function() {
	document.onmousemove = getMousePos;
}

function clearTimer(){
	window.clearTimeout(timer);
}

function tryToClose(){
	var funcToCall = "canMenuBeClosed = true"
	timer = window.setTimeout(funcToCall, 400);
}

function showFinMenu(){

	if(document.getElementById){
		clearTimer();
		openMenu = 'financialmenu';
		canMenuBeClosed = false
		document.getElementById('financialmenu').style['display'] = 'block';
		document.getElementById('financial').getElementsByTagName('a')[0].className = 'open';
	}
}

function hideFinMenu(){
	document.getElementById('financialmenu').style['display'] = 'none';
	document.getElementById('financial').getElementsByTagName('a')[0].className = '';
	openMenu = null;
}

function getMousePos(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(!testInside && canMenuBeClosed == true){
			hideFinMenu();
		}
		if(testInside){
			canMenuBeClosed = true;
			clearTimer();
		}
	}
}

function isInside(xMouse, yMouse, id){
	if( (id != null) && (xMouse >= getElementLeft(id)) && (xMouse <= getElementRight(id)) && (yMouse >= getElementTop(id)) && (yMouse <= getElementBottom(id)) ){
		return true;
	} else {
		return false;
	}
}

function getElementLeft(p_elm) {
	var x = 0;
	var elm;
	if(typeof(p_elm) == "object"){
		elm = p_elm;
	} else {
		elm = document.getElementById(p_elm);
	}
	while (elm != null) {
		x+= elm.offsetLeft;
		elm = elm.offsetParent;
	}
	return parseInt(x);
}

function getElementWidth(p_elm){
	var elm;
	if(typeof(p_elm) == "object"){
		elm = p_elm;
	} else {
		elm = document.getElementById(p_elm);
	}
	return parseInt(elm.offsetWidth);
}

function getElementRight(p_elm){
	return getElementLeft(p_elm) + getElementWidth(p_elm);
}

function getElementTop(p_elm) {
	var y = 0;
	var elm;
	if(typeof(p_elm) == "object"){
		elm = p_elm;
	} else {
		elm = document.getElementById(p_elm);
	}
	while (elm != null) {
		y+= elm.offsetTop;
		elm = elm.offsetParent;
	}
	return parseInt(y);
}

function getElementHeight(p_elm){
	var elm;
	if(typeof(p_elm) == "object"){
		elm = p_elm;
	} else {
		elm = document.getElementById(p_elm);
	}
	return parseInt(elm.offsetHeight);
}

function getElementBottom(p_elm){
	return getElementTop(p_elm) + getElementHeight(p_elm);
}
