/*
*
* setupLeftNav()
*
*/
function setupLeftNav() {
	var i = 0;
	var nodeListUL;
	var nodeListLI;
	var nodeListUL_LI;
	var tempInnerHTML = "";
	var topSpacer;
	var bottomSpacer;
	var viewMoreLink;
	var headerCount = 0;
	var simpleMenuObject;

	// If leftNavContainer <div> doesn't exist, don't do anything
	if(!document.getElementById('leftNavContainer')) return;

	// Hide while setting up.  Call makeLeftNavVisible() to see it again.
	document.getElementById('leftNavContainer').style.display = "none";
	document.getElementById('leftNavContainer').style.visibility = "hidden";

	// Set Up Node Lists
	nodeListUL = document.getElementById('leftNavContainer').getElementsByTagName('ul');
	nodeListLI = document.getElementById('leftNavContainer').getElementsByTagName('li');

	/*
	*  Set up the expandable images, add the "View More" links, add
	*  the spacer that goes directly after the header item, and
	*  add the spacer with goes after an expandable menu.
	*/
	for(i=0;i<nodeListUL.length;i++) {
		if(nodeListUL[i].className=="leftNavExpandableMenu") {
			
			tempInnerHTML = nodeListUL[i].innerHTML;

			// Add the "menuExpander" DIV, and the "View More" link at the end of the menu.
			nodeListUL[i].innerHTML = "<div class=\"menuExpander\"><img class=\"leftNavCategoryArrow\" alt=\"\" border=\"0\" width=\"164\" height=\"19\" src=\"http://www.servicegenius.com/images/leftNav/leftNavCategoryArrow.gif\" /><img class=\"leftNavCollapse\" alt=\"\" border=\"0\" width=\"164\" height=\"19\" src=\"http://www.servicegenius.com/images/leftNav/leftNavCollapse.gif\" /><img class=\"leftNavExpand\" alt=\"\" border=\"0\" width=\"164\" height=\"19\" src=\"http://www.servicegenius.com/images/leftNav/leftNavExpand.gif\" /></div>"
						+ tempInnerHTML;
//						+ "<li class=\"viewMore\"><a href=\"javascript:void(0)\" onclick=\"leftNavExpand(this);return false;\">View More...</a></li>";

			// Set Up Top Spacer :: <li class="leftNavTopSpacer"><a href="#"><img alt="" border="0" width="1" height="1" src="/images/leftNav/1px.gif" /></a></li>
			nodeListUL_LI = nodeListUL[i].getElementsByTagName('li');
			if(nodeListUL_LI.length) {				
				topSpacer = document.createElement('li');
				topSpacer.innerHTML = "<a href=\"#\"><img alt=\"\" border=\"0\" width=\"1\" height=\"1\" src=\"http://www.servicegenius.com/images/leftNav/1px.gif\" /></a>";
				topSpacer.className = "leftNavTopSpacer";
				nodeListUL_LI[0].parentNode.insertBefore(topSpacer,nodeListUL_LI[0]);
			}

			// Set Up Bottom Spacer :: <div class="leftNavBottomSpacer">&nbsp;</div>
			bottomSpacer = document.createElement('div');
			bottomSpacer.innerHTML = "&nbsp;";
			bottomSpacer.className = "leftNavBottomSpacer";
			nodeListUL[i].parentNode.insertBefore(bottomSpacer,nodeListUL[i].nextSibling);
			
			// Set the id of the item if it doesn't already have one.
			// Then create the simpleMenu Object with that id (this
			// allows the TAB key to auto-expand items, and adds flyout functionality for IE)
			if(!nodeListUL[i].id)
				nodeListUL[i].id = "leftNavHeaderAutoGenerated" + headerCount + "";
			
			simpleMenuObject = new simpleMenu(nodeListUL[i].id, 'leftNavExpandableMenu');
			headerCount++;			
		}
	}

	/*
	*  Style the correct items with "flyoverArrow" images, 
	*  which lets a user know there is a flyout menu
	*/
	for(i=0;i<nodeListLI.length;i++) {
		// Set Border Image and Hover Image for each <li>
		if(nodeListLI[i].getElementsByTagName('a').length) {
			tempInnerHTML = nodeListLI[i].getElementsByTagName('a')[0].innerHTML;
			nodeListLI[i].getElementsByTagName('a')[0].innerHTML = "<img class=\"leftNavSubCategoryBorder\" alt=\"\" border=\"0\" width=\"164\" height=\"17\" src=\"http://www.servicegenius.com/images/leftNav/leftNavSubCategoryBorder.gif\" />"
									   + "<img class=\"leftNavHoverArrow\" alt=\"\" border=\"0\" width=\"164\" height=\"17\" src=\"http://www.servicegenius.com/images/leftNav/leftNavHoverArrow.gif\" />"
									   + tempInnerHTML;
		}
	
		// Set Flyover Image for nested lists
		if(nodeListLI[i].getElementsByTagName('ul').length) {
			if(nodeListLI[i].getElementsByTagName('a').length) {
				tempInnerHTML = nodeListLI[i].getElementsByTagName('a')[0].innerHTML;
				nodeListLI[i].getElementsByTagName('a')[0].innerHTML = "<img class=\"leftNavFlyoverArrow\" alt=\"\" border=\"0\" width=\"164\" height=\"17\" src=\"http://www.servicegenius.com/images/leftNav/leftNavFlyoverArrow.gif\" />"
										   + tempInnerHTML;
			}
		}
		
		// Redraw the all the <li> in the leftNavContainer so they display with proper border images...
		nodeListLI[i].style.display = "none";
		nodeListLI[i].style.display = "";
	}
}


/*
*
* leftNavCollapse()
*
*/
function leftNavCollapse(item){
	var tempNode = item;
	var menuItems;

	// If leftNavContainer <div> doesn't exist, don't do anything
	if(!document.getElementById('leftNavContainer')) return;

	while(tempNode.tagName!="UL") {
		tempNode = tempNode.parentNode;
	}

	menuItems = tempNode.childNodes;

	// Hide everything except the "View More" links
	for(i=0;i<menuItems.length;i++) {
		if(menuItems[i].tagName=="LI") {
			if(menuItems[i].className=="viewMore")
				menuItems[i].style.display = "";
			else menuItems[i].style.display = "none";
		}
	}

	// Display Expand Image, Hide Collapse Image
	if(tempNode.getElementsByTagName('div').length) {
		if(tempNode.getElementsByTagName('div')[0].getElementsByTagName('img').length) {
			var tempIMG = tempNode.getElementsByTagName('div')[0].getElementsByTagName('img');
			for(i=0;i<tempIMG.length;i++) {
				if(tempIMG[i].className=="leftNavCollapse")
					tempIMG[i].style.display = "none";
				if(tempIMG[i].className=="leftNavExpand")
					tempIMG[i].style.display = "";
			}
		}

	}

	////////////////////////////////////////////////////////////////////
	// Set the Expandable Menu Header's DIV onclick to EXPAND
	//
	var expanderDiv = tempNode.getElementsByTagName('div');
	if(expanderDiv.length) {	
		for(i=0;i<expanderDiv.length;i++) {
			if(expanderDiv[i].className=="menuExpander") {
				expanderDiv[i].onclick = function() {
					leftNavExpand(this);
					return false;
				}
			}
		}
	}
}

/*
*
* leftNavExpand()
*
*/
function leftNavExpand(item){
	var tempNode = item;
	var tempNodeDIV;	
	var nodeListUL;

	nodeListUL = document.getElementById('leftNavContainer').getElementsByTagName('ul');

	while(tempNode.tagName!="UL") {

		tempNode = tempNode.parentNode;
	}
	
	if(tempNode.getElementsByTagName('div').length) {
		tempNodeDIV = tempNode.getElementsByTagName('div')[0];

		// Display Collapse Image, Hide Expand Image
		if(tempNodeDIV.getElementsByTagName('img').length) {
			for(i=0;i<tempNodeDIV.getElementsByTagName('img').length;i++) {
				if(tempNodeDIV.getElementsByTagName('img')[i].className=="leftNavCollapse")
					tempNodeDIV.getElementsByTagName('img')[i].style.display = "";
				if(tempNodeDIV.getElementsByTagName('img')[i].className=="leftNavExpand")
					tempNodeDIV.getElementsByTagName('img')[i].style.display = "none";
			}
		}
		// Set the onclick event to COLLAPSE
		if(tempNodeDIV.className=="menuExpander") {			
			// Set the Expandable Menu Header's onclick to COLLAPSE
			tempNodeDIV.onclick = function() {
				leftNavCollapse(this);
				return false;
			}
		}
	}

	for(index=0;index<nodeListUL.length;index++) {
		if(nodeListUL[index].className=="leftNavExpandableMenu" && nodeListUL[index].childNodes.length && nodeListUL[index]!=tempNode) {
			leftNavCollapse(nodeListUL[index].childNodes[0]);
		}
	}

	nodeListUL = tempNode.getElementsByTagName('li');

	// Show everything except the "View More" links
	for(i=0;i<nodeListUL.length;i++) {
		if(nodeListUL[i].className=="viewMore")
			nodeListUL[i].style.display = "none";
		else nodeListUL[i].style.display = "";
	}
}

/*
*
* leftNavCollapseAll()
*
*/
function leftNavCollapseAll() {
	var nodeList = document.getElementById('leftNavContainer').getElementsByTagName('ul');
	var collapseItem;
	var menuItems;
	var i=0;
	var j=0;

	for(i=0;i<nodeList.length;i++) {
		if(nodeList[i].className=="leftNavExpandableMenu") {
		
			collapseItem = nodeList[i];

			////////////////////////////////////////////////////////////////////
			// Set the Expandable Menu Header's DIV onclick to EXPAND
			//
			var expanderDiv = collapseItem.getElementsByTagName('div');
			if(expanderDiv.length) {	
				for(j=0;j<expanderDiv.length;j++) {
					if(expanderDiv[j].className=="menuExpander") {			
						expanderDiv[j].onclick = function() {
							leftNavExpand(this);
							return false;
						}
					}
				}
			}


			menuItems = collapseItem.childNodes;

			for(j=0;j<menuItems.length;j++) {
				if(menuItems[j].tagName=="LI") {
					if(menuItems[j].className=="viewMore")
						menuItems[j].style.display = "";
					else menuItems[j].style.display = "none";
				}
			}

		}
	}		
}

/*
*
* makeLeftNavVisible()
*
*/
function makeLeftNavVisible() {
	document.getElementById('leftNavContainer').style.display = "";
	document.getElementById('leftNavContainer').style.visibility = "visible";
}