<!-- //
// ** functions that get and set persistent cookie data **
// set cookie data
var mycookie = document.cookie
var stateCookie = "currState";
var histCookie = "use_history";

// **function that updates persistent storage of state**
// toggles an outline toplev entry, storing new value in the cookie
function toggle(n) {
	if (n != 0) {
		var newString = ""
		var currState = getCookie(stateCookie);//getCurrState() // of whole outline
		var expanded = currState.substring(n-1,n) // of clicked item
		newString += currState.substring(0,n-1)
		newString += expanded ^ 1 // Bitwise XOR clicked item
		newString += currState.substring(n,currState.length)
		mycookie = setCookie(stateCookie,newString);
		//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(expanded,n) {
	var mom = rec[n].toplev  // is entry a parent?
	if (!mom) {
		return "daughter.gif"
	} else {
		if (expanded == 1) {
			return "exploded.gif"
		}
	}
	return "collapsd.gif"
}

// returns padded spaces (in multiples of 3) for indenting
function pad(n) {
	var result = ""
	for (var i = 1; i <= n; i++) {
		result += "   "
	}
	return result
}

function init() {
// initialize 'current state' storage field
	if (!getCookie(stateCookie) || getCookie(stateCookie).length != rec.length) {
		initState = ""
		for (i = 1; i <= rec.length; i++) {
			initState += "0"
		}
		mycookie=setCookie(stateCookie,initState)
	}
}

init();

function hide(object1) {
    if (document.layers && document.layers[object1]) {
        document.layers[object1].visibility = 'hidden';
	} else if (document.getElementById) {
		document.getElementById(object1).style.visibility = 'hidden';
    } else if (document.all) {
         document.all[object1].style.visibility = 'hidden';
	}
}


function getOutlineText() {
	var prevIndentDisplayed = 0
	var showMyDaughter = 0
	var newOutline = "<PRE><font face='Arial' size='-1'>"   // let padded spaces make indents
	// cycle through each entry in the outline array
	this_cookie = getCookie(stateCookie);
	for (var i = 1; i < rec.length; i++) {
		var expanded = this_cookie.substring(i-1,i) // current state
		var theGIF = getGIF(expanded,i)				// get the image
		var currIndent = rec[i].level		// get the indent level

		// display entry only if it meets one of three criteria
		if (currIndent == 0 || currIndent <= prevIndentDisplayed || (showMyDaughter == 1 && (currIndent - prevIndentDisplayed == 1))) {
			newOutline += pad(currIndent)
			newOutline += '<A HREF="javascript:upDate(' + i + ');"'+  
				'onMouseOver="writeLayer('+i+'); return true"'+
				'onMouseOut="hide(\'tour\') ; return true">'+
				'<img src="'+theGIF+'" height="11" width="11" border="0"></A>';		
			if (rec[i].URL == "" || rec[i].URL == null) {
				newOutline += " " + rec[i].text + "<BR>"	// no link, just a listed item	
			} else {
				newOutline += ' <A HREF="' + rec[i].URL + 
					'" TARGET="intro"' + 
					'onMouseOver="writeLayer('+i+'); return true"'+
					'onMouseOut="hide(\'tour\') ; return true">'+
					rec[i].text + '</A><BR>';
			}
			prevIndentDisplayed = currIndent
			showMyDaughter = expanded
		}
	}
	newOutline += "</PRE>"
	return newOutline;
}

last_text='';

function upDate(index) {
	toggle(index);
	history_cookie = getCookie(histCookie);
	re = /null/gi;
	delim0 = '';
	history_cookie = String(history_cookie).replace(re,delim0);

	n_indent = rec[index].level*3;
	nspace = '';
	for (count = 0; count < n_indent; count++) {
		nspace+= '&nbsp;';
	}
	if (rec[index].text !== last_text) {
		history_cookie = nspace+'<a href="javascript:parent.intro.location.href=\''+
			rec[index].URL+'\';location.href=location.href;">'+rec[index].text+'</a><br>'+history_cookie;
	}
	last_text = rec[index].text;
	var today = new Date();
	var expires = new Date(today.getTime() + (56 * 86400000));
	newCookie = setCookie(histCookie,history_cookie,expires);

//	if(top.newBox.location) {
//		top.newBox.writeHist();
//	}
	text = getOutlineText();
	writeTOC(text);
}
	
function writeTOC(text) {
     if (document.all) {
         document.all['outlineNew'].innerHTML = text;
	 } else if (document.getElementById) {
		document.getElementById("outlineNew").innerHTML = text;
     } else if (document.layers) {
         document.layers['outlineOld'].document.open();
         document.layers['outlineOld'].document.write(text);
         document.layers['outlineOld'].document.close();
     }
}

function writeLayer(i) {
     if (document.all) {
         document.all['tour'].innerHTML = '<font size="-1" face="Arial">'+rec[i].descr+'</font>';
		 document.all['tour'].visibility = 'visible';
	 } else if (document.getElementById) {
		document.getElementById("tour").innerHTML = '<font size="-1" face="Arial">'+rec[i].descr+'</font>';
		document.getElementById("tour").style.visibility = 'visible';
     } else if (document.layers) {
         document.layers['tour'].document.open();
         document.layers['tour'].document.write('<font size="-1" face="Arial">'+rec[i].descr+'</font>');
         document.layers['tour'].document.close();
		 document.layers['tour'].visibility = 'visible';
     }
	window.status = rec[i].URL;
}
//-->
