// Requires findObj function
	function findObj(n, d) {
		var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
				d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document); return x;
	}	
	function MenuOver(MenuID, obj, MenuType)
	{
		if( ByeTimer )
		{
			window.clearTimeout(ByeTimer);
			if( MenuID==ByeMenu )
				return;
			else
				timerExpired();
		}
		MenuChangeBG( obj, (arguments.length>3 ? arguments[3] : MenuHoverColour) );
		ByeParent = obj;
		if( MenuType=='h' )
			DoMenuHover(MenuID, true);
		else
			vMenuHover(MenuID, obj, true);
	}
	function vMenuHover(MenuID, o, DoHover)
	{
		var layerTop=50, layerLeft=0;
		if(o)
		{
			if( typeof(o.offsetTop)=='number' )
			{
				layerTop = o.offsetTop;
				layerLeft = o.offsetLeft;
				var oParent = o.offsetParent;
				if( layerTop==0 )
					if( o.cells )
						if( o.cells.length > 0 )
							layerTop = o.cells[0].offsetTop;
				while(oParent)
				{
					layerTop += oParent.offsetTop;
					layerLeft += oParent.offsetLeft;
					oParent = oParent.offsetParent;
				}
			}
			else
			{
				var l = findObj("LeftNav_2_" + MenuID);
				if(l)
				{
					layerLeft = l.pageX;
					layerTop = l.pageY;
				}
				else
				{
					l = findObj("LeftNav_3_" + MenuID);
					if(l)
					{
						layerLeft = l.pageX;
						layerTop = l.pageY;
					}
					else
					{
						l = findObj("LeftNav_4_" + MenuID);
						if(l)
						{
							layerLeft = l.pageX;
							layerTop = l.pageY;
						}
					}
				}
			}
		}
		ToggleMenu( MenuID, DoHover, layerTop+2, layerLeft+140, true );
	}
	function DoMenuHover(MenuID, DoHover)
	{
		var layerTop=50, layerLeft=0;
		o=findObj("topmenuimg_" + MenuID);
		if(o)
		{
			o.src = ( DoHover ? o.src.replace('header','hover') : o.src.replace('hover','header'));
			if( typeof(o.offsetTop)=='number' )
			{
				layerTop = o.offsetTop;
				layerLeft = o.offsetLeft;
				var oParent = o.offsetParent;
				while(oParent)
				{
					layerTop += oParent.offsetTop;
					layerLeft += oParent.offsetLeft;
					oParent = oParent.offsetParent;
				}
				layerTop += 28;
			}
			else
			{
				var l = findObj("TopLayer_" + MenuID);
				layerLeft = l.pageX;
				layerTop = l.pageY + o.height;
			}
		}
		ToggleMenu( MenuID, DoHover, layerTop, layerLeft, false );
	}
	function ToggleMenu( MenuID, DoHover, layerTop, layerLeft, AllowAdjust )
	{	
		var o=findObj('vMenu_'+MenuID);
		if(o)
		{	
			if( o.style )
				o.style.visibility = (DoHover ? 'visible' : 'hidden');
			else
				o.visibility = (DoHover ? 'show' : 'hide');
		}
		else
		{
			if( document.getElementById ) {
				o = document.getElementById('vMenu_' + MenuID);
			}
			if(o) {
				o.style.visibility = (DoHover ? 'visible' : 'hidden');
			}
			else
			{	if( document.layers )
				{
					o = document.layers['vMenu_' + MenuID];
					if(o)
						o.style.visibility = (DoHover ? 'visible' : 'hidden');	
				}
			}
		}
		if(o)
		{
			if( o.style )
			{
				o.style.top = layerTop;
				if( AllowAdjust ) // only check viewable screen size if vertical menu
				{
					viewableTop = document.body.scrollTop+document.body.clientHeight;
					if( (layerTop + parseFloat(o.clientHeight)) > viewableTop) // the layer is off the bottom of the viewable area
					{
						if(o.clientHeight < document.body.clientHeight)
							o.style.top = viewableTop-o.clientHeight;
						else
							o.style.top = document.body.scrollTop; // the layer is bigger than the viewable : just put it at the top
					}
				}
				o.style.left = layerLeft+'px';
			}
			else
			{
				o.moveTo( layerLeft, layerTop );
			}
		}
	}
	function MenuOut(MenuID, MenuType)
	{
		ByeMenu = MenuID;
		ByeType = MenuType;
		if(arguments.length>2)
			ByeColour = arguments[2];
		ByeTimer = window.setTimeout('timerExpired()',500);
	}
	function timerExpired()
	{
		DoMenuHover(ByeMenu, false);
		ByeMenu=0;
		ByeTimer = null;
		if( ByeParent )
		{
			MenuChangeBG(ByeParent,ByeColour);
			ByeParent = null;
		}
	}
	function MenuChangeBG( o, c )
	{
		if( o.style && o.className != "leftmenuactive")
				o.style.backgroundColor = c;
		else if( o.bgColor )
				o.bgColor = c;
	}
	function b(obj,c)
	{
		obj.style.backgroundColor=c;
	}