window.onload = function()
{
	new xMenu1('about_trigger', 'about_menu', 20, 'mouseover');
	new xMenu1('participate_trigger', 'participate_menu', 20, 'mouseover');
	new xMenu1('program_trigger', 'program_menu', 20, 'mouseover');
}
/* 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)
{
	xMenu1.instances[xMenu1.instances.length] = this;
	var isOpen = false;
	var trg = xGetElementById(triggerId);
	var mnu = xGetElementById(menuId);
	if (trg && mnu) {
		xAddEventListener(trg, openEvent, onOpen, false);
	}
	function onOpen()
	{
		for (var i = 0; i < xMenu1.instances.length; ++i) {
					xMenu1.instances[i].close();
		}

		if (!isOpen) {
			xMoveTo(mnu, xPageX(trg)+xWidth(trg), xPageY(trg));
			mnu.style.visibility = 'visible';
			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))
		{
			mnu.style.visibility = 'hidden';
			xRemoveEventListener(document, 'mousemove', onMousemove, false);
			isOpen = false;
		}
	}
	this.close = function()
	{
		mnu.style.visibility = 'hidden';
		xRemoveEventListener(document, 'mousemove', onMousemove, false);
		isOpen = false;
	}

} // end xMenu1
xMenu1.instances = new Array();

