/*==============================================================
Dynanic HTML Menus (Layers)
(c) 2003 Antics Online, Inc. http://antics.com
Updated 4/21/03
==============================================================*/

//************************************************
//  Define Constants
//************************************************
//var kBaseURL = "http://resumix.yahoo.com/";
var kBaseURL = "http://www.viviente.com/resumix/website/";	// For development

var kMenuColor = "#EDEDDD";	// Background color for the menu drop down containers 
var kMenuBorderColor = "#BFB592"; // Color for the menu's border
var kMenuFontColor = "#550066"; // Color of text for menu items
var kMenuFontColorHilite = "#FF1522"; // Highlight (rollover) color of text for menu items
var kMenuItemHeight = 22; // The height of menu items (Nav 4 Only)

var kHeaderColor = "#D4CCAA";	// Color of header in which menubar appears
var kHeaderHeight = 20;	// Height of header in which menubar appears
var kContentTop = 222;	// Where the top of the page content appears (under header)

var kMenubarHeight = 20; // The height of menubar (menu names)
var kMenubarWidth = 439; // Width of menubar
var kMenubarTop = 57;	// Where top of menubar appears within header
var kMenubarLeft = 205; // Where left of menubar appears within header
var kMenubarSpace = 0; // The space between menubar items

// The HTML used to indicate a Sub Menu item
var kSubMenuHTML = "<img src=\"" + kBaseURL + "images/submenu_arrow.gif\" width=\"14\" height=\"14\" alt=\"\" border=\"0\" />";

//************************************************
//  Define Global Variables
//************************************************
var IE40 = false;
var IE45 = false;
var NS6 = false;
var NS7 = false;

var gMacintosh = false;
var gWindows = false;
var gSolaris = false;

var gHasLayers = (document.layers);
var gHasAll = (document.all);
var gHasElement = (document.getElementById);

var gBrowserVer = navigator.appVersion;
var gUserAgent = navigator.userAgent;

var gPageName = "";
var gHomePage = false;
var gImgSelected=false;
var gSubNavWritten="";

var undefined;
var gActiveTopNav;
var gActiveSubNav;
var gChildWindow = null;
var gMenuIndex = 0;		// Which main menu item is selected


//************************************************
//  Define Menu Data
//************************************************

// Indices used to access items in the menubarData array
var kTopMenuCount = 6;	// Total number of menus (menubar items) 
var kMenuURL = 0;
var kItemImage = 1;
var kMenuNameWidth = 2;
var kMenuNameHeight = 3;
var kMenuAltTag = 4;
var kMenuWidth = 5;
var kMenuPagePict = 6;
var kArrayItems = 7;
var kMaxMenuWidth = 200;

var menubarData = new Array(
	"company.html", "images/menu_company_reg.gif", "63", kMenubarHeight, "Company", 160, "images/hed_photo_company.jpg",
	"solutions.html", "images/menu_solutions_reg.gif", "63", kMenubarHeight, "Solutions", 200, "images/hed_photo_company.jpg",
	"customers.html", "images/menu_customers_reg.gif", "73", kMenubarHeight, "Customers", 160, "images/hed_photo_company.jpg",
	"news.html", "images/menu_news_reg.gif", "95", kMenubarHeight, "News & Events", 180, "images/hed_photo_company.jpg",
	"resources.html", "images/menu_resources_reg.gif", "73", kMenubarHeight, "Resources", 160, "images/hed_photo_company.jpg",
	"contact.html", "images/menu_contact_reg.gif", "72", kMenubarHeight, "Contact Us", 200, "images/hed_photo_company.jpg"
);

//  Indices used to access items in the individual menuData arrays 
var kMenuItemName = 0; // The menu item name
var kMenuItemURL = 1; // The URL for the menu item
var kMenuItemIsSubNav = 2; // True if the item is sub navigation
var kMenuDataItems = 3;  // Total number of array fields for each item
var kMenuFirstItem = 1; // Set = 1 to hide first item in menu but not subnav; Set = 0 to show all items in menu

// Company
var menuData0 = new Array(
	"Home", "index.html", false,
	"About Us", "company.html", false,
	"Our Beliefs", "beliefs.html", false,
	"Government Solutions", "government.html", false,
	"Management Team", "management.html", false,
	"Contact Us", "contact.html",  false
);

// Solutions
var menuData1 = new Array(
	"Home", "index.html", false,
	"Our Solutions", "solutions.html", false,
	"Hiring Gateway", "gateway.html", false,
	"Hiring Gateway Tour",  "javascript:openPopup(\'flash/index.html\', 600, 400);", true,
	"Candidate Solutions", "candidate.html", false,
	"Relationship Manager", "relationship.html", true,
	"Profile Builder", "builder.html", true,
	"Business Optimization Solutions", "optimization.html", false,
	"Integration Solutions", "integration.html", false
);

// Customers
var menuData2 = new Array(
	"Home", "index.html", false,
	"Our Customers", "customers.html", false,
	"Case Studies", "casestudies.html", false,
	"ChevronTexaco", "chevron.html", true,
	"NVIDIA", "nvidia.html", true,
	"Customer Login", "https://supportweb.resumix.com/", false
);

// News & Events
var menuData3 = new Array(
	"Home", "index.html", false,
	"Yahoo! Resumix in the News", "news.html", false,
	"Press Releases", "press.html", false,
	"Events", "events.html", false
);

// Resources
var menuData4 = new Array(
	"Home", "index.html", false,
	"Industry Resources", "resources.html", false,
	"Reading List", "reading.html" , false
);

// Contact Us
var menuData5 = new Array(
	//"Home", "index.html", false
);

//************************************************
//  Write Styles Customized For Each Platform
//************************************************
function writeStyle() {
	document.open();
	document.writeln('<style type="text/css">');
	
	if( gHasLayers ) { // Navigator 4
		document.writeln(".netMenu { background-color: " + kMenuColor + "; }");
		document.writeln(".dhtmlNav {padding-left:0; cursor:hand; background-color: " + kMenuColor + ";}");
		document.writeln(".menuFonts {font-size:12px; padding:0px; text-decoration:none; color: " + kMenuFontColor + "; }");
		document.writeln(".menuFontsHilite {font-size:12px; padding:0px; text-decoration:none; color: " + kMenuFontColorHilite + "; }");
	}
	else { // IE and Navigator 6 and 7
	
		document.writeln(".dropDownContainer {position:absolute; background-color: " + kMenuColor + "; border:1 solid " + kMenuBorderColor + ";}");
		document.writeln(".navImage {position:relative; top:0; left:0; margin-left:" + kMenubarSpace + "; visibility:visible;}");
		
		if( NS6 || NS7 ) {
			document.writeln(".dhtmlNav {font-size:12px; padding:2px; position:relative; cursor:pointer; left:0; text-align:left;}");
			document.writeln("#menuBar {position:absolute; z-index:0; top:" + kMenubarTop + "; left:0; cursor:pointer; }");				  
		}
		else {
			document.writeln(".dhtmlNav {font-size:12px; padding:2px; position:relative; cursor:hand; left:0; text-align:left;}");
			document.writeln("#menuBar {position:absolute; z-index:0; top:" + kMenubarTop + "; left:0; cursor:hand; }");				  
		}

		if( IE40 || IE45 ) {
			document.writeln("#globalNav {position:absolute; top:0; left:0; height:" + kHeaderHeight + "; visibility:hidden; text-align:left; z-index:1; background-color: " + kHeaderColor +";}");
		}
		else {
			document.writeln("#globalNav {position:absolute; top:0; left:0; height:" + kHeaderHeight + "; visibility:visible; text-align:left; background-color: " + kHeaderColor +";}");
		}
	}			  
	
	document.writeln('</style>');
	document.close();
}

//************************************************
//  The fun starts here
//************************************************

initVars();
writeStyle();

function writeMenus() {
	document.open();
	document.write('<div id="globalNav" name="globalNav">');
	
	if( gHasLayers ) { // Netscape 4
		 initMenus();
		document.writeln('<layer id="topNav" z-index="0" top="' + kMenubarTop + '" left="' + kMenubarLeft + '" height="' + kMenubarHeight + '" width="' + kMenubarWidth + '" visibility="hide" bgcolor="' + kHeaderColor + '">');
		writeMenubar();
		document.writeln("</layer>");
		showLayers();
	}
	else if( gHasElement || gHasAll ) {	// IE, Netscape 6 & 7
		showDiv();
		document.writeln("<div id='menuBar'>")
		initMenus();
		writeMenubar();
		document.writeln("</div>")
	}
	
	writeHeader();
	document.writeln('</div>');
	writeSpacer();
	document.close();
}

//************************************************
//  Initializing Code
//************************************************

function initVars() {
	if( !gHasAll && gHasElement ) // this test is positive for NS7 also
		NS6 = true;
	if( gUserAgent.indexOf("Netscape/7") >= 0 )
		NS7 = true;
	if( gBrowserVer.indexOf("MSIE 4.0") >= 0 )
		IE40 = true;
	if( gBrowserVer.indexOf("MSIE 4.5") >= 0 )
		IE45 = true;
			
	if( navigator.platform.indexOf("Mac") >= 0 )
		gMacintosh = true;
	if( navigator.platform.indexOf("Win") >= 0 )
		gWindows = true;
	if( navigator.platform.indexOf("Sun") >= 0 )
		gSolaris = true;
		
	if( (top != self.parent) || (top != self) ) {
		parent.location = self.location.href;
	}
	
	gPageName = currentPageName(); // Set the current page name
	
	var homePageName = parseHref(cleanURL(menuData0[0 * kMenuDataItems + kMenuItemURL]));
		if( gPageName == homePageName || gPageName == parseHref(kBaseURL) )
		gHomePage = true;
}

function initMenus() { 
	var tdID = 0;	// The ID for each item in each menu
	for( var i = 0; i < kTopMenuCount; i++ )  {  	
		if( gHasElement || gHasAll ) {	// if IE or NS6 or NS 7
			tdID = writeMenuContainer(i, tdID);
		}
		else if (gHasLayers) {	// if NS<6
			writeMenuContainerNav4(i);
		}
	}
}


/*****************************************************************************
Write the HTML that appears in the header.
*****************************************************************************/
function writeHeader() {
	document.writeln('<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr>')
	
	document.writeln('<td width="205"><a href="' + kBaseURL + 'index.html"><img src="' + kBaseURL + 'images/sublogo.gif" width="205" height="77" alt="" border="0" /></a></td>');
	document.writeln('<td width="' + kMenubarWidth + '"><img src="' + kBaseURL + 'images/hed_mid.gif" width="' + kMenubarWidth + '" height="77" alt="" border="0" /></td>');
	document.writeln('<td width="100%" background="' + kBaseURL + 'images/hed_top_tile.gif"><br /></td>');
	document.writeln('<td width="172" background="' + kBaseURL + 'images/hed_topright.gif" align="center" valign="bottom">');
	document.writeln('<img src="' + kBaseURL + 'images/blank.gif" width="172" height="1" alt="" border="0" /><br />');
	//document.write('<span class="buttonlink"><a href="https://supportweb.resumix.com/">&nbsp;&raquo;Customer Login&nbsp;</a></span></td></tr>');
	document.writeln('<span class="rightarrowpurple">&nbsp;&raquo;&nbsp;</span><a class="boldlink" href="https://supportweb.resumix.com/">Customer Login</a><br />');
	document.writeln('<img src="' + kBaseURL + 'images/blank.gif" width="172" height="2" alt="" border="0" /><br /></td></tr>');
	
	if( gHomePage ) { // If this is the home page
		document.writeln('<tr><td colspan="2"><img src="' + kBaseURL + 'images/hed_photo_alt.jpg" width="644" height="145" alt="" border="0" /></td>');
	}
	else {
		var imageURL = kBaseURL + menubarData[gMenuIndex*kArrayItems+kMenuPagePict]; // The path to the image in the header
		document.writeln('<tr><td colspan="2"><img src="' + imageURL + '" width="644" height="145" alt="" border="0" /></td>');
	}
	
	document.writeln('<td background="' + kBaseURL + 'images/hed_bot_tile.gif"><br /></td>');
	document.writeln('<td><img src="' + kBaseURL + 'images/hed_botright.gif" width="172" height="145" alt="" border="0" /></td></tr></table>');
}

// Separates the header from the main page content
function writeSpacer() {
	if( !gHasLayers ) { // If not Netscape 4
		if( IE40 || IE45 )
			document.writeln('<img src="' + kBaseURL + 'images/blank.gif" width="1" height="' + (kContentTop-10) + '" /><br />');
		else
			document.writeln('<img src="' + kBaseURL + 'images/blank.gif" width="1" height="' + kContentTop + '" /><br />');	
	}
}


// Handles resizing of Netscape 4
function resetMenus() {
	 if( gHasLayers ) {	
	 	location.reload();
	 }
}

// Shows the Menu layers for IE and Navigator 6 & 7
function showDiv() {
	if( !NS6 ) {
		if (globalNav == null) return;
		globalNav.style.visibility = "visible";
	}
}

// Shows the Menu layers for Navigator 4
function showLayers() {
	var doc = document.layers;	
	if(doc.subxContainer != undefined) {	
		doc.subxContainer.visibility="show"; 
	}
	doc.topNav.visibility="show";
}

// Writes the menubar
function writeMenubar() {
	for (var y = 0; y < kTopMenuCount; y++) {
		writeMenuName(y);
	}
}

// Writes the menu name (one item in the menubar)
function writeMenuName(menuIndex) {
	
	var menuName = "menu" + menuIndex;
	var href =  cleanURL(menubarData[menuIndex*kArrayItems+kMenuURL]);
	var imgSrc = cleanURL(menubarData[menuIndex*kArrayItems+kItemImage]);
	var imgWidth = menubarData[menuIndex*kArrayItems+kMenuNameWidth];
	var imgHeight = menubarData[menuIndex*kArrayItems+kMenuNameHeight];
	var altTag = menubarData[menuIndex*kArrayItems+kMenuAltTag];
	var fileName = parseHref(href);
	var imgSelectedFlag = false;
	var leftPos = 0;
	var topPos = 0;

	
	/*****************************************************************************
	Determine if the menu we're writing should be highlighted (selected).
	If the URL for the current page matches the URL for the menu name
	or if it matches the URL for a menu item in that menu, it should be highlighted.
	If it's the Home page, it should not be highlighted.
	*****************************************************************************/
	if( gPageName == fileName || gPageName == parseSubArrays(menuIndex) && !gHomePage ){
		gMenuIndex = menuIndex;
		if( gImgSelected != true ) {			
			imgMenuIndex=menuIndex + 1 //add one to adjust image file name from 0 based index
			imgSrc=imgSrc.slice(0, imgSrc.length-8); // Slice off the last 8 chars from URL
			imgSrc=imgSrc + "_sel.gif";	// Add these 8 chars instead
			imgSelectedFlag = true;
		}				
	}
	
	/************ Netscape 4 on Sun Solaris OS **************/
	if( gSolaris && gHasLayers ) {
		leftPos = 0;	//  Position is relative to the containing layer
		topPos = 0;	//  Position is relative to the containing layer

		for( var mName=0; mName < menuIndex; mName++ ) {
			leftPos += parseInt(menubarData[(mName * kArrayItems) + kMenuNameWidth]) + kMenubarSpace; // Add width of preceding images
		}
		var str = "<layer z-index='1' left='" + leftPos + "' top='" + topPos + "'>";
		str += "<a href='" + href + "' target='_top'>";
		str += "<img name=img" + menuName + " src='" + imgSrc + "' width='" + imgWidth + "' height='"+ imgHeight +"' border=0></a>";
		str += "</layer>";
	}
	/************ IE, Netscape 6 and 7 **************/
	else if( gHasElement || gHasAll ) {
		var str = "";
		var imgClass = "navImage";
		if( menuIndex == 0 ) {
			/*****************************************************************************
			navImage class sets the margin-left to space each menu name in the menubar 
			for IE 4.5; for 0th menu, needs to use clear image to set margin instead; 
			*****************************************************************************/
			imgClass="";
			if( kMenubarLeft > 0 )
				str += "<img src='" + kBaseURL + "images/blank.gif' height='1' width=" + kMenubarLeft + "'>"; // Left margin
		}
		
		if( gHasElement ){ // Netscape 6, 7 and ??		
			str += "<img name='img" + menuName + "' src='" + imgSrc + "' width='" + imgWidth + "' height='" + imgHeight +"' border='0' onMouseover='return mouseoverMenubar(\"" + menuIndex + "\");' onMouseout='return mouseoutMenubar(\"" + menuIndex + "\" , " + gImgSelected + ");' onClick='doJump(\"" + href + "\");'>";

			if( kMenubarSpace > 0 )
				str += "<img src='" + kBaseURL + "images/blank.gif' height='1' width=" + kMenubarSpace + "'>";	// The spacer between menu names
		}
		else if( gHasAll ){ // IE 4.5 and ??
			str += "<a onMouseover='return mouseoverMenubar(\"" + menuIndex + "\");' onMouseout='return mouseoutMenubar(\"" + menuIndex + "\" , " + gImgSelected + ");' href='" + href + "' target='_top'>";

			str += "<img class='" + imgClass + "' name='img" + menuName + "' src='" + imgSrc + "' width='" + imgWidth + "' height='" + imgHeight +"' border='0'></a>";
		}
	}
	/************ Netscape 4 **************/
	else if( gHasLayers ){
		leftPos = 0;	//  Position is relative to the containing layer
		topPos = 0;	//  Position is relative to the containing layer
		for( var mName=0; mName < menuIndex; mName++ ) {
			leftPos += parseInt(menubarData[(mName * kArrayItems) + kMenuNameWidth]) + kMenubarSpace; // Add width of preceding images
		}
		
		var str = "<layer z-index='1' left='" + leftPos + "' top='" + topPos + "'>";
		str += "<a href='" + href + "' onMouseover='return mouseoverMenubar(\"" + menuIndex + "\");' onMouseout='return mouseoutMenubar(\"" + menuIndex + "\" , " + gImgSelected + ");' target='_top'>";
		str += "<img name=img" + menuName + " src='" + imgSrc + "' width='" + imgWidth + "' height='"+ imgHeight +"' border=0></a>";
		str += "</layer>";
	}
	/************ END Netscape 4 **************/
	
	document.write(str);
	if( imgSelectedFlag == true ){
		gImgSelected = true;
	}
}

// Writes the HTML for one menu container for IE, Netscape 6 and 7
function writeMenuContainer(menuID, tdID) {

	var menuData = eval("menuData" + menuID);
	if( menuData == null || menuData.length <= kMenuDataItems ) {	// If there are no items in the menu
		return;
	}

	var divID = "menu" + menuID;
	var divTop = parseInt(menubarData[(menuID * kArrayItems) + kMenuNameHeight]) - 1;
	var divWidth = parseInt(menubarData[menuID * kArrayItems + kMenuWidth]);  // Get width of menu
	var divLeft = kMenubarLeft;	// Start with left margin for zero-th item since these layers are relative to menubar layer
	for( var menuN=0; menuN < menuID; menuN++ ) {
		divLeft += parseInt(menubarData[(menuN * kArrayItems) + kMenuNameWidth]) + kMenubarSpace; // Add width of preceding images
	}
		
	if (gHasElement || gHasAll) {
		if (gHasElement) {
			if (NS6) {
				objDiv = "<div class='dropDownContainer' id=\"" + divID + "\" style=\"left: " + divLeft + "; width: " + (divWidth+2) + "; visibility:hidden; top: " + divTop + "; z-index:2; background-color: " + kMenuBorderColor + "; \" onMouseover=\"showDDNav('document.getElementById(\\'"+ divID +"\\')')\"  onMouseout=\"hideDiv('document.getElementById(\\'" + divID + "\\')')\">";
				objDiv += "<div style=\"background-color:" + kMenuBorderColor + "; z-index:3; width:" + (divWidth+2) + "; height:1;\"></div>";
			} else {
				objDiv = "<div class='dropDownContainer' id=\"" + divID + "\" style=\"left: " + divLeft + ";visibility: hidden;top: " + divTop + "; z-index:2; \" onMouseover=\"showDDNav('document.getElementById(\\'"+ divID +"\\')')\"  onMouseout=\"hideDiv('document.getElementById(\\'" + divID + "\\')')\">";
			}
		} else if( gHasAll ) {
			objDiv = "<div class='dropDownContainer' id=\"" + divID + "\" style=\"left: " + divLeft + ";visibility: hidden;top: " + divTop + "; z-index:2; \" onMouseover=\"showDDNav('document.all[\\'"+ divID +"\\']')\"  onMouseout=\"hideDiv('document.all[\\'" + divID + "\\']')\">";
		}
	}
	
	/*****************************************************************************
	Write each menu item into the menu for IE, Netscape 6 and 7
	*****************************************************************************/
	for( y = kMenuFirstItem; y < menuData.length / kMenuDataItems; y++ ) {
		var strItem = menuData[(y * kMenuDataItems)];
		var strUrl = cleanURL(menuData[(y * kMenuDataItems) + kMenuItemURL]);
		var isSubMenu = menuData[(y * kMenuDataItems) + kMenuItemIsSubNav];
		var subMenuStr = "";
		var stuffBefore = "";
			
		if( y > kMenuFirstItem ) {
			if( isSubMenu ) {
				subMenuStr = kSubMenuHTML;
			}
			else { // Added 4/16 Separator Lines to menus
				stuffBefore = "<img src=\"" + kBaseURL + "images/whiteline.gif\" width=\"" + divWidth + "\" height=\"4\" alt=\"\" border=\"0\"><br />";
			}
		}
		
		if (strUrl.search(/^javascript:/i) == -1)
			strUrl = "doJump('" + strUrl + "')";
			
		if( gHasAll ) {
			objDiv += "<div id=\"x" + tdID + "\" style=\"background-color:"+ kMenuColor +"; z-index:3; width:" + divWidth + "\" onMouseover=\"this.style.color='" + kMenuFontColorHilite + "'; onText('"+ strItem +"');\" onMouseout=\"this.style.color='" + kMenuFontColor + "';StatusOff();\" class=\"dhtmlNav\" onClick=\""+strUrl+"\">" + stuffBefore + "&nbsp;" + subMenuStr + strItem + "&nbsp;</div>";
		} else if( NS6 ) {
			objDiv += "<div id=\"x" + tdID + "\" style=\"background-color:"+ kMenuColor +"; z-index:3; width:" + divWidth + "; left:1;\" onMouseover=\"this.style.color='" + kMenuFontColorHilite + "'; onText('"+ strItem +"');\" onMouseout=\"this.style.color='" + kMenuFontColor + "';StatusOff();\" class=\"dhtmlNav\" onClick=\""+strUrl+"\">" + stuffBefore + "&nbsp;"+ subMenuStr + strItem +"&nbsp;</div>";
		}
		
		tdID++;
	}
	if( NS6 ) {
		objDiv += "<div style=\"background-color:" + kMenuBorderColor + "; z-index:3; width:" + (divWidth+1) + "; height:1;\"></div>";
	}
	   objDiv += "</div>";
	   document.writeln(objDiv);

	return tdID;
}

//Writes HTML for one menu container for Netscape 4
function writeMenuContainerNav4(menuID) {

	var menuData = eval("menuData" + menuID);
	if( menuData == null || menuData.length <= kMenuDataItems ) {	// If there are no items in the menu
		return;
	}

	var layerLeft = kMenubarLeft;	// Start with left margin for zero-th item
	for( var menuN=0; menuN < menuID; menuN++ ) {
		layerLeft += parseInt(menubarData[(menuN * kArrayItems) + kMenuNameWidth]) + kMenubarSpace; // Add width of preceding images
	}

	var layerTop = kMenubarTop + parseInt(menubarData[(menuID * kArrayItems) + kMenuNameHeight]) ;
	var layerWidth = parseInt(menubarData[menuID * kArrayItems + kMenuWidth]);  // Get width of menu
	var layerID = "menu" + menuID;
	var layerStyle="netMenu";
	
	var objDiv = "<layer id='" + layerID + "' z-index='30' bgcolor='"+ kMenuBorderColor +"' width='" + (layerWidth+2) +"' left='"+ layerLeft + "' top='"+ layerTop +"' visibility='hide' onmouseover=\"showDDNav('','document.layers[\\'"+ layerID +"\\']')\" onmouseout=\"hideDDNav('','document.layers[\\'"+ layerID +"\\']')\">";

	document.writeln(objDiv);
	
	var nestLayerID = 0;
	var nestTop = 10;
	/*****************************************************************************
	Write each menu item into the menu for Netscape 4
	*****************************************************************************/
	for( var y = kMenuFirstItem; y < menuData.length / kMenuDataItems; y++ ) {
		objDiv = ""; // Start freash to write each line separately
		var strItem = menuData[(y * kMenuDataItems)];
		var strUrl = cleanURL(menuData[(y * kMenuDataItems) + kMenuItemURL]);
		var isSubMenu = menuData[(y * kMenuDataItems) + kMenuItemIsSubNav];
		var subMenuStr = "";
		var stuffBefore = "";
			
		if( y > kMenuFirstItem ) {
			if( isSubMenu ) {
				subMenuStr = kSubMenuHTML;
			}
			else { // Added 4/16 Separator Lines to menus
				stuffBefore = "<img src=\"" + kBaseURL + "images/whiteline.gif\" width=\"" + (layerWidth-8) + "\" height=\"4\" alt=\"\" border=\"0\"><br />";
			}
		}

		if (strUrl.search(/^javascript:/i) == -1)
			strUrl = "javascript:doJump(\"" + strUrl + "\")";
			
		// Write layer that expands menu background color out behind each item
		objDiv += '<layer id="x' + (nestLayerID +"a") + '" class="netmenu" bgcolor="' + kMenuColor + '" height="' + (kMenuItemHeight + 1) + '" width="'+ layerWidth + '" left="1" top="' + (nestTop - 9) + '"></layer>';
		
		// Write layer containing the menu item with rollover handlers
		var layerIDstr = "menuData" + menuID + "_" + nestLayerID;
		objDiv += "<layer id='" + layerIDstr +"' class='"+ layerStyle +"' z-index='37' width='"+ (layerWidth-8) +"' left='6' top='"+ (nestTop-8) +"' onmouseover=\"menuOver('document.layers[\\'"+ layerID +"\\'].document.layers[\\'" + layerIDstr +"\\']')\" onmouseout=\"menuOut('document.layers[\\'"+ layerID +"\\'].document.layers[\\'" + layerIDstr + "\\']')\" onClick='" + strUrl + "'>";
	
		 // Write actual menu item string and link
		objDiv += stuffBefore + "<a id=\"navstyle\" href=\"" + strUrl + "\"><font class=\"menuFonts\">" + subMenuStr + strItem + "</font></a>";
		
		objDiv += "</layer>";
		nestLayerID++;
		nestTop += kMenuItemHeight; // Sets the top of the next layer containing the next menu item

		document.writeln(objDiv);
	}
	
	 // Write bottom border color
	objDiv = '<layer id="lineEnd" bgcolor="' + kMenuBorderColor + '" width"=1" height="1" z-index="37" top="' + (nestTop-8) +'"></layer>';
	objDiv += "</layer>";
	document.writeln(objDiv);
}

function writeSubNav() {
	for (var i = 0; i < kTopMenuCount; i++) {
		if( gPageName == parseHref(cleanURL(menubarData[i * kArrayItems + kMenuURL])) || gPageName == parseSubArrays(i) ) {
		    	writeSubNavItem(i);
		}
	}
}

// Writes the subnavigation that appears on left of page
function writeSubNavItem(subMenuItem) {
	document.open();
	var subtdID = 0;
	var menuData = eval("menuData" +subMenuItem);
	if( menuData == null ) return;
	if( menuData.length != 0 ) {

		for( var i = 0; i < menuData.length / kMenuDataItems; i++ ) {
			var outputStr = "";
			var strItem = menuData[(i * kMenuDataItems)];
			var strUrl = cleanURL(menuData[(i * kMenuDataItems) + kMenuItemURL]);
			var strFileName = parseHref(strUrl);
			var isSubMenu = menuData[(i * kMenuDataItems) + kMenuItemIsSubNav];
			var stuffBefore = "";
			var stuffMid = "";
			var stuffAfter = "";
						
			if( isSubMenu ) {
				stuffMid = '<img src="' + kBaseURL + 'images/blank.gif" width="1" height="1" alt="" border="0" /><br />';
				strItem = kSubMenuHTML + strItem;
			}
			else {		
				stuffBefore = "<img src=\"" + kBaseURL + "images/tanline.gif\" width=\"205\" height=\"7\" alt=\"\" border=\"0\"><br />";
			}
					
			//if( i == 0 ) { // If the first item
			if( i == menuData.length / kMenuDataItems - 1 ) { // If the last item
				stuffAfter = '<img src="' + kBaseURL + 'images/blank.gif" width="1" height="4" alt="" border="0" /><br />';
			}

			if( strFileName == gPageName ) { // If this is the item for the current page
				outputStr += stuffBefore + "<div class='subnavselected'>" + stuffMid + strItem + "<br /></div>" + stuffAfter ;
			}
			else {
				outputStr += stuffBefore + '<div class="subnav">' + stuffMid + '<a href="' + strUrl + '">' + strItem + '</a><br /></div>' + stuffAfter ;
			}
			
			document.writeln(outputStr);
		}
		document.close();
	}
}

// Makes the menu layer visible (the onMouseOver handler)
function showDDNav(div, layer) {
	var menustr = div.lastIndexOf("menu");
	var activeMenu = div.substr(menustr + 4, 1);
	var obj;
	if (gHasLayers) {
		obj = eval(layer);
  		if( obj ) {
  			if(obj.visibility == 'hide') {
  				obj.visibility = 'show';
			}
		}
	}
	else if (gHasAll || NS6) {
		obj = eval(div);
		if( obj ) {
			if(obj.style.visibility == 'hidden') {
				obj.style.visibility = 'visible';
			}
		}
	}
}

// onMouseOut handler to hide menu
function hideDDNav(div, layer) {
	var obj;
	if (gHasElement || gHasAll) {
		obj = eval(div);
		if (obj) {
			if(obj.style.visibility == 'visible') {
				obj.style.visibility = 'hidden';
			}
		}
	} else if (gHasLayers) {
		obj = eval(layer);
		if (obj) 
			if(obj.visibility == 'show')
				obj.visibility = 'hide';
	}
}

function hideDiv(div)
{
	var obj = eval(div);
	if (obj == null) return;
	obj.style.visibility = 'hidden';
}

function mouseOverItem() {
	var layer = "document.layers['" + layerID + "'].document.layers['x" + nestLayerID + "']";
	menuOver(layer);
}

// Nav 4 Only Code To Handle Menu Item Rollovers
function menuOver(layer) {
	var menu;
	menu = eval(layer);
	if( menu == null ) return;	

	// Recover the name and index of the menu item, and whether or not it's a submenu
	var menuIndex = menu.name.split("_");
	var menuName = eval(menuIndex[0]);
	var i = parseInt(menuIndex[1]) + kMenuFirstItem;	
	var MenuText = menuName[i * kMenuDataItems];
	var MenuURL = cleanURL(menuName[i * kMenuDataItems + kMenuItemURL]);
	var isSubMenu = menuName[i * kMenuDataItems + kMenuItemIsSubNav];
	var layerWidth = kMaxMenuWidth;  // Width of menu (can't be reliably calculated)
	var subMenuStr = "";
	var stuffBefore = "";
			
	if( i > kMenuFirstItem ) {
		if( isSubMenu ) {
			subMenuStr = kSubMenuHTML;
		}
		else { // Added 4/16 Separator Lines to menus
			stuffBefore = "<img src=\"" + kBaseURL + "images/whiteline.gif\" width=\"" + (layerWidth-8) + "\" height=\"4\" alt=\"\" border=\"0\"><br />";
		}
	}
	
	menu.document.open();
	menu.document.write(stuffBefore + "<a id=\"navstyle\" href=\"" + MenuURL + "\"><font class=\"menuFontsHilite\">"+ subMenuStr + MenuText + "</font></a>");
	//menu.document.write("<a href='" + MenuURL +"' onmouseover='return onText(\"" + MenuText + "\");' onmouseout='return StatusOff();'><font class='menuFonts'>" + subMenuStr + MenuText + "</font></a>");
	menu.document.close();

}

function menuOut(layer) {
	var menu = eval(layer);
	if (menu == null) return;
	
	// Recover the name and index of the menu item, and whether or not it's a submenu
	var menuIndex = menu.name.split("_");
	var menuName = eval(menuIndex[0]);
	var i = parseInt(menuIndex[1]) + kMenuFirstItem;	
	var MenuText = menuName[i * kMenuDataItems];
	var MenuURL = cleanURL(menuName[i * kMenuDataItems + kMenuItemURL]);
	var isSubMenu = menuName[i * kMenuDataItems + kMenuItemIsSubNav];
	var layerWidth = kMaxMenuWidth;  // Width of menu (can't be reliably calculated)
	var subMenuStr = "";
	var stuffBefore = "";
			
	if( i > kMenuFirstItem ) {
		if( isSubMenu ) {
			subMenuStr = kSubMenuHTML;
		}
		else { // Added 4/16 Separator Lines to menus
			stuffBefore = "<img src=\"" + kBaseURL + "images/whiteline.gif\" width=\"" + (layerWidth-8) + "\" height=\"4\" alt=\"\" border=\"0\"><br />"; // Test
		}
	}
	
	menu.document.open();
	menu.document.write(stuffBefore + "<a id=\"navstyle\" href=\"" + MenuURL + "\"><font class=\"menuFonts\">"+ subMenuStr + MenuText + "</font></a>");
	menu.document.close();
}

//************************************************
//  Routines to process URLs
//************************************************

// Returns the name of the current page. 
function currentPageName() {
	var pageName = "";
	
 	if( isAbsoluteURL(kBaseURL) ) { // If the base URL is absolute
		pageName = parseHref(parent.location.href);	// Then our reference page name should also be absolute
	}
	else { // Else if the base URL is relative
		if( parent.location.protocol == "file:" ) {	// If running from disk (for development purposes)
			pageName = parseHref(parent.location.href); // Then need href to avoid Windows "\" instead of "/"
		}
		else { // If running of a web server, make refrence page name relative to root
			pageName = parseHref(parent.location.pathname);
		}
	}
	
	if( gActiveTopNav != undefined ) {
		pageName = parseHref(cleanURL(menubarData[gActiveTopNav * kArrayItems + kMenuURL]));
		if( gActiveSubNav != undefined ) {
			pageName = parseHref(cleanURL(eval("menuData" + gActiveTopNav + "[gActiveSubNav * kMenuDataItems + kMenuItemURL]")));
		}
	}
	
	return(pageName);
}

function isAbsoluteURL(strURL) {
	if( strURL.search(/^http:/i) != -1 || strURL.search(/^https:/i) != -1 )  // If the URL is absolute
		return(true);
	else
		return(false);
}

function cleanURL(strUrl) {
	if( strUrl.search(/^http:/i) == -1 && strUrl.search(/^https:/i) == -1 && strUrl.search(/^javascript:/i) == -1 )	// If the URL is not absolute
		strUrl = kBaseURL + strUrl;
	return(strUrl);
}

function parseHref(str) {
	var fileName;
	var queryPos = str.lastIndexOf("?");
	if( queryPos != -1 ) {
		str = str.slice(0, queryPos);
	}
	var slashPos = str.lastIndexOf("/");	// Find the last slash
	nextSlashPiece = str.slice(0, slashPos); // Isolate from start of URL up to last slash
	var nextSlashPos =  nextSlashPiece.lastIndexOf("/"); // Look for second-to-last slash
	if( nextSlashPos != -1 ) {	// If we found one...
		fileName = str.slice(nextSlashPos + 1); // Then keep everything after second-to-last slash
	}
	else {	// Else keep original string
		fileName = str;
	}

	return fileName;
}

function parseSubArrays(topMenuIndex) {
	var menuArray=eval("menuData" + topMenuIndex);
	if( menuArray == null ) return;
	for( var i = 0; i < menuArray.length / kMenuDataItems; i++ ) {
		var menuFileName = parseHref(cleanURL(menuArray[i * kMenuDataItems + kMenuItemURL]));
		if( menuFileName == gPageName )
			return menuFileName;
	}	
}

function gotoUrl(url) {
	top.location.href = url;
}

function doJump(url) {
	if ( url != "" ) {
		//top.location.href = url;
		document.location = url;
	}
}

//************************************************
//  Routines to swap images
//************************************************
function swapImg(menuImg, menuNumber, gImgSelected) {
	var imgName = eval("document.img" + menuImg);
	if( imgName == null ) return;
	var currentSrc = imgName.src;
	var substrSrc = currentSrc.slice(0, currentSrc.length-8);
	imgName.src = substrSrc + "_sel.gif";
}

function swapImgBack(menuImg, menuNumber, gImgSelected) {   
	var imgName = eval("document.img" + menuImg);
	if( imgName == null ) return;
	var page = parseHref(cleanURL(menubarData[menuNumber*kArrayItems]));
	var currentSrc = imgName.src;
	var substrSrc = currentSrc.slice(0, currentSrc.length-8);
	
	if ((gPageName == page || gPageName == parseSubArrays(menuNumber)) && (gImgSelected!=true)  && (!gHomePage)  ) {
		imgName.src = substrSrc + "_sel.gif";
	} else {
		imgName.src = substrSrc + "_reg.gif";
	}
}

function imageSwap(theImage, theSrc){
	if(document.images){
		document.images[theImage].src = theSrc;
	}
}

function StatusOff(){ return onText(""); }

function onText(str){
	window.status = str;
	return true;
}
	

function mouseoverMenubar(menuIndex) {
	var menuName = "menu" + menuIndex;
	var altTag = menubarData[menuIndex*kArrayItems+kMenuAltTag];
	var div = new String("");
	var layer = new String("");
	
	if( gHasElement ) {
		div = "document.getElementById('" + menuName + "')";	// This string will get eval'ed in showDDNav;
	}
	else if( gHasAll ) {
		div = "document.all['" + menuName + "']";
		layer = "document.layers['" + menuName +"']";
	}
	else if( gHasLayers ) {
		layer = "document.layers['" + menuName +"']";
	}
	
	showDDNav(div, layer);
	swapImg(menuName, menuIndex, gImgSelected);
	return onText(altTag);
}

function mouseoutMenubar(menuIndex, imgSelected) {

	var menuName = "menu" + menuIndex;
	var div = new String("");
	var layer = new String("");

	if( gHasElement ) {
		div = "document.getElementById('" + menuName + "')";	// This string will get eval'ed in showDDNav;
	}
	else if( gHasAll ) {
		div = "document.all['" + menuName + "']";
		layer = "document.layers['" + menuName +"']";
	}
	else if( gHasLayers ) {
		layer = "document.layers['" + menuName +"']";
	}

	hideDDNav(div, layer);
	swapImgBack(menuName, menuIndex, imgSelected);
	return StatusOff();
}

// Open the popup window to the specified URL
function openPopup(theURL, theWidth, theHeight) {
	var winProperties = "resize=no,toolbar=no,directories=no,menubar=no,status=no,noresize,scrollbars=auto,width=" + theWidth + ",height=" + theHeight;
	var mainWin = self;
	if( window.popupWin == null )	   // If the window has never been opened
		popupWin=window.open(theURL,"popupWin", winProperties);
	else {
		if( window.popupWin.closed )	// If the window was open but has been closed
			popupWin=window.open(theURL,"popupWin", winProperties);
		else									   // The window is already open
			popupWin.location.href = theURL;
	}
	popupWin.opener = mainWin;
	popupWin.focus();
	}

