﻿ /** xMenu1 Object Prototype
Parameters:
triggerId   - id string of trigger element.
menuId      - id string of menu.
mouseMargin - integer margin around menu;
when mouse is outside this margin the menu is hid.
openEvent   - string name of event on which to open menu ('click', 'mouseover', etc).
*/
function xMenu1 (triggerId, menuId, mouseMargin, openEvent)
{
	var isOpen = false;
	var trg = xGetElementById (triggerId);
	var mnu = xGetElementById (menuId);
	if (trg && mnu)
	{
		xAddEventListener (trg, openEvent, onOpen, false);
	}
	function onOpen ()
	{
		toggleFlash ("hide");
		if ( ! showFlash)
		{
			xMoveTo (mnu, xPageX (trg) , xPageY (trg) + xHeight (trg));
			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);
			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);
			toggleFlash ("show");
		}
	}
}
