var marryExpandableNavbarIds = new Array();  // Holds IDs of expanding navbar items
var mintNavbarDelay = 500;
var mintTimeInterval = -1;
var mobjNavbarElement = new Object;
var mstrNavbarHtmlBuffer = "";
var mintArrayIdx = 0;
var mintNavbarHeight = 22;
var mstrSubmenuMarginColor = "#6C3404";

mobjNavbarElement = null;

// determine the width of the page
if (document.body.offsetWidth == 0)
{
	mintPageWidth = window.innerWidth;
}
else
{
	mintPageWidth = document.body.offsetWidth;
}

//function alertSize() {
//  var myWidth = 0, myHeight = 0;
//  if( typeof( window.innerWidth ) == 'number' ) {
//    //Non-IE
//    myWidth = window.innerWidth;
//    myHeight = window.innerHeight;
//  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
//    //IE 6+ in 'standards compliant mode'
//    myWidth = document.documentElement.clientWidth;
//    myHeight = document.documentElement.clientHeight;
//  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
//    //IE 4 compatible
//    myWidth = document.body.clientWidth;
//    myHeight = document.body.clientHeight;
//  }
//  window.alert( 'Width = ' + myWidth );
//  window.alert( 'Height = ' + myHeight );
//}


/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Name       :  getAvailableWidth
' Purpose    :  
' Parameters :  none.
' Return val :  none.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/
function getAvailableWidth()
{
    var myWidth = 0;
    if (typeof(window.innerWidth) == 'number')
    {
        //Non-IE
        myWidth = window.innerWidth;
    }
    else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
    {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
    }
    else if (document.body && (document.body.clientWidth || document.body.clientHeight))
    {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
    }
    return myWidth;
}

var mintDivWidth = 800;  // this value MUST match the width given to the parent <DIV> in the HTML
var mintTopOffset = 164;
var mintAvailWidth = getAvailableWidth();
//alert("available width = " + mintAvailWidth);
var mintLeftOffset = (mintAvailWidth - mintDivWidth) / 2;
//alert("left offset = " + mintLeftOffset);


/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Name       :  displayNavbar
' Purpose    :  
' Parameters :  navbar	- .
' Return val :  none.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/
function displayNavbar(navbar)
{
	var i;
	var strSubNavbarId = "";
	var arryNavbar = new Array();
	var arryNavbarElement = new Array();

	// Clear the time interval
	clearTimeout(mintTimeInterval);

//	if (document.thisForm)
//		document.thisForm.style.visibility = "hidden"; 
//	if (document.thisForm2)
//		document.thisForm2.style.visibility = "hidden"; 

	arryNavbar = navbar.id.split("_");
	if (mobjNavbarElement != null)
	{
		arryNavbarElement = mobjNavbarElement.id.split("_");
		for (i=1; i<arryNavbarElement.length; i++)
		{
			strSubNavbarId += "_" + arryNavbarElement[i];
			if (arryNavbarElement[i] != arryNavbar[i])
			{
				if (document.getElementById("subNavbar" + strSubNavbarId) != null)
				{
					document.getElementById("subNavbar" + strSubNavbarId).style.visibility = "hidden";
				}
			}
		}			
	}
	mobjNavbarElement = navbar;
	strSubNavbarId = "subNavbar";
	for (i=1; i<arryNavbar.length; i++)
	{
		strSubNavbarId += "_" + arryNavbar[i];
	}

	if (document.getElementById(strSubNavbarId) != null)
	{
		document.getElementById(strSubNavbarId).style.visibility = "visible";
	}
}


/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Name       :  clearNavbar
' Purpose    :  
' Parameters :  none.
' Return val :  none.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/
function clearNavbar()
{
	var i;
	var strSubNavbarId = "";
	var arryNavbarElement = new Array();

//	if (document.thisForm)
//		document.thisForm.style.visibility = "visible"; 
//	if (document.thisForm2)
//		document.thisForm2.style.visibility = "visible"; 

	if (mobjNavbarElement != null)
	{
		arryNavbarElement = mobjNavbarElement.id.split("_");

		for (i=1; i<arryNavbarElement.length; i++)
		{
			strSubNavbarId += "_" + arryNavbarElement[i];
			if (document.getElementById("subNavbar" + strSubNavbarId) != null)
				document.getElementById("subNavbar" + strSubNavbarId).style.visibility = "hidden";
		}
		mobjNavbarElement = null;
	}
}


/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Name       :  runNavbar
' Purpose    :  
' Parameters :  strHref	- .
' Return val :  none.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/
function runNavbar(strHref)
{
	var newbrowser = strHref.indexOf('http://');

	if (newbrowser == -1)
	{
		location.href = strHref;
	}
	else
	{
		window.open(strHref);
	}
}


/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Name       :  getTop
' Purpose    :  Get the top of the subNavbar
' Parameters :  strSubNavbarId	- .
' Return val :  none.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/
function getTop(strSubNavbarId)
{
	var arryTag = new Array();
        var intHeight = 0;

	arryTag = strSubNavbarId.split("_");
	if (arryTag.length > 2)
	{
		arryTag = arryTag.slice(0, -1);

		itemRef = document.getElementById("filler" + strSubNavbarId);

	        while (itemRef.tagName != "BODY")
	        {
			intHeight += itemRef.offsetTop;
			itemRef = itemRef.offsetParent;
	        }
        	return intHeight;
	}
	//return (document.getElementById("navbar").offsetTop + document.getElementById("navbarKey" + strSubNavbarId).offsetHeight);
	return (mintTopOffset + document.getElementById("navbarKey" + strSubNavbarId).offsetHeight);
}


/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Name       :  getLeft
' Purpose    :  Get the left of the subNavbar
' Parameters :  strSubNavbarId	- .
' Return val :  none.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/
function getLeft(strSubNavbarId)
{
	var arryTag = new Array();

	arryTag = strSubNavbarId.split("_");
	if (arryTag.length > 2)
	{
		arryTag = arryTag.slice(0, -1);
		return (document.getElementById("subNavbar" + arryTag.join("_")).offsetLeft + document.getElementById("navbarKey" + strSubNavbarId).offsetWidth);
	}
	//return (document.getElementById("navbar").offsetLeft + document.getElementById("navbarKey" + strSubNavbarId).offsetLeft);
	return (mintLeftOffset + document.getElementById("navbarKey" + strSubNavbarId).offsetLeft);
}


/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Name       :  buildNavbarHtml
' Purpose    :  Build the navbar, based upon the data provided at
'		        the top of the file.
' Parameters :  strImagePath.
' Return val :  none.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/
function buildNavbarHtml(strImagePath)
{
	var i = 0;

	//mstrNavbarHtmlBuffer = "<table style=\"position:absolute;z-index:100;padding:1px;\" id=\"navbar\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr>";
	//mstrNavbarHtmlBuffer = "<table style=\"position:absolute;z-index:100;padding:1px;left:50px;top:164px;\" id=\"navbarTable\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr>";
	mstrNavbarHtmlBuffer = "<table style=\"position:absolute;z-index:100;padding:1px;left:" + mintLeftOffset + "px;top:" + mintTopOffset + "px;\" id=\"navbar\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr>";
	while (eval("typeof(navbarKey_" + ++i + ") != \"undefined\""))  //increment value of i prior to evaluation
	{
		mstrNavbarHtmlBuffer += "<td id=\"navbarKey_" + i + "\" class=\"Navbar\" align=\"center\" valign=\"middle\" height=\"" + mintNavbarHeight + "px\" onmouseover=\"displayNavbar(this); this.className='NavbarOn'\" onmouseout=\"mintTimeInterval=setTimeout('clearNavbar()', mintNavbarDelay); this.className='Navbar'\"";
		// If the navbar item has sub-items, add the onclick method to it.
		if (eval("typeof(navbarVal_" + i + ") != \"undefined\""))
		{
			mstrNavbarHtmlBuffer += " onclick=\"runNavbar('" + eval("navbarVal_" + i) + "')\"><img src=\"" + strImagePath + "filler.gif\" id=\"filler_" + i + "\" align=\"top\" width=\"1\" height=\"1\" border=\"0\" alt=\"\">";
		}
		else
		{
			mstrNavbarHtmlBuffer += ">";
		}
		mstrNavbarHtmlBuffer += eval("navbarKey_" + i) + "</td>";
		// If the navbar item is expandable, store its ID in the array
		if (eval("typeof(navbarKey_" + i + "_1) != \"undefined\""))
		{
			marryExpandableNavbarIds[mintArrayIdx] = "_" + i;
			mintArrayIdx++;
		}
	}
	mstrNavbarHtmlBuffer += "</tr></table>";
//alert(mstrNavbarHtmlBuffer);

	document.write(mstrNavbarHtmlBuffer);
}


/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Name       :  buildSubNavbarHtml
' Purpose    :  Build each sub navbar, based upon the data provided
'		        at the top of the file.
' Parameters :  strImagePath
' Return val :  none.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/
function buildSubNavbarHtml(strImagePath)
{
	var i;
	var j;
	var strSubNavbarId = "";

	for (i=0; typeof(marryExpandableNavbarIds[i])!="undefined"; i++)
	{
		strSubNavbarId = marryExpandableNavbarIds[i];
		j = 0;

		mstrNavbarHtmlBuffer = "";
		mstrNavbarHtmlBuffer += "<table style=\"position:absolute;visibility:hidden;z-index:100;\" id=\"subNavbar" + strSubNavbarId + "\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
		mstrNavbarHtmlBuffer += "<tr><td style=\"padding: 0px\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td width=\"100%\" bgcolor=\"" + mstrSubmenuMarginColor + "\"><img src=\"" + strImagePath + "filler.gif\" width=\"100%\" height=\"1\" border=\"0\"></td><td width=\"10\"><img src=\"" + strImagePath + "navbarUpperRight.gif\" width=\"10\" height=\"10\" border=\"0\"></td></tr></table></td></tr>";
		while (eval("typeof(navbarKey" + strSubNavbarId + "_" + ++j + ") != \"undefined\""))
		{
			mstrNavbarHtmlBuffer += "<tr><td id=\"navbarKey" + strSubNavbarId + "_" + j + "\" class=\"SubNavbar\" onmouseover=\"displayNavbar(this); this.className='SubNavbarOn'\" onmouseout=\"mintTimeInterval=setTimeout('clearNavbar()', mintNavbarDelay); this.className='SubNavbar'\"";
			// If the sub-navbar item has a navbar value, add the link to the item.
			if (eval("typeof(navbarVal" + strSubNavbarId + "_" + j + ") != \"undefined\""))
			{
				mstrNavbarHtmlBuffer += " onclick=\"runNavbar('" + eval("navbarVal" + strSubNavbarId + "_" + j) +"')\">&nbsp;&nbsp;<img src=\"" + strImagePath + "filler.gif\" id=\"filler" + strSubNavbarId + "_" + j + "\" align=\"top\" width=\"1\" height=\"1\" border=\"0\" alt=\"\">";
			}
			else
			{
				mstrNavbarHtmlBuffer += ">";
			}
			mstrNavbarHtmlBuffer += eval("navbarKey" + strSubNavbarId + "_" + j) + "&nbsp;&nbsp;</td></tr>";
			// If the sub-item is expandable, store its ID in the array
			if (eval("typeof(navbarKey" + strSubNavbarId + "_" + j + "_1) != \"undefined\""))
			{
				marryExpandableNavbarIds[mintArrayIdx] = strSubNavbarId + "_" + j;
				mintArrayIdx++;
			}
		}
		mstrNavbarHtmlBuffer += "<tr><td style=\"padding: 0px\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td width=\"10\"><img src=\"" + strImagePath + "navbarLowerLeft.gif\" width=\"10\" height=\"10\" border=\"0\"></td><td width=\"100%\" bgcolor=\"" + mstrSubmenuMarginColor + "\"><img src=\"" + strImagePath + "filler.gif\" width=\"100%\" height=\"1\" border=\"0\"></td><td width=\"10\"><img src=\"" + strImagePath + "navbarLowerRight.gif\" width=\"10\" height=\"10\" border=\"0\"></td></tr></table></td></tr></table>";

		document.write(mstrNavbarHtmlBuffer);
//alert(mstrNavbarHtmlBuffer);

		// set the left and top positions of the sub-navbar table
		document.getElementById("subNavbar" + strSubNavbarId).style.top = getTop(strSubNavbarId);
		document.getElementById("subNavbar" + strSubNavbarId).style.left = getLeft(strSubNavbarId);

		// if the sub-navbar is outside the browser window, adjust its position
		var subMenuRight = document.getElementById("subNavbar" + strSubNavbarId).offsetLeft + document.getElementById("subNavbar" + strSubNavbarId).offsetWidth;
		if (subMenuRight > mintPageWidth)
		{
			document.getElementById("subNavbar" + strSubNavbarId).style.left = document.getElementById("subNavbar" + strSubNavbarId).offsetLeft - (subMenuRight - mintPageWidth);
		}
	}
}