function showGlobalMenu( menuName, showLocation )
{
	var globalMenu = document.getElementById( menuName );
	var showLoc = document.getElementById( showLocation );

	
	globalMenu.style.top = getY( showLoc ) + showLoc.offsetHeight;
	
	if ( globalMenu.offsetWidth > showLoc.offsetWidth )
	{
		globalMenu.style.left = getX( showLoc ) +  showLoc.offsetWidth - globalMenu.offsetWidth;
	}
	else
	{
		globalMenu.style.left = getX( showLoc );
		globalMenu.style.width = showLoc.offsetWidth;
	}

	clickedMenu = menuName;
	
	
	// take over from doMenu
	document.onclick = unhighlightGlobalMenuTitle;
	window.onresize = unhighlightGlobalMenuTitle;
}

function menu_callback( theURL, theTarget )
{
	//No longer wait for page to load
	//if ( !pageLoaded )
 	//{
	//	return
    //}
	try
	{
		if ( __LeavePage === "" || ( eval( __LeavePage + "( '" + theURL + "', '" + theTarget + "')" ) ) )
		{
			openURL( theURL, theTarget );
		}
    }
    catch( e )
    {
        // open the URL if the __LeavePage function does not exist.
        openURL( theURL, theTarget );
    }
}

function unhighlightGlobalMenuTitle()
{
	var	menuWindow = getMenuWindow();
	var	menuShown = getMenuShown();

	if ( ( menuWindow == self.window ) && ( menuShown != clickedMenu ) && ( document.getElementById( menuShown + 'GlobalMenu' ) != null ) )
	{
		document.getElementById( menuShown + 'GlobalMenuImage' ).src = getArrowBlack();
		document.getElementById( menuShown + 'GlobalMenu' ).firstChild.nextSibling.style.color = "#05447e";
	}
	
	doMenu();
}

function setArrowBlack( id )
{
	 if ( document.getElementById( id ).style.visibility != '' )
	 {
		 if ( document.getElementById( id ).style.visibility == 'hidden' )
		 {
			document.getElementById( id + 'GlobalMenu' ).firstChild.nextSibling.style.color = "#05447e";
			document.getElementById( id + 'GlobalMenuImage' ).src = getArrowBlack();
		}
	  }
	  else
	  {	
		 document.getElementById( id + 'GlobalMenu' ).firstChild.nextSibling.style.color = "#05447e";
		 document.getElementById( id + 'GlobalMenuImage' ).src = getArrowBlack();
	  }
}	

function setArrowRed( id )
{
	document.getElementById( id + 'GlobalMenu' ).firstChild.nextSibling.style.color = "#ff0000";
	document.getElementById( id + 'GlobalMenuImage' ).src = getArrowRed();
}

function openLinksWindow( url )
{
	var helpWindow = window.open( url, "helpWin", "WIDTH=800,HEIGHT=530,resizable,toolbar" );
			

	if ( helpWindow.focus )
	{
		helpWindow.focus();
	}
}


// Routines to generate global menus
// MenuBar contains Menus which contain Items, Dividers and SubMenus

var mc_baseURL = '';
var mc_img = '';
var mc_menuCount = 0;
var mc_menuWidth = 100;
var mc_nextId = 1;


function mc_setBaseURL( s )
{
	mc_baseURL = s;
}

function mc_setSupportPath( s )
{
	mc_img = s;
}

function getArrowBlack()
{
	return mc_img + 'global-down-arrow.gif';
}

function getArrowRed()
{
	return mc_img + 'global-down-arrow-red.gif';
}


// HTML Fragments - these are building blocks for global menus

// Substitutions: IMG, WIDTH
var mc_html_menuBarEnd = '<TD BACKGROUND="#IMG#global-menu-shadow.gif"><IMG HEIGHT="3" ALT="" SRC="#IMG#spacer.gif" WIDTH="#WIDTH#" BORDER="0"></TD>';

// Substitutions: IMG,  MENUNAME, MENULABEL, TOOLTIP
var mc_html_menuStart =
	'<TD ROWSPAN="2"><IMG HEIGHT="27" ALT="" SRC="#IMG#global-menu-divider.gif" WIDTH="2" BORDER="0"></TD>' +
	'<TD ID="#MENUNAME#GlobalMenu" HEIGHT="24" BACKGROUND="#IMG#global-menu-bg.gif" HREF="" ONCLICK="javascript:showGlobalMenu(\'#MENUNAME#\', \'#MENUNAME#GlobalMenu\' );return false" ONMOUSEOUT="javascript:setArrowBlack( \'#MENUNAME#\' )">' +
	'&nbsp;&nbsp;&nbsp;<A HREF="javascript:showGlobalMenu(\'#MENUNAME#\', \'#MENUNAME#GlobalMenu\' );return false" CLASS="globalMenu" ONCLICK="javascript:showGlobalMenu(\'#MENUNAME#\', \'#MENUNAME#GlobalMenu\' );return false" ONMOUSEOVER="javascript:setArrowRed( \'#MENUNAME#\' )" ONMOUSEOUT="javascript:setArrowBlack( \'#MENUNAME#\' )" TITLE="#TOOLTIP#"><B>#MENULABEL#</B>' +
	' <IMG SRC="#IMG#global-down-arrow.gif" HEIGHT="7" ALT="#TOOLTIP#" HSPACE="3" WIDTH="5" ALIGN="ABSMIDDLE" BORDER="0" ONMOUSEOVER="javascript:setArrowRed( \'#MENUNAME#\' )" ONMOUSEOUT="javascript:setArrowBlack( \'#MENUNAME#\' )" ID="#MENUNAME#GlobalMenuImage"></A>' +
	'<DIV ID="#MENUNAME#" CLASS="menu">';

// Substitutions: IMG
var mc_html_menuEnd =
	'<DIV CLASS="lastItemHilite"><IMG SRC="#IMG#spacer.gif" ALT="" WIDTH="1" HEIGHT="1"></DIV>' +
	'</DIV>' +
	'</TD>';

// Substitutions: IMG
var mc_html_divider = '<DIV CLASS="menuDivider"><IMG SRC="#IMG#spacer.gif" ALT="" WIDTH="1" HEIGHT="1"></DIV>';

// Substitutions: IMG, ITEMNAME, ITEMLABEL, THEURL
var mc_html_itemTP =
	'<DIV ID="#ITEMNAME#" CLASS="menuItem" ONCLICK="javascript:menu_callback( \'#THEURL#\',\'targetParent\');return false;"  ONMOUSEOVER="javascript:hiLight(\'#ITEMNAME#\');doSubMenu( \'#ITEMNAME#\' )" ONMOUSEOUT="javascript:loLight( \'#ITEMNAME#\')" WIDTH= "100%">' +
	'<A HREF="#THEURL#" TARGET="PARENT">#ITEMLABEL#</A>' +
	'</DIV>';

var mc_html_item =
	'<DIV ID="#ITEMNAME#" CLASS="menuItem" ONCLICK="javascript:menu_callback( \'#THEURL#\',\'\');return false;" ONMOUSEOVER="javascript:hiLight(\'#ITEMNAME#\');doSubMenu( \'#ITEMNAME#\' )" ONMOUSEOUT="javascript:loLight( \'#ITEMNAME#\')" WIDTH= "100%">' +
	'<A HREF="#THEURL#">#ITEMLABEL#</A>' +
	'</DIV>';

var mc_html_subMenu = 
	'<DIV ID="#ITEMNAME#" CLASS="menuItem" ONMOUSEOVER="javascript:hiLight(\'#ITEMNAME#\');doSubMenu( \'#ITEMNAME#\' )" ONMOUSEOUT="javascript:loLight( \'#ITEMNAME#\')" WIDTH="100%">' +
	'#ITEMLABEL#' +
	'</DIV>';

var mc_html_itemHelp =
	'<DIV ID="#ITEMNAME#" CLASS="menuItem" ONCLICK="javascript:openLinksWindow( \'#THEURL#\' );return false;" ONMOUSEOVER="javascript:hiLight(\'#ITEMNAME#\');doSubMenu( \'#ITEMNAME#\' )" ONMOUSEOUT="javascript:loLight( \'#ITEMNAME#\')" WIDTH= "100%">' +
	'<A HREF="javascript:openLinksWindow( \'#THEURL#\' );return false;">#ITEMLABEL#</A>' +
	'</DIV>';

var mc_html_itemMailto =
	'<DIV ID="#ITEMNAME#" CLASS="menuItem" ONCLICK="javascript:location.href=\'#THEURL#\'; return false;" ONMOUSEOVER="javascript:hiLight(\'#ITEMNAME#\');doSubMenu( \'#ITEMNAME#\' )" ONMOUSEOUT="javascript:loLight( \'#ITEMNAME#\')" WIDTH= "100%">' +
	'<A HREF="#THEURL#">#ITEMLABEL#</A>' +
	'</DIV>';

function mc_menuBarStart( width )
{
	mc_menuCount = 0;

	mc_menuWidth = width;
		
	document.write( '<TR>' );
}

function mc_menuBarEnd()
{
	var i;

	var s = mc_html_menuBarEnd.replace( /#IMG#/g, mc_img );


	s = s.replace( /#WIDTH#/g, mc_menuWidth - 2 );

	document.write( '</TR><TR>' );

	for ( i = mc_menuCount; i > 0; i-- )
	{
		document.write( s );
	}
	
	document.write( '</TR>' );
}

function mc_menuStart( menuLabel, toolTip )
{
	var s = mc_html_menuStart;


	s = s.replace( /#IMG#/g, mc_img );
	s = s.replace( /#MENUNAME#/g, "mc_" + mc_nextId );
	s = s.replace( /#MENULABEL#/g, menuLabel );
	s = s.replace( /#TOOLTIP#/g, toolTip );

	document.write( s );

	mc_menuCount++;

	mc_nextId++;
	
	return mc_nextId;
}

function mc_menuEnd()
{
	var s = mc_html_menuEnd;


	s = s.replace( /#IMG#/g, mc_img );

	document.write( s );
}

function mc_divider()
{
	var s = mc_html_divider;


	s = s.replace( /#IMG#/g, mc_img );

	document.write( s );
}

function mc_item( itemLabel, theURL, targetParent, template )
{
	var s;


	if ( template == undefined )
	{
		if ( targetParent == 1 )
		{
			s = mc_html_itemTP;
		}
		else
		{
			s = mc_html_item;
		}
	}
	else
	{
		s = template;
	}

	if ( theURL.charAt( 0 ) == '?' )
	{
		theURL = mc_baseURL + theURL;
	}

	s = s.replace( /#IMG#/g, mc_img );
	s = s.replace( /#ITEMNAME#/g, "mc_" + mc_nextId );
	s = s.replace( /#ITEMLABEL#/g, itemLabel );
	s = s.replace( /#THEURL#/g, theURL );

	document.write( s );

	mc_nextId++;
	
	return mc_nextId;
}

function mc_subMenu( itemLabel )
{
	var s = mc_html_subMenu;


	s = s.replace( /#IMG#/g, mc_img );
	s = s.replace( /#ITEMNAME#/g, "mc_" + mc_nextId );
	s = s.replace( /#ITEMLABEL#/g, itemLabel );

	document.write( s );

	mc_nextId++;
	
	return mc_nextId;
}

