﻿// direction: 0 = nach unten, 1 = nach oben
function xMenu1 (triggerId, menuId, mouseMargin, openEvent, direction)
{
	var isOpen = false;
	var trg = xGetElementById (triggerId);
	var mnu = xGetElementById (menuId);
	if (trg && mnu)
	{
		lastPoint = mnu;
		lastTrigger = trg;
		if(direction == 1)
		{
			xAddEventListener (trg, openEvent, onOpenAbove, false);
		}
		else
		{
			xAddEventListener (trg, openEvent, onOpen, false);
		}
		
	}
	
	function onOpen ()
	{
		hasFlash = xGetElementById ('flash_box');
		if (hasFlash != null) {
			toggleFlash ("hide");
			if ( ! isOpen)
			{
				xMoveTo (mnu, xPageX (trg) , xPageY (trg) + xHeight (trg));
				xShow (mnu);
				xAddEventListener (document, 'mousemove', onMousemove, false);
				isOpen = true;
			}
		}
		else {
			xMoveTo (mnu, xPageX (trg) , xPageY (trg) + xHeight (trg));
			xShow (mnu);
			xAddEventListener (document, 'mousemove', onMousemove, false);
			isOpen = true;
		}
	}

	function onOpenAbove ()
	{
		hasFlash = xGetElementById ('flash_box');
		if (hasFlash != null) 
		{
			toggleFlash ("hide");
			if ( ! isOpen)
			{
				xMoveTo (mnu, xPageX (trg) , xPageY (trg) - xHeight (mnu));
				xShow (mnu);
				xAddEventListener (document, 'mousemove', onMousemove, false);
				isOpen = true;
			}
		}
		else 
		{
			xMoveTo (mnu, xPageX (trg) , xPageY (trg) - xHeight (mnu));
			xShow (mnu);
			xAddEventListener (document, 'mousemove', onMousemove, false);
			isOpen = true;
		}
	}

	function onMousemove (ev)
	{
		var e = new xEvent (ev);
		if ( ! xHasPoint (mnu, e.pageX, e.pageY, - mouseMargin) &&	! xHasPoint (trg, e.pageX, e.pageY, - mouseMargin))
		{
			xHide (mnu);
			xRemoveEventListener (document, 'mousemove', onMousemove, false);
			if (hasFlash != null) {
				toggleFlash ("show");
			}
			isOpen = false;
		}
	}
}
function navHide ()
{
	var nav = xGetElementById ("navi");
	for (a = 0; a < nav.childNodes.length; a ++)
	{
		if (nav.childNodes [a].className == "menu")
		{
			var mnu = nav.childNodes [a];
			xHide (mnu);
			//xRemoveEventListener (document, 'mousemove', trg.onMousemove, false);
			if (hasFlash != null) {
				toggleFlash ("show");
			}
		}
	}
}