d = document;

/////////////////////////////////////////////////////////
//    SHOW | HIDE DROP-DOWN MENU'S
/////////////////////////////////////////////////////////

MenuInterval 	= 25;		// smoothness of the timer
TimerActivated 	= 0;		// timer not activated at default
TheActiveMenu	= 'dummy';	// dummy menu for kick-off
TimerTrigger 	= 0;		// not moved from child to parent, yet

MenuHelper1		= 0;
MenuHelper2		= 0;
MenuHelper3		= 0;
MenuHelper4		= 0;
MenuHelper5		= 0;

function Menu(CallerID,ShowHideMenu,TheMenu)
    {

// hide active menu at once, when new one is triggered
if(TheMenu != TheActiveMenu && TheActiveMenu != 'dummy')d.getElementById(TheActiveMenu).style.visibility = 'hidden';

	TheActiveMenu 										= TheMenu;
	if(MenuDebug)d.getElementById("helper1").value 		= MenuTimer;
	MenuHelper1											= MenuTimer;

// menu must disappear at once
	if(CallerID == 0)
		{
	d.getElementById(TheActiveMenu).style.visibility	= 'hidden';
		if(MenuDebug)
			{
		d.getElementById("helper1").value 				= 0;
		d.getElementById("helper2").value 				= 0;
		d.getElementById("helper3").value 				= 0;
		d.getElementById("helper4").value 				= 0;
		d.getElementById("helper5").value 				= 0;
			}
		}

// menu-call by parent-object [button]
	if(CallerID == 1)
		{
	if(MenuDebug)d.getElementById("helper3").value 		= ShowHideMenu;
	MenuHelper3											= ShowHideMenu;
	d.getElementById(TheActiveMenu).style.visibility	= 'visible';
	if(ShowHideMenu == 0)TimerTrigger					= 0;
	if(ShowHideMenu == 1)TimerTrigger 					= (1*TimerTrigger)+1;
	if(MenuDebug)d.getElementById("helper5").value		= TimerTrigger;
	MenuHelper5											= TimerTrigger;
		}
	
// menu-call by child-object [drop-down menu]
	if(CallerID == 2)
		{
	if(MenuDebug)d.getElementById("helper4").value		= ShowHideMenu;
	MenuHelper4											= ShowHideMenu;
	if(TimerTrigger != 2)TimerTrigger 					= 2;
	if(MenuDebug)d.getElementById("helper5").value		= TimerTrigger;
	MenuHelper5											= TimerTrigger;
		}

// trigger the timer, only once at a cyclus
	if(ShowHideMenu == 0 && TimerActivated == 0)
		{
	MenuTiming();
//	setTimeout("MenuTiming()",10);
	if(MenuDebug)d.getElementById("helper2").value		= 1;
	MenuHelper2											= 1;
	TimerActivated 										= 1;
		}

// reset timer when moving from child to parent
	if(TimerTrigger == 3)
		{
	TimerActivated 										= 0;
	if(MenuDebug)d.getElementById("helper2").value		= 0;
	MenuHelper2											= 0;
		}

	}

function MenuTiming()
	{

	// when drop-down menu is not visible
	if(MenuHelper4 == 0)
		{
		// when timer is active
		if(MenuHelper1 > 0 && TimerTrigger != 3)
			{
		if(MenuDebug)d.getElementById("helper1").value -= 1;
		MenuHelper1						  			   -= 1;
		setTimeout("MenuTiming()",MenuInterval);
			}
		// when timer has stopped
		if(MenuHelper1 == 0)
			{
		TimerActivated 					  				= 0;
		if(MenuDebug)d.getElementById("helper2").value	= 0;
		MenuHelper2										= 0;
		TimerTrigger 					  				= 0;
		if(MenuDebug)d.getElementById("helper5").value 	= 0;
		MenuHelper5										= 0;
	// when drop-down menu is not visible and not active
			if(MenuHelper3 != 1 && MenuHelper4 != 1)
				{
			d.getElementById(TheActiveMenu).style.visibility = 'hidden';
				}
			}
		}

	// when drop-down menu is visible
	else
		{
	TimerActivated										= 0;
	if(MenuDebug)d.getElementById("helper2").value		= 0;
	MenuHelper2											= 0;
		}

	}