/* This code controls the flyout menus.  This was written by and is
   copyright of Sylvaticus Ltd www.sylvaticus.com and should not
   be changed under any circumstances. */
var isNS4 = (document.layers) ? true : false;
var isIE4 = (document.all && !document.getElementById) ? true : false;
var isIE5 = (document.all && document.getElementById) ? true : false;
var isNS6 = (!document.all && document.getElementById) ? true : false;


var isMacIE = ( (navigator.userAgent.indexOf("IE 4")  > -1) && (navigator.userAgent.indexOf("Mac")  > -1) );

var activeMenu = 0;
var finalClip;

function getMenuDiv( DivID )
{
	if (isNS4){
	   elm = document.layers[DivID];
	}
	else if (isIE4) {
	   elm = document.all[DivID];
	}
	else if (isIE5 || isNS6) {
	   elm = document.getElementById(DivID);
	}

	return elm;
}

function getDivStyle( DivID )
{
	elm = getMenuDiv( DivID );

	if( isNS4 )
		return elm;
	else
		return elm.style;
}

var activeSubMenu = 0;
var SubMenuEntered = 0;

function activateMenu(menuLayerRef, offset, forcesubclose) 
{
	if (activeSubMenu != 0 && ( SubMenuEntered == 1 || forcesubclose == 1) )
	{
	 hideMenu("submenu" + activeSubMenu);
	 activeSubMenu = 0;
 	 SubMenuEntered = 0;
	}

	if (activeMenu != menuLayerRef) 
	{
		if (activeMenu != 0) 
		{
			hideMenu("menu" + activeMenu);
		}

  	menuID = "menu" + menuLayerRef;
  	activeMenu = menuLayerRef;
		
		if( !isNS4 )
				leftpixels = offset + "px";
		
		elm = getDivStyle( menuID );
		
		if( isNS4 )
		{
  	 		elm.top = 93;
  			elm.left = offset;
		}
		else
		{
  	 		elm.top = "93px"; 
  			elm.left = leftpixels;
		}

		showMenu(menuID);
	}

	if (!isNS4 && !isNS6) 
		 window.event.cancelBubble = true;
}

function activateSubMenu(submenuLayerRef, offset, entered) 
{

  if(submenuLayerRef == 0 && activeSubMenu != 0)
	{
 	  menuID = "submenu" + activeSubMenu;
		hideMenu( menuID );
		activeSubMenu = 0;
		SubMenuEntered = 0;
		return;
 	}

  if( SubMenuEntered == 0 && activeSubMenu != 0)
    SubMenuEntered = entered;
	
	if (activeSubMenu != submenuLayerRef) 
	{
    menuID = "submenu" + submenuLayerRef;
  	activeSubMenu = submenuLayerRef;
		
		if( !isNS4 )
		  leftpixels = offset + "px";
		
		elm = getDivStyle( menuID );
		
		if( isNS4 )
		{
  	  elm.top = 93;
  		elm.left = offset;
		}
		else
		{
  	 	elm.top = "93px"; 
  		elm.left = leftpixels;
		}
		showMenu(menuID);
	}

	if (!isNS4 && !isNS6) 
	  window.event.cancelBubble = true;
}

function showMenu(layerID) 
{
	elm = getDivStyle(layerID);
	elm.visibility = "visible";
}

function hideMenu(layerID) 
{
 	elm = getDivStyle(layerID);
	elm.visibility = "hidden";
}

function killMenu(e) {
	//check if theres a menu active
	
	if (activeMenu) 
	{
		menuID = "menu" + activeMenu;
		if (isNS4 || isNS6 ) 
		{
			elm = getDivStyle( menuID );

			if( isNS4 )
			{		
  			menuX1 = elm.left;
  			menuX2 = menuX1 + elm.clip.right;
  			menuY1 = elm.top;
  			menuY2 = menuY1 + elm.clip.bottom;
			}
			else
			{
  			menuX1 = parseInt(elm.left);
  			menuX2 = menuX1 + parseInt(elm.width);
  			menuY1 = parseInt(elm.top);
  			menuY2 = menuY1 + parseInt(elm.height);
			}
			
			if ((e.pageX < menuX1 || e.pageX > menuX2 || e.pageY > menuY2) && activeSubMenu == 0) {
				hideMenu(menuID);
				activeMenu = 0;
			}
		} 
		else 
		{
				hideMenu(menuID);
				activeMenu = 0;
		}
	}
	
	if (activeSubMenu) 
	{
		menuID = "submenu" + activeSubMenu;
		if ( isNS4 || isNS6 ) 
		{
			elm = getDivStyle( menuID );

			if( isNS4 )
			{		
  			menuX1 = elm.left;
  			menuX2 = menuX1 + elm.clip.right;
  			menuY1 = elm.top;
  			menuY2 = menuY1 + elm.clip.bottom;
			}
			else
			{
  			menuX1 = parseInt(elm.left);
  			menuX2 = menuX1 + parseInt(elm.width);
  			menuY1 = parseInt(elm.top);
  			menuY2 = menuY1 + parseInt(elm.height);
			}
			
			if ((e.pageX < menuX1 || e.pageX > menuX2 || e.pageY > menuY2) && SubMenuEntered == 1) {
				hideMenu(menuID);
				activeSubMenu = 0;
				SubMenuEntered = 0;
			}
		} 
		else 
		{
				hideMenu(menuID);
				activeSubMenu = 0;
				SubMenuEntered = 0;
		}
	}
}


function init() {
/*
stroutput = "isNS4= " + isNS4;
alert(stroutput);
stroutput="isIE4= " + isIE4;
alert(stroutput);
stroutput="isIE5= " + isIE5;
alert(stroutput);
stroutput="isNS6= " + isNS6;
alert(stroutput);
*/

		if (isNS4 || isNS6) 
		{
			document.captureEvents(Event.MOUSEMOVE);
			document.onmousemove = killMenu;
		}
 		else // if( !isNS6 )
		{
			document.onmouseover = killMenu;
		}
}