var isCSS 			= false;
var isW3C 			= false;
var isIE4 			= false;
var isNN4 			= false;
var isIE6 			= false;
var isGecko 		= false;
var isOpera 		= false;
var isDHTML 		= false;
var suppressMenus	= false;
var legacyMode		= false;
var timerID			= null;
var subtimerID		= null; 
var resetmain		= null;
var resetsub		= null;
var	resetmenu		= null;
var tempEvent		= null;
var lastPopup		= null;
var resetTime		= 500;
var screenWidth		= null;
var	m_anchorClicked = false;
var m_mhbg			= "#E9E9E9";



		
// initialize upon load to let all browsers establish content objects
function autoconfig()
{
    if(document && document.images)
    {		
        isCSS		= (document.body && document.body.style) ? true : false;
        isW3C		= (isCSS && document.getElementById) ? true : false;
        isIE4		= (isCSS && document.all && readIEVer() >= 4.0) ? true : false;
        isNN4		= (document.layers) ? true : false;
        isGecko		= (isCSS && navigator && navigator.product && navigator.product == "Gecko");
        isOpera		= (isCSS && navigator.userAgent.indexOf( "Opera") != -1 );
		isIE6CSS	= (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
		isIE6		= ( isIE6CSS && readIEVer() >= 6.0 );
        isDHTML		= isCSS && ( isIE4 || isGecko || isOpera ); 
        //screenWidth = (screen.width >= 1024 ? 952 : 728);   
        //According to the updated Storm 4.0 SRS      
		screenWidth	= 728; 
        if( suppressMenus )
        {
			// Netscape 6.2 puts the menus in the wrong place...
			// Safari, the menus don't go away... problem in ResetMenu
			isDHTML	= false;
        }
        else if( isOpera && readOperaVer() < 7 )
        {
			// Opera 6.x doesn't seem to like the DHTML...
			isDHTML	= false;
        }
		else if( isGecko && navigator.productSub <= 20011022 )
        {
			// Netscape 6.2 puts the menus in the wrong place...
			isDHTML	= false;
        }
		else if( isGecko && navigator.productSub == 20030107 )
        {
			var x = navigator.userAgent.indexOf( "AppleWebKit" );
			if( x > -1 )
			{
				// Tiger and newer versions of Safari ... 
				isDHTML = ( navigator.userAgent.substring( x + 12, x + 15 ) ) > 300;
			}
			else
			{
				// older versions of Safari ... the menus don't go away... problem in ResetMenu
				isDHTML	= false;
			}
        }

		
    }
}

function readIEVer()
{
	var agent	= navigator.userAgent;
	var offset	= agent.indexOf( "MSIE" );
	if( offset < 0 )
	{
		return 0;
	}
	return parseFloat( agent.substring( offset + 5, agent.indexOf( ";", offset ) ) );
}

function readOperaVer()
{
	var agent	= navigator.userAgent;
	var offset	= agent.indexOf( "Opera" );
	if( offset < 0 )
	{
		return 0;
	}
	return parseFloat( agent.substring( offset + 6 ) );
}

// Seek nested NN4 layer from string name
function seekLayer(doc, name)
{
    var theObj;
    for (var i = 0; i < doc.layers.length; i++)
    {
        if (doc.layers[i].name == name)
		{
            theObj = doc.layers[i];
            break;
        }

        // dive into nested layers if necessary
        if (doc.layers[i].document.layers.length > 0)
		{
            theObj = seekLayer(document.layers[i].document, name);
        }
    }
    return theObj;
}

function parentNode(elem)
{
	if( elem.parentElement )
	{
		return elem.parentElement;
	}
	
	if( elem.parentNode )
	{
		return elem.parentNode;
	}

	return null;
}

function contains(lookWhere,lookFor)
{
	if( lookWhere == null || lookFor == null )
	{
		return false;
	}
	
/*	if( lookWhere.contains )
	{
		return lookWhere.contains( lookFor );
	}
	else	*/
	{
		var parent = parentNode( lookFor );
		
		while( parent )
		{
			if( parent == lookWhere )
			{
				return true;
			}
			
			parent = parentNode( parent );
		}
	}
	
	return false;
}

// Convert object name string or object reference
// into a valid element object reference
function getRawObject(obj)
{
    var theObj;
    if (typeof obj == "string")
    {
        if (isW3C)
		{
			theObj = document.getElementById(obj);
		}
		else if (isIE4)
		{
			theObj = document.all(obj);
		}
		else if (isNN4)
		{
			theObj = seekLayer(document, obj);
		}
    } 
    else
    {
        // pass through object reference
        theObj = obj;
    }
    return theObj;
}

// Convert object name string or object reference
// into a valid style (or NN4 layer) reference
function getObject(obj)
{
    var theObj = getRawObject(obj);
    if (theObj && isCSS)
    {
        theObj = theObj.style;
    }
    return theObj;
}

function getObjectsByTag(tag)
{
	if( document.getElementsByTagName )
	{
		return document.getElementsByTagName(tag);
	}
	else if( document.all )
	{
		return document.all.tags(tag);
	}

	return null;
}

// Submenu get the element an event refers to 
function eventToElement( evt )
{
	var elem = null;
	
	if( evt.target )
	{
		elem = evt.target;
	}
	else if( evt.toElement )
	{
		elem = evt.toElement;
	}
	
	if( elem && elem.nodeName == "#text" )
	{
		elem = elem.parentNode;
	}
	
	return elem;
}

// Set the visibility of an object to visible
function show(obj)
{
    var theObj = getObject(obj);
    if (theObj)
    {
        theObj.visibility = "visible";
    }
}

// Set the visibility of an object to hidden
function hide(obj)
{
    var theObj = getObject(obj);
    if (theObj)
    {
        theObj.visibility = "hidden";
    }
}

// Set the visibility of an object to hidden
function isVisible(obj)
{
    var theObj = getObject(obj);
    return (theObj) ? ( theObj.visibility == "visible" ) : false;
}

// Position an object at a specific pixel coordinate
function shiftTo(obj, x, y) 
{
    var theObj = getObject(obj);
    if (theObj) 
    {
        if (isCSS) 
        {
            // equalize incorrect numeric value type
            var units = (typeof theObj.left == "string") ? "px" : 0 
            theObj.left = x + units;
            theObj.top = y + units;
        }
        else if (isNN4) 
        {
            theObj.moveTo(x,y)
        }
    }
}

// Retrieve the x coordinate of a positionable object
function getObjectLeft(obj) 
{
    var elem = getRawObject(obj);
    var result = 0;
    if (document.defaultView)
    {
        var style = document.defaultView;
        var cssDecl = style.getComputedStyle(elem, "");
        result = cssDecl.getPropertyValue("left");
    }
    else if (elem.currentStyle)
    {
        result = elem.currentStyle.left;
    }
    else if (elem.style)
    {
        result = elem.style.left;
    }
    else if (isNN4)
    {
        result = elem.left;
    }
    return parseInt(result);
}

// Retrieve the y coordinate of a positionable object
function getObjectTop(obj) 
{
    var elem = getRawObject(obj);
    var result = 0;
    if (document.defaultView)
    {
        var style = document.defaultView;
        var cssDecl = style.getComputedStyle(elem, "");
        result = cssDecl.getPropertyValue("top");
    }
    else if (elem.currentStyle)
    {
        result = elem.currentStyle.top;
    }
    else if (elem.style)
    {
        result = elem.style.top;
    }
    else if (isNN4)
    {
        result = elem.top;
    }
    return parseInt(result);
}

// Retrieve the rendered width of an element
function getObjectWidth(obj) 
{
    var elem = getRawObject(obj);
    var result = 0;
    if (elem.offsetWidth)
    {
        result = elem.offsetWidth;
    }
    else if (elem.clip && elem.clip.width)
    {
        result = elem.clip.width;
    }
    else if (elem.style && elem.style.pixelWidth)
    {
        result = elem.style.pixelWidth;
    }
    return parseInt(result);
}

// Retrieve the rendered height of an element
function getObjectHeight(obj) 
{
    var elem = getRawObject(obj);
    var result = 0;
    if (elem.offsetHeight)
    {
        result = elem.offsetHeight;
    }
    else if (elem.clip && elem.clip.height)
    {
        result = elem.clip.height;
    }
    else if (elem.style && elem.style.pixelHeight)
    {
        result = elem.style.pixelHeight;
    }
    return parseInt(result);
}

// Return the available content width space in browser window
function getInsideWindowWidth() 
{
    if (window.innerWidth)
    {
        return window.innerWidth;       
    }
    else if ( isIE6CSS )
    {
        // measure the html element's clientWidth     
        return document.body.parentElement.clientWidth;
    }
    else if (document.body && document.body.clientWidth)
    {	
        return document.body.clientWidth;
    }  
    return 0;
}

// Return the available content height space in browser window
function getInsideWindowHeight() 
{
    if( window.innerHeight )
    {    
        return window.innerHeight;
    }
    else if( isIE6CSS )
    {
        // measure the html element's clientHeight
        return document.body.parentElement.clientHeight
    }
    else if (document.body && document.body.clientHeight)
    {
        return document.body.clientHeight;
    }
    return 0;
}
// Open a popup window


// -------------------------------------------------------------
// menu builder functions
// -------------------------------------------------------------

var m_header		= null;
var m_menu			= null;
var m_subMenu		= null;
var m_subMenuEvtCtl	= null;
var m_hilite		= null;
var m_colorDepth	= 0;
var m_menuArrows	= true;

var m_stdEmpty		= "";
var m_stdOffImg;


function menuGoto( url )
{
	if ( m_anchorClicked )
	{
		return;
	}
	m_anchorClicked	= true;
	hideMenus();
	if ( url != null && url.indexOf( "javascript" ) > -1 )
	{
		eval ( url );
	}
	else
	{
		document.location = url;
	}
	if( document.event != null )
	{
		document.event.cancelBubble = true;
	}
	
	return false;
}

function menuWinOpen( url )
{
	hideMenus();
	
	window.open( url );
	
	return false;
}


function renderMenuStripSep()
{
	document.write( "<td class=\"mhsep\" width=\"2\" nowrap=\"1\"></td>" );
}

function renderMenuStrip()
{
	var menuHeaderID;

	if( isIE6 )
	{
		bodyTag.style.behavior	= "url(#default#clientCaps)";
		m_colorDepth			= bodyTag.colorDepth;
	}

	spacing = "&nbsp;&nbsp;";
	if( m_menuBar.length < 4 )
	{
		spacing += spacing;
	}

	var presep = ( m_menuBar.length <= 3 );


	
	for( n = 0; n < m_menuBar.length; n++ )
	{
		if( n > 0 )
		{
			renderMenuStripSep();
		}
		
		menuHeaderID = m_menuBar[n].Id + "Hdr";

		if( isDHTML )
		{
			document.write( "<td style=\"padding-right:5px;\" class=\"menuMainItem\"  id=\"" + menuHeaderID + "\" onmouseover=\"showMenu(event, \'" + menuHeaderID + "\', \'" + m_menuBar[n].Id + "\' )\" onmouseout=\"resetMenu(event)\" onclick=\"" );
			
			if( m_menuBar[n].TargetHtml )
			{
				document.write( "return menuWinOpen( \'" + m_menuBar[n].Href + "\' )" );
			}
			else
			{
				document.write( "return menuGoto( \'" + m_menuBar[n].Href + "\' )" );
			}

			document.write( "\" align=\"center\" style=\"cursor:pointer\" nowrap=\"1\">" );
			document.write( "<a  style='color:white' href=\"" + m_menuBar[n].Href + "\" class=\"menuMainItem\" style=\"text-decoration:none\"" + this.TargetHtml + ">" + spacing + m_menuBar[n].Text  );
			
			if( m_menuBar[n].OffDell )
			{
				document.write( m_stdOffImg );
			}
			
			if( m_menuArrows )
			{
				document.write( "<img src='/images2/menu-top-arrow.gif' height='7' width='15' alt='' border='0' />" );
				
				if( presep )
				{
					document.write( spacing );
				}
			}		
			
			document.write( "</a></td>" );
		}

	}
}

function renderItems( menu, z )
{
	renderSubItems( menu, z, "menuItem" );
}

function renderSubItems( menu, z, css )
{
	( css == "menuItem" )
	{
		document.write( "<table background='/menu-bg.gif' border='0' bgcolor='#000000' class='menu' width='175' id='" + menu.Id + "' cellspacing='0' cellpadding='3'  style='position:absolute;top:0;left:0;z-index:" + z + ";visibility:hidden' onmouseout='resetMenu(event)' summary='Table for the " + menu.Id + "'>" );
	}


	for( var n = 0; n < menu.MenuItems.length; n++ )
	{
		var	item = menu.MenuItems[n];
	    //where is menusep class
		if( item.IsSeparator )
		{
			document.write( "<tr ><td class=\"menuSep\" background=\"/images2/menu_isep.gif\"><img src=\"/images2/spacer.gif\" height=\"2\" width=\"1\" alt=\"\" /></td></tr>" );
		}
		else if( item.IsCaption )
		{
			if( n > 0 )
			{
				document.write( "<tr ><td class=\"menuSep\" background=\"/images2/menu_isep.gif\"><img src=\"/images2/spacer.gif\" height=\"2\" width=\"1\" alt=\"\" /></td></tr>" );
			}
			
			document.write( "<tr ><td class=\"menuCaption\"><center><i>" + item.Text + "</i></center></td></tr>" );
			document.write( "<tr ><td class=\"menuSep\" background=\"/images2/menu_isep.gif\"><img src=\"images2/spacer.gif\" height=\"2\" width=\"1\" alt=\"\" /></td></tr>" );
		}
		else if( item.MenuItems )
		{
			document.write( "<tr ><td nowrap=\"1\" class=\"" + css + "\" onmouseover=\"showSubMenu(event, '" + item.Id + "')\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" class=\"subContainer\"><tr><td nowrap=\"1\"><a href=\"" + item.Href + "\" class=\"menuItem\" style=\"text-decoration:none\"" + item.TargetHtml + ">" + item.Text + "</a></td><td nowrap=\"1\" align=\"right\" valign=\"middle\"><img src=/images2/menu-sub-arrow.gif height=\"7\" width=\"16\" alt=\"\" /></td></tr></table></td></tr>" );
		}
		else
		{
			document.write( "<tr><td nowrap=\"1\" class=\"" + css + "\" onmouseover=\"showSubMenu(event, null )\" onclick=\"" );
			
			if( item.TargetHtml )
			{
				document.write( "return menuWinOpen( \'" + item.Href + "\' )" );
			}
			else
			{
				document.write( "return menuGoto( \'" + item.Href + "\' )" );
			}
			
			document.write( "\"><a class=\"menuItem\" style=\"text-decoration:none\"" + item.TargetHtml + ">" + item.Text );
			
			if( item.OffDell )
			{
				document.write( m_stdOffImg );
			}
			
			document.write( "</a></td></tr>" );
		}
	}
	
	document.write( "</table>" );

	for( var n = 0; n < menu.MenuItems.length; n++ )
	{
		var	item = menu.MenuItems[n];
		
		if( item.MenuItems )
		{
			renderSubItems( item, z + 1, "menuSubItem" );
		}
	}
}

function menuRef( id, text, href, items, target )
{
	this.Id				= id;
	this.Text			= text;
	this.Href			= mhFixupLink( href, "" );
	this.IsSeparator	= false;
	this.IsCaption		= false;
	this.MenuItems		= items;

	this.OffDell		= false;
	this.TargetHtml		= m_stdEmpty;
}

function menuItem( text, href, target )
{
	this.Text			= text;
	this.Href			= mhFixupLink( href, "" );
	this.IsSeparator	= false;
	this.IsCaption		= false;
	this.MenuItems		= null;

	this.OffDell		= false;
	this.TargetHtml		= m_stdEmpty;

}

function menuSep()
{
	this.IsSeparator	= true;
}

// -------------------------------------------------------------
// menu display/hiding functions
// -------------------------------------------------------------

function clearReset()
{
	if( resetsub )
	{
		clearTimeout( resetsub );
		resetsub = null;
	}
	if( resetmain )
	{
		clearTimeout( resetmain );
		resetmain = null;
	}
	if( resetmenu )
	{
		clearTimeout( resetmenu );
		resetmenu = null;
	}
}

function showSubMenu( evt, menuID )
{
	if( resetmenu )
	{
		clearTimeout( resetmenu );
		resetmenu = null;		
	}
	if( !isIE6 )
	{
		clearTimeout( resetsub );
		resetsub = null;
	}
	
	if( menuID != null )
	{
		if( resetsub && isIE6 )
		{
			if( resetmain )
			{
				clearTimeout( resetmain );
				resetmain = null;
			}
			tempEvent = document.createEventObject( evt );
			resetmain = setTimeout( "showSubMenuDelay( '" + menuID + "' )", resetTime );
		}
		else
		{
			showSubMenuNow( evt, menuID );
		}
	}
	else
	{
		if( isIE6 && resetsub )
		{
			if( resetmain )
			{
				clearTimeout( resetmain );
				resetmain = null;
			}
			tempEvent = document.createEventObject( evt );
			resetmain = setTimeout( "setHiliteDelay()", resetTime );
		}
	}
}

function showSubMenuDelay( menuID )
{
	showSubMenuNow( tempEvent, menuID );
	setHilite( tempEvent );
}

function showSubMenuNow( evt, menuID )
{
	if( isDHTML )
	{	
		evt			= evt ? evt : event;
		
		var top		= -1;
		var left;
		var currentEle;

		var newMenu = getRawObject( menuID );

		if( m_menu.id == m_menuBar[m_menuBar.length - 1].Id )
		{
			left =  m_header.offsetLeft + m_header.offsetWidth - m_menu.offsetWidth - newMenu.offsetWidth + 5 + document.body.offsetLeft;
		}
		else
		{
			left = m_header.offsetLeft + m_menu.offsetWidth + 3;
		}
		if( subtimerID )
		{
			if( newMenu && newMenu == m_subMenu )
			{
				return;
			}		
		
			clearTimeout( subtimerID );
			subtimerID = null;
		}
	
		if( m_subMenu != null)
		{
			if( m_subMenu == newMenu )
			{
				evt.cancelBubble = true;
				return;
			}
			
			if( isVisible(m_subMenu) )
			{
				hideSubMenu();
			}
		}
		
		if( m_hilite )
		{
			m_hilite.className = "";
			m_hilite = null;
		}
		
		m_subMenuEvtCtl = eventToElement( evt );
		m_subMenu		= newMenu;
		
		currentEle		= getHilite( evt );
			
		rowHeight		= ( ( m_menu.offsetHeight ) / ( m_menu.rows.length ) );

		top			+= m_menu.offsetTop - 1;
		if( currentEle )
		{
			top			+= currentEle.rowIndex * rowHeight;
		}
		shiftTo( m_subMenu, left, top );
	
		if( !isVisible(m_subMenu) )
		{
			subtimerID = setTimeout( "showSubMenuTimed()", 100 );
		}
				
		evt.cancelBubble = true;
	}
}

function showSubMenuTimed()
{
	if( m_subMenu == null )
	{
		return;
	}

	if( isIE6 && m_subMenu.filters && m_colorDepth > 8 )
	{
		m_subMenu.filters.item(0).Apply();
		m_subMenu.filters.item(1).Apply();
	}

	show(m_subMenu);

	if( isIE6 && m_subMenu.filters && m_colorDepth > 8 )
	{
		m_subMenu.filters.item(0).Play();
		m_subMenu.filters.item(1).Play();
	}
}

// defines/shows the current header and menu
//
function showMenu( evt, menuHeaderID, menuID )
{	
	clearReset();
	if( isDHTML )
	{
		evt = evt ? evt : event;

		if( timerID )
		{
			clearTimeout( timerID );
			timerID = null;
		}

		if( subtimerID )
		{
			clearTimeout( subtimerID );
			subtimerID = null;
		}

		timerID = setTimeout( "showMenuTimed( '" + menuHeaderID + "', '" + menuID + "')", 200 );

		evt.cancelBubble = true;
	}
}

function showMenuTimed( menuHeaderID, menuID )
{
	var top		= 0;
	var left	= 0;
	var currentEle;

	var newMenu = getRawObject( menuID );

	if(m_header != null && m_menu != null && m_menu != newMenu)
	{
		if( isVisible(m_menu) )
		{
			hideMenu();
			showSelectCtrl();
		}
	}

	m_header			= getRawObject( menuHeaderID );
	m_menu				= newMenu;
	m_header.className	= "menuMainItemSel";
	
	currentEle	= m_header;
		
	// work out the position of the header and its parent elements
	//
	while( currentEle && currentEle.tagName.toLowerCase() != 'body' )
	{
		top			+= currentEle.offsetTop;
		left		+= currentEle.offsetLeft;
		currentEle	 = currentEle.offsetParent;
	}

	top			+= currentEle.offsetTop;
	left		+= currentEle.offsetLeft;
	
	if( menuHeaderID == ( m_menuBar[m_menuBar.length - 1].Id + "Hdr" ) )
	{
		left += m_header.offsetWidth - m_menu.offsetWidth;
	}
	
	// add the width of the header, and width of extra image.
	//
	top += (m_header.offsetHeight);
				
	shiftTo( m_menu, left, top );

	hideSelectCtrl();

	if( !isVisible(m_menu) )
	{
		if( isIE6 && typeof(m_menu.filters) != "undefined" && m_menu.filters && m_colorDepth > 8 )
		{
			m_menu.filters.item(0).Apply();
			m_menu.filters.item(1).Apply();
		}
		
		show(m_menu);

		if( isIE6 && typeof(m_menu.filters) != "undefined" && m_menu.filters && m_colorDepth > 8 )
		{
			m_menu.filters.item(0).Play();
			m_menu.filters.item(1).Play();
		}
	}
}

// Hide the current menu
//
function hideMenu()
{
	if( isDHTML && m_menu )
	{
		hideSubMenu();

		hide(m_menu);
		m_header.className			= "menuMainItem";
		m_menu						= null;
	}
}

function hideSubMenu()
{
	if( isDHTML && m_subMenu )
	{
		hide(m_subMenu);
		m_subMenuEvtCtl				= null;
		m_subMenu					= null;

		clearHilite( m_menu );
	}
	if( resetsub )
	{
		clearTimeout( resetsub );
		resetsub = null;
	}
}

function hideMenus()
{
	if( timerID )
	{
		clearTimeout( timerID );
		timerID = null;
	}
	
	hideMenu();
}

// hide/reset the current menu, but only if we're
// not moving onto the menu itself
//
function resetMenu( evt )
{
	if( !resetsub )
	{
		if( isDHTML )
		{
			evt = evt ? evt : event;

			if( timerID )
			{
				clearTimeout( timerID );
				timerID = null;
			}

			if( m_header != null && m_menu != null )
			{
				var	dest		= eventToElement( evt );
				
				var notSubMenu	= ( m_subMenu != dest && !contains( m_subMenu, dest ) );
				
				// hide the submenu if necessary
				//
				if( m_subMenu && m_subMenuEvtCtl && notSubMenu && m_subMenuEvtCtl != dest && !contains( m_subMenuEvtCtl, dest ) && m_subMenu != dest && !contains( m_subMenu, dest ) )
				{
					if( !resetsub )
					{
						resetsub = setTimeout( "hideSubMenu()", resetTime );
					}	
				}
				
				// proceed if we're not moving onto a menu item
				//
				if( ( !m_subMenu || notSubMenu ) && dest && m_header != dest && !contains( m_header, dest ) && m_menu != dest && !contains( m_menu, dest ) )
				{
					if( !resetsub )
					{
						resetsub = setTimeout( "hideSubMenu()", resetTime );
					}	
					if( !resetmenu )
					{
						resetmenu = setTimeout( "hideMenus()", resetTime);
					}
					m_header.className			= "menuMainItem";

					if( m_hilite )
					{
						m_hilite.className = "";
						m_hilite = null;
					}

					if( !resetsub && !resetmenu )
					{
						m_header							= null;
						m_menu								= null;
						m_hilite							= null;
					}	
					showSelectCtrl();
				}
				// work out what dest highlight
				//
				else if( m_menu || m_subMenu )
				{
					setHilite( evt );
				}

				evt.cancelBubble = true;
			}
		}
	}
}

function setHiliteDelay()
{
	if( typeof(tempEvent) != "undefined" )
	{
		setHilite( tempEvent );
	}
}

function setHilite ( evt )
{
	var hilite = getHilite( evt );
					
	if( hilite )
	{
		if( m_hilite && ( !m_subMenu || contains( m_subMenu, m_hilite ) ) )
		{
			m_hilite.className = "menuSubItem";
			m_hilite = null;
		}

		var content = hilite.innerHTML;
		
		if( content.indexOf( "menuSubItem" ) > 0 )
		{
			m_hilite = hilite;
			m_hilite.className = "menuSubSelRow";
		}
		else if( content.indexOf( "menuItem" ) > 0 )
		{
			m_hilite = hilite;
			m_hilite.className = "menuSelRow";
		}
	}
}

function clearHilite( table )
{
	var	cell, row, count, ix;
	
	count = table.rows.length;
	
	for( ix = 0; ix < count; ix++ )
	{
		table.rows[ix].className = "";
	}
}

function getHilite( evt )
{
	evt			= evt ? evt : event;
	
	var hilite	= null;
	var	to		= eventToElement( evt );
	
	if( to && ( m_menu && contains( m_menu, to ) ) || ( m_subMenu && contains( m_subMenu, to ) ) )
	{
		hilite = to;
		
		while( hilite && hilite.tagName.toLowerCase() != "tr" )
		{
			hilite = parentNode( hilite );
		}
		
		if( hilite )
		{
			var menuTable = parentNode( parentNode( hilite ) );
			
			if( menuTable && menuTable.className && menuTable.className == "subContainer" )
			{
				var container = parentNode( menuTable );
				
				if( container.tagName.toLowerCase() == "td" )
				{
					hilite = parentNode( container );
				}
			}
		}
	}
	
	return hilite;
}

// -------------------------------------------------------------
// HTML workarounds
// -------------------------------------------------------------

// Show SELECT controls (dropdown lists) when menu is hidden
//
function showSelectCtrl()
{
	var obj;
	var tags = getObjectsByTag("select");
	
	for( var i = 0; i <tags.length; i++ )
	{
		obj = tags[i];
		if(obj && obj.offsetParent)
		{
			show(obj);
		}
	}

/*	tags = getObjectsByTag("object");
	
	for( var i = 0; i <tags.length; i++ )
	{
		obj = tags[i];
		if(obj && obj.offsetParent)
		{
			show(obj);
		}
	}	*/
}

// Hide SELECT controls (dropdown lists), otherwise the Select will
// appear on top of the menu (HTML workaround)
//
function hideSelectCtrl()
{
	hideCtrl( getObjectsByTag("select") );
//	hideCtrl( getObjectsByTag("object") );
}

function hideCtrl( tags )
{
	var obj;
	var currentEle;
	var menuHeight;
	var timeout;
	var top			= 0;
	var left		= 0;
	
	for( var i = 0; i < tags.length; i++ )
	{
		obj			= tags[i];
		currentEle	= obj;
	
		while( currentEle && currentEle.tagName.toLowerCase() != 'body' )
		{
			top			+= currentEle.offsetTop;
			left		+= currentEle.offsetLeft;
			currentEle	 = currentEle.offsetParent;
		}

		if(m_menu != null)
		{
			menuHeight = ( m_menu.offsetTop + m_menu.offsetHeight );
			
			if( top < menuHeight )
			{
				if((left < (m_menu.offsetLeft + m_menu.offsetWidth)) && (left + obj.offsetWidth > m_menu.offsetLeft)) 
				{
					hide(obj);
				}
			}
		}

		top		= 0;
		left	= 0;
	}
}

// -------------------------------------------------------------
// client-side masthead
// -------------------------------------------------------------

var m_pnlinks;
var m_crumbs;
var m_mhFixed				= false;
var m_isHome				= false;
var m_isSegHome				= false;
var m_mda					= null;
var m_printLink				= null;
var m_emailLink				= false;
var m_helpLink				= null;
var m_production			= true;
var m_menudef				= "";
var m_avgChW				= 6;

var m_subNavLinksDisplay	= false;
var m_subNavIconsDisplay	= false;
var m_largeFont				= false;
var m_supressSubNav			= false;


function writeMH( phoneTitle, phoneMsg, phoneTariff, segmentTitle, hasLocale, logoLink, pnmsg )
{   
	
	document.writeln ( "<!-- begin masthead -->" );
		
	autoconfig();	

	if ( typeof(m_suppressPrintLink) != "undefined" )
	{
		m_printLink	= null;
	}

	

//	document.write( "<xmp>" );

	m_mhFixed	= true;

	m_stdOffImg = "";

	if( isDHTML )
	{
		for( var n = 0; n < m_menuBar.length; n++ )
		{
			renderItems( m_menuBar[n], 100 );
		}
	}
	

	

	if( document.body )
	{
		document.body.onmouseover	= resetMenu;
		document.body.onmouseout	= resetMenu;
	}
	else
	{
		var bodytags = getObjectsByTag( "body" );
		
		if( bodytags && bodytags.length > 0 )
		{
			bodytags[0].onmouseover	= resetMenu;
			bodytags[0].onmouseout	= resetMenu;
		}
	}
	

	
	// phone strip	
	var phoneMdaWidth = 350;
	
	document.write( "<tr><td>" );	

	document.write( "<table background='/images2/menu-bg.gif' cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">" );
		


	// main section	

		
		// nav strip
		if( typeof(m_menuBar) != "undefined" && m_menuBar && m_menuBar.length > 0 )
		{		
			document.write("<tr class=\"mhpn\"><td>");		
			
			document.write( "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"" + screenWidth + "\" height=\"24\">" );
			
			if( m_menuBar.length < 4 )
			{
				document.write( "<tr class=\"mhpn\"><td align=\"right\">" );
				document.write( "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" height=\"24\"><tr>" );
				renderMenuStripSep();
			}
			else
			{	
				document.write( "<tr class=\"mhpn\"><td>" );
				document.write( "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"" + screenWidth + "\" height=\"24\"><tr>" );
			}
			
			renderMenuStrip();
		
			document.write( "</tr></table></td></tr></table></td></tr>" );		
					
		}
		
	// breadcrumbs and subnav links	
	

	
	document.write("</table>");	
	document.writeln ( "<!-- end masthead -->" );
	
 	//document.write( "</xmp>" );
}


function renderCrumbsNew( forFooter )
{
		document.write( "<td nowrap=\"1\" valign=\"middle\" height=\"20\" class=\"para_crumb_SE\">" + getBackto() + ":&nbsp;" );
		var totalw = 700 - ( getBackto().length * m_avgChW );
		 


		for( var n = 0; n < 2; n++ )
		{
			if( n >= m_crumbs.length )
			{
				break;
			}
			
			
			href = m_crumbs[n].Href;
			


			
			totalw -= crumbWidth( m_crumbs[n].Text );
		}

		var trail = "";


		

		document.write( "</td>" );
		

}


function crumbWidth( crumb )
{
	var text = crumb.replace( m_crumbRegEx1, "" );
	text = text.replace( m_crumbRegEx2, " " );
	
	var hasUnicode = false;
	
	for( n = 0; n < text.length; n++ )
	{
		if( text.charCodeAt( n ) > 0x1000 )
		{
			hasUnicode = true;
			break;
		}
	}
	
	if( hasUnicode )
	{
		return text.length * m_avgChW;
	}
	else
	{
		if( m_largeFont )
		{
			return text.length * 8;
		}
		else
		{
			return text.length * 6;
		}		
	}
}

function mhFixupLink( href, extra )
{
	if( typeof(extra) == "undefined" )
	{
		extra = "";
	}
	
	if( href )
	{
		var anchor		= null;
		var anchorix	= href.indexOf( "#" );
		
		if( anchorix != -1 )
		{
			anchor		= href.substr( anchorix );
			href		= href.substr( 0, anchorix );
		}
		
		if( href.indexOf( "?" ) == -1 )
		{
			extra = "?" + extra.substr( 1 );
		}

		if( href.toLowerCase().indexOf( "javascript:" ) == -1 )
		{
			href += extra;
		}
		else
		{
			start = href.indexOf( "?" );
			
			if( start != -1 )
			{
				ix = href.indexOf( "\'", start );
				
				if( ix == -1 )
				{
					ix = href.indexOf( "\\", start );

					if( ix == -1 )
					{
						ix = href.indexOf( "\"", start );
					}
				}
				
				if( ix != -1 )
				{
					href = href.substr( 0, ix ) + extra + href.substr( ix );
				}
			}
		}
		
		if( anchor )
		{
			href += anchor;
		}
	}
	
	return href;
}

function mhLink( text, href, icon, extra )
{
	href = mhFixupLink( href, extra );

	this.Text			= text;
	this.Href			= href;
	this.Icon			= icon;
}

function addPnLink( text, href, icon )
{
	if( !m_pnlinks )
	{
		m_pnlinks = new Array();
	}
	
	m_pnlinks[m_pnlinks.length] = new mhLink( text, href, icon, "&~ck=pn" );
}

function addCrumb( text, href )
{
	if( !m_crumbs )
	{
		m_crumbs = new Array();
	}
	
	m_crumbs[m_crumbs.length] = new mhLink( text, href, null, "&~ck=bt" );
}

// -------------------------------------------------------------
// client-side footer
// -------------------------------------------------------------


function Bandwidth()
{
}


function fixupFragHeight()
{
	var tags = getObjectsByTag("tr");
	
	for( var i = 0; i < tags.length; i++ )
	{
		var tr = tags[i];
		var className = tr.className;
		
		if( className == "rowsolid" || className == "rowlight" )
		{
			var h = getObjectHeight( tr );
			
			if( h > 29 )
			{
				tr.className = className + "2";
			}
		}
	}
}

function ResizePBarFrame ( )
	{
		return;
	}


// -------------------------------------------------------------
// end of common.js
// -------------------------------------------------------------
