// size of horizontal indent per level
var indentPixels = 10

// art files and sizes for three widget styles

var collapsedWidget ="GetImages.asp?Logo=4"  //"plus.gif"
var expandedWidget = "GetImages.asp?Logo=3" //"minus.gif"
var endpointWidget = "images/doc.gif" //"end.gif"
var widgetWidth = 18
var widgetHeight = 18

// Target for documents loaded when user clicks on a link.
// Specify your target frame name here.
var displayTarget = "folderFrame"



function msieversion()
{
   var ua = window.navigator.userAgent
   var msie = ua.indexOf ( "MSIE " )

   if ( msie > 0 )      // If Internet Explorer, return version number
      return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )))
   else                 // If another browser, return 0
      return 0

}

// pre-load all images into cache
var collapsedImg = new Image(widgetWidth,widgetHeight)
collapsedImg.src = collapsedWidget
var expandedImg = new Image(widgetWidth,widgetHeight)
expandedImg.src = expandedWidget
var endpointImg = new Image(widgetWidth,widgetHeight)
endpointImg.src = endpointWidget

// ** functions that get and set persistent cookie data **
// set cookie data
function setCurrState(setting) {
	document.cookie = "currState=" + escape(setting)
	currState = setting
}

// retrieve cookie data
function getCurrState() {
	var label = "currState="
	var labelLen = label.length
	var cLen = document.cookie.length
	var i = 0
	while (i < cLen) {
		var j = i + labelLen
		if (document.cookie.substring(i,j) == label) {
			var cEnd = document.cookie.indexOf(";",j)
			if (cEnd ==	-1) {
				cEnd = document.cookie.length
			}
			return unescape(document.cookie.substring(j,cEnd))
		}
		i++
	}
	return ""
}
// expose cookie as global variable for speed
var currState = getCurrState()

// **function that updates persistent storage of state**
// toggles an outline mother entry, storing new value in the cookie
function toggle(n) {
	if (n != 0) {
		var newString = ""
		var expanded = currState.charAt(n-1) // of clicked item
		newString += currState.substring(0,n-1)
		newString += expanded ^ 1 // Bitwise XOR clicked item
		newString += currState.substring(n,currState.length)
		setCurrState(newString) // write new state back to cookie
	}
}

// **functions used in assembling updated outline**
// returns the proper GIF file name for each entry's control
function getGIF(n) {
	var mom = items[n].mother  // is entry a parent?
	var expanded = currState.charAt(n-1) // of clicked item
	if (!mom) {
		return endpointWidget
	} else {
		if (expanded == 1) {
			return expandedWidget
		}
	}
	return collapsedWidget
}

// returns the proper status line text based on the icon style
function getGIFStatus(n) {
	var mom = items[n].mother  // is entry a parent
	var expanded = currState.charAt(n-1) // of rolled item
	if (!mom) {
		return "No further items"
	} else {
		if (expanded == 1) {
			return "Click to collapse nested items"
		}
	}
	return "Click to expand nested items"
}

// initialize 'current state' storage field
if (getCurrState() == "" || getCurrState().length != (items.length-1)) {
	initState =""
	for (i=1; i < items.length; i++) {
		initState += "0"
	}

	setCurrState(initState)
}

// end -->
<!-- start

function writeJavascript() {
	// build new outline based on the values of the cookie
	// and data points in the outline data array.
	// This fires each time the user clicks on a control,
	// because the HREF for each one reloads the current document.
	var newOutline = ""
	var prevIndentDisplayed = 0
	var showMyDaughter = 0
	var j = 0;
	var llink = "MenuLink"
	// cycle through each entry in the outline array
	newOutline += "<table class=outerTable border='0' cellspacing='0' cellpadding='0' height='100%' >"
	newOutline += "<tr valign='top' height='90%'><td>"
	newOutline += "<table class=innerTable align='center' border='0' cellspacing='0' cellpadding='0' >"
	newOutline += "<tr><td width='1%'><td width='99%'></tr>"
	for (var i = 1; i < items.length; i++) {
		var theGIF = getGIF(i)				// get the image
		var theGIFStatus = getGIFStatus(i)  // get the status message
		var currIndent = items[i].indent		// get the indent level
		var expanded = currState.charAt(i-1) // current state
		// display entry only if it meets one of three criteria
		if (currIndent == 0 || currIndent <= prevIndentDisplayed || (showMyDaughter == 1 && (currIndent - prevIndentDisplayed == 1))) {
			if (items[i].URL == "" || items[i].URL == null) {
				newOutline += "<TR><TD class=MenuIcon >"
				newOutline += "<A HREF= \"javascript:history.go(0)\"onMouseOver=\"window.status=\'" + theGIFStatus + "\';return true;\" onClick=\"toggle(" + i + ");return " + (theGIF != endpointWidget) + "\">"
				if (expanded==0) 
					newOutline += "<IMG border=none SRC=\"GetImages.asp?Logo=4\">"
				else
					newOutline += "<IMG border=none SRC=\"GetImages.asp?Logo=3\">"
				newOutline += "</A></TD>"		
				
				newOutline += "<TD class=MenuHead>&nbsp;<A class=MenuExpand href= \"javascript:history.go(0)\"onClick=\"toggle(" + i + ");return " + (theGIF != endpointWidget) + "\">"+items[i].display+"</A>&nbsp;</TD></TR>" //<BR>"	// no link, just a listed item	
				j=0;
			} else {
				if (items[i].URL == " ") {
	 				llink = "MenuExpand"
				} else {
					llink = "MenuLink"
				}
				newOutline += "<TR><TD class=MenuIcon"+j%2+" >"
				if (items[i].URL!=" ") {
				   newOutline += "<A HREF= \"javascript:history.go(0)\" onMouseOver=\"window.status=\'" + theGIFStatus + "\';return true;\" onClick=\"toggle(" + i + ");return " + (theGIF != endpointWidget) + "\">"
				   newOutline += "</A>"				
				}
				newOutline += "<TD class=MenuLink"+j%2+" >"
				if (items[i].URL!=" ") {
				   newOutline += "<A class=" + llink + " HREF=\"" + items[i].URL + "\" TARGET=     \""+displayTarget+"\"onMouseOver=\"window.status=\'" + items[i].statusMsg + "\';return true;\">"
				}
				newOutline += "&nbsp;" + items[i].display + "&nbsp;"			
				if (items[i].URL!=" ") {
				   newOutline += "</A>"
				}
				newOutline += "</TR>"
				j++;
			}
			prevIndentDisplayed = currIndent
			showMyDaughter = expanded
			if (items.length > 25) {
				document.write(newOutline)
				newOutline = ""
			}
		}
	}
	document.write(newOutline)
}
// end -->
<!-- start
function ShowHide(lSectionID) {
	if (document.getElementById('Section' + lSectionID).style.display == 'none') {
		document.getElementById('Section' + lSectionID).style.display = '';
		document.getElementById('Img' + lSectionID).src = expandedImg.src;
	} else {
		document.getElementById('Section' + lSectionID).style.display = 'none';
		document.getElementById('Img' + lSectionID).src = collapsedImg.src;
	}
}
var iViewCourseID = null;
function writeDHTML() {
	var newOutline = ""
	var prevIndentDisplayed = 0
	var showMyDaughter = 0
	var j = 0;
	var llink = "MenuLink"
	var bOpenTable = false;
	
	// cycle through each entry in the outline array
	newOutline += "<table border='0' cellspacing='0' cellpadding='0' height='100%' class='menuTable'>"
	newOutline += "<tr valign='top' height='90%'><td>"
	newOutline += "<table class=innerTable align='center' border='0' cellspacing='0' cellpadding='0'>"
	newOutline += "<tr><td width='1%'><td width='99%'></tr>"

	for (var i = 1; i < items.length; i++) {
		var currIndent = items[i].indent		// get the indent level

		// display entry only if it meets one of three criteria
		if (items[i].URL == "" || items[i].URL == null) {
			if (bOpenTable == true) {
				bOpenTable = false;
				newOutline += "</TABLE></TD></TR>"
			}
			
			if (items[i].display == 'View Courses') {
				iViewCourseID = i;
			}
			
			newOutline += "<TR><TD class=MenuIcon>"
			newOutline += "<A class=MenuIcon style=\"cursor:hand\" onMouseOver=\"window.status=\'" + getGIFStatus(i) + "\';return true;\" href=\"Javascript:ShowHide(" + i + ");\">"
			newOutline += "<IMG name=\"IMG" + i + "\" border=none SRC=\"GetImages.asp?Logo=4\">"
			newOutline += "</A></TD>"		
			newOutline += "<TD class=MenuHead>&nbsp;<A class=MenuExpand style=\"cursor:hand\" onMouseOver=\"window.status=\'" + items[i].statusMsg + "\';return true;\" href=\"Javascript:ShowHide(" + i + ");\">"+items[i].display+"&nbsp;</A></TD></TR>" // no link, just a listed item	
			newOutline += "<TR id=\"Section" + i + "\" style=\"DISPLAY:none\" ><TD></TD><TD>"
			newOutline += "<TABLE width=\"100%\" border=\"0\" cellspacing='0' cellpadding='0'>"
			bOpenTable = true;
			j=0;
		} else {
			if (items[i].URL == " ") {
 				llink = "MenuExpand"
			} else {
				llink = "MenuLink"
			}
			newOutline += "<TR>"				
			newOutline += "<TD class=MenuLink"+j%2+" ></TD>"
			newOutline += "<TD class=MenuLink"+j%2+" >"
  			if (items[i].URL == " ") {
  				newOutline += "&nbsp;"
  			} else {
  				newOutline += "<A class=" + llink + " HREF=\"" + items[i].URL + "\" TARGET=     \""+displayTarget+"\" onMouseOver=\"window.status=\'" + items[i].statusMsg + "\';return true;\">"
				newOutline += "&nbsp;" + items[i].display + "&nbsp;"			
				newOutline += "</A>"
			}
			newOutline += "</TD></TR>"
			j++;
		}
		prevIndentDisplayed = currIndent
		showMyDaughter = 1
		if (items.length > 25) {
			document.write(newOutline)
			newOutline = ""
		}
	}
	if (bOpenTable == true) {
		newOutline += "</TABLE></TD></TR>"
	}
	document.write(newOutline)
}
	
// end -->
