
function addLoadListener(fn){
	if (typeof window.addEventListener != "undefined") 
		window.addEventListener("load", fn, false);
	else if (typeof document.addEventListener != "undefined")
		document.addEventListener("load", fn, false);
	else if (typeof window.attachEvent != "undefined")
		window.attachEvent("onload", fn);
	else {
		var oldfn = window.onload;
		if (typeof window.onload != "function")
			window.onload = fn;
		else 
			window.onload = function(){
				oldfn();
				fn();
			};
	}
}
//---------------------------------------------------------------------------
function attachEventListener(target, eventType, functionRef, capture){
	if (typeof target.addEventListener != "undefined") 
		target.addEventListener(eventType, functionRef, capture);
	else if (typeof target.attachEvent != "undefined"){
		var functionString = eventType + functionRef;
		target["e"+functionString] = functionRef;
		target[functionString] = function(event){
			if (typeof event == "undefined")
				event = window.event;
			target["e"+functionString](event);
		};
		target.attachEvent("on"+eventType, target[functionString]);
	} else {
		eventType = "on" + eventType;
		if (typeof target[eventType] == "function"){
			var oldListener = target[eventType];
			target[eventType] = function(){
				oldListener();
				return functionRef();	
			};
		} else
			target[eventType] = functionRef;
	}
}		
//---------------------------------------------------------------------------
function detachEventListener(target, eventType, functionRef, capture){
	if (typeof target.removeEventListener != "undefined") 
		target.removeEventListener(eventType, functionRef, capture);
	else if (typeof target.detachEvent != "undefined"){
		var functionString = eventType + functionRef;
		target.detachEvent("on" + eventType, target[functionString]);
		target[functionString] = null;
//		target["e"+functionString] = null;
	} else {
		target["on"+eventType] = null;
	}
}
//---------------------------------------------------------------------------
function stopDefaultAction(event){
	event.returnValue = false;
	if (typeof event.preventDefault != "undefined")
	event.preventDefault();
}
//---------------------------------------------------------------------------
function stopEvent(event){
	if (typeof event.stopPropagation != "undefined")
		event.stopPropagation();
	else
		event.cancelBubble = true;
}
//---------------------------------------------------------------------------
function getEventTarget(event){
	var targetElement = null;
	if (typeof event.target != "undefined")
		targetElement = event.target;
	else 
		targetElement = event.srcElement;
		
	while (targetElement.nodeType == 3 && targetElement.parentNode != null){
		targetElement = targetElement.parentNode;
	}
	return targetElement;
}
function getViewportSize(){
	var size = [0,0]	;
	if (typeof window.innerWidth != "undefined")
		size = [window.innerWidth, window.innerHeight];
	else if (typeof document.documentElement != "undefined" && typeof document.documentElement.clientWidth != "undefined" && typeof document.documentElement.clientHeight != "undefined")
		size = [document.documentElement.clientWidth, document.documentElement.clientHeight];
	else
		size = [document.getElementsByTagName("body")[0].clientWidth, document.getElementsByTagName("body")[0].clientHeight];
		
	return size;
}
//-------------------------------------------------------------------------------------
function getPageDimensions(){
	var body = document.getElementsByTagName("body")[0];
	var bodyOffsetWidth = 0;
	var bodyOffsetHeight = 0;
	var bodyScrollWidth = 0;
	var bodyScollHeight = 0;
	var pageDimensions = [0,0];
	
	if (typeof document.documentElement != "undefined" && typeof document.documentElement.scrollWidth != "undefined"){
		pageDimensions[0]	 = document.documentElement.scrollWidth;
		pageDimensions[1]	 = document.documentElement.scrollHeight;
	}
	
	bodyOffsetWidth = body.offsetWidth;
	bodyOffsetHeight = body.offsetHeight;
	bodyScrollWidth = body.scrollWidth;
	bodyScrollHeight = body.scrollHeight;
	
	if (bodyOffsetWidth > pageDimensions[0])
		pageDimensions[0] = bodyOffsetWidth;
	if (bodyOffsetHeight > pageDimensions[1])
		pageDimensions[1] = bodyOffsetHeight;
	if (bodyScrollWidth > pageDimensions[0])
		pageDimensions[0] = bodyScrollWidth;
	if (bodyScrollHeight > pageDimensions[1])
		pageDimensions[1] = bodyScrollHeight;
	
	return pageDimensions;
}
//-------------------------------------------------------------------------------------
function getScrollingPosition(){
	var position = [0,0];
	if (typeof window.pageYOffset != "undefined")
		position = [window.pageXOffset, window.pageYOffset];
	else if (typeof document.documentElement.scrollTop != "undefined" && document.documentElement.scrollTop > 0)
		position = [document.documentElement.scrollLeft, document.documentElement.scrollTop];
	else if (typeof document.body.scrollTop != "undefined")
		position = [document.body.scrollLeft, document.documentElement.scrollTop];
	return position;
}
//-------------------------------------------------------------------------------------
function getPosition(theElement){
	var positionX = 0;
	var positionY = 0;
	
	while (theElement != null){
		positionX += theElement.offsetLeft;
		positionY += theElement.offsetTop;
		theElement = theElement.offsetParent;
	}
	
	return [positionX, positionY];
}
//-------------------------------------------------------------------------------------
function getMousePos(event){
	if (typeof event == "undefined")
		event = window.event;

	var pos = [0,0];

	if (typeof event.pageX == "undefined"){
		event.pageX = event.clientX + getScrollingPosition()[0];
		event.pageY = event.clientY + getScrollingPosition()[1];
	}

	pos = [event.pageX, event.pageY];
	return pos;
}
	var menuItem  = null;
	var divItem = null;
	function setSize(it)
	{
		var tmp = document.getElementById(it+"_div");
		var h = 0;
		for (var teller=0;teller<tmp.childNodes.length;teller++)
		{
			if (tmp.childNodes[teller].nodeName == "A")
				h += 20;
		}
		tmp.style.height = h + "px";

		attachEventListener(document.getElementById(it), "mousemove", showMenu, false); 
	}
	function loadMenus()
	{
		setSize("menu1");
		setSize("menu2");
	
	}
	function showMenu(event)
	{
		if (divItem != null) 	
			divItem.style.visibility = "hidden";

		if (typeof event == "undefined")
			event = window.event;

		menuItem = getEventTarget(event);
		divItem = document.getElementById(menuItem.id + "_div");

		divItem.style.visibility = "visible";
			
		var p = getPosition(menuItem);
		divItem.style.left = p[0] + "px";
		divItem.style.top = p[1] + 30 + "px";
		
		attachEventListener(document, "mousemove", checkMousePos, false);
	}
	function checkMousePos(event)
	{
		if (typeof event == "undefined")
			event = window.event;
		var target = getEventTarget(event);	
		while (target.nodeName.toLowerCase() != "div")
			target = target.parentNode;
			
		var mPos = getMousePos(event);
		var posDiv = getPosition(divItem);
		var posMenu = getPosition(menuItem);
		
		var bovenDiv = ((mPos[0] > posDiv[0]) && (mPos[0] < posDiv[0] + divItem.offsetWidth) && (mPos[1] > posDiv[1]) && (mPos[1] < posDiv[1] + divItem.offsetHeight));
		var bovenMenu = ((mPos[0] > posMenu[0]) && (mPos[0] < posMenu[0] + divItem.offsetWidth) && (mPos[1] > posMenu[1]) && (mPos[1] < posMenu[1] + divItem.offsetHeight)); 
		if (!bovenDiv && !bovenMenu){
			divItem.style.visibility = "hidden";
			detachEventListener(document, "mousemove", checkMousePos, false);
		}		
		
	}
	
	addLoadListener(loadMenus);
