
var outlineItems = new Array();

function outlineInit()
{
	var elements = outlineGetTopLevelLists();
	for (var i = 0; (i < elements.length); i++) {
		outlineInitOutline(elements[i]);
	}		
}

function outlineInitOutline(outline)
{
	var kids = outline.childNodes;
	for (var i = 0; (i < kids.length); i++) {
		var kid = kids[i];
		if (kid.nodeName == "LI") {
			outlineInitItem(kid);
		}
	}
}

function outlineInitItem(item)
{
	var kids = item.childNodes;
	var hasKids = false;
	var outlines = new Array();
	for (var i = 0; (i < kids.length); i++) {
		var kid = kids[i];	
		if (kid.nodeName == "UL") {
			kid.style.display = "none";
			outlineInitOutline(kid);
			hasKids = true;
			outlines[outlines.length] = kid;
		}
	}
	if (hasKids) {
		item.style.cursor = "pointer";
		var len = outlineItems.length;
		outlineItems[len] = item;
		// We can't just modify item.innerHTML, because that would
		// invalidate JavaScript objects that already refer to
		// other elements in the outlineItems array. So we use
		// the clunky DOM way of creating a span element. Then we
		// tuck the "a" element inside it so we can use
		// innerHTML for that and avoid various IE bugs.
		var span = document.createElement("span");
		span.innerHTML = "<a href='#' " +
			"onClick='outlineItemClickByOffset(" + len + 
			"); return false' " +
			"class='olink'>" +
			"<img class='oimg' alt='Open' src='Images/rightarrow.gif'></a>";
		item.insertBefore(span, kids[0]);
		item.onclick = outlineItemClick;
	}
}

function outlineGetTarget(evt)
{
	var target;
        if (!evt) {
                // Old IE
                evt = window.event;
        }
	// Prevent double event firing (sigh)
	evt.cancelBubble = true;
	if (evt.stopPropagation) {
		evt.stopPropagation();
	}
        var target = evt.target;
        if (!target) {
                // Old IE
                target = evt.srcElement;
        }
	return target;
}

function outlineItemClickByOffset(id)
{
	outlineItemClickBody(outlineItems[id]);
}

function outlineItemClick(evt)
{
	target = outlineGetTarget(evt);
	outlineItemClickBody(target);
}

function outlineItemClickBody(target)
{
	var closed = true;
	var kids = target.childNodes;
	var hasKids = false;
	for (var i = 0; (i < kids.length); i++) {
		var kid = kids[i];	
		if (kid.nodeName == "UL") {
			if (kid.style.display == "none") {
				kid.style.display = "block";
			} else {	
				kid.style.display = "none";
				closed = false;
			}
			hasKids = true;
		}
	}
	if (!hasKids) {
		// We're here because of a click on a
		// childless node. Ignore that.
		return;
	}	
	var img = outlineGetImg(target);
	if (closed) {
		// We've just opened it, show close button
		img.src = "Images/downrightarrow.gif";
		img.alt = "Close";
	} else {
		img.src = "Images/rightarrow.gif";
		img.alt = "Open";
	}
}
	
function outlineGetImg(target)
{
	return outlineGetDescendantWithClassName(target, "oimg");
}

function outlineGetDescendantWithClassName(parent, cn)
{
	// Regular expression: beginning with class name, or
	// class name preceded by a space; and ending with class name, or
	// class name followed by a space. Covers the ways a single class
	// name can appear with or without others in the className attribute.
	var elements = parent.childNodes;
	var length = elements.length;
	var i;
	var regexp = new RegExp("(^| )" + cn + "( |$)");
	for (i = 0; (i < length); i++) {
		if (regexp.test(elements[i].className)) {
			return elements[i];
		}
		var result = outlineGetDescendantWithClassName(
			elements[i], cn);	
		if (result) {
			return result;
		}
	}
	return null;
}

function outlineGetTopLevelLists()
{
	// Regular expression: beginning with class name, or
	// class name preceded by a space; and ending with class name, or
	// class name followed by a space. Covers the ways a single class
	// name can appear with or without others in the className attribute.
	var cn = "outline";
	var elements = document.getElementsByTagName("ul");
	var length = elements.length;
	var i;
	var regexp = new RegExp("(^| )" + cn + "( |$)");
	var results = new Array();
	for (i = 0; (i < length); i++) {
		if (regexp.test(elements[i].className)) {
			results.push(elements[i]);
		}
	}
	return results;
}

var lastclicked;
 function unhide(divID) {
 var item = document.getElementById(divID);
 if (item) {
 	item.className=(item.className=='hidden')?'unhidden':'hidden';
 	}
 if (lastclicked) {
 	lastclicked.className='hidden';
 	}
 lastclicked = document.getElementById(divID);
}
 
 /*var update
 var pop
 function download(file) {
 	update = file;
 	pop = window.open('downloadfile.html','download_file','width=300,height=200','');
 	pop.document.write("<html><head><link href=\"StyleSheet.css\" rel=\"stylesheet\" type=\"text/css\" /><script src=\"outline.js\" type=\"text/javascript\"></script>\
 	<title>download update</title></head><body class=\"download\"><form method=\"post\" action=\"downloademail.php\"> \n \
  Name:<br /> \n \
  	 <input name=\"name\" type=\"text\" /><br /> \n \
  Email:<br />\n \
  	 <input name=\"email\" type=\"text\" /><br /> \n \
  Facility:<br /> \n \
  	 <input name=\"facility\" type=\"text\" /><br />	\n \
  <input type=\"submit\" name=\"submit\" value=\""+file+"\"/> \n \
</form></body></html>");
} */

var update
 var pop
 function download(file) {
 	update = file;
 	pop = window.open('downloadfile.html','download_file','width=300,height=200','');
 	pop.document.write("<html><head><link href=\"StyleSheet.css\" rel=\"stylesheet\" type=\"text/css\" /><script src=\"outline.js\" type=\"text/javascript\"></script>\
 	<title>download update</title></head><body class=\"download\"><form method=\"post\" action=\"downloademail.php\"> \n \
  Name:<br /> \n \
  	 <input name=\"name\" type=\"text\" /><br /> \n \
  Email:<br />\n \
  	 <input name=\"email\" type=\"text\" /><br /> \n \
  Facility:<br /> \n \
  <input name=\"facility\" type=\"text\" /><br />	\n \
  <input onclick=\"javascript:unhide('pleaseWait');\" type=\"submit\" name=\"submit\" value=\"" + file + "\"/><br /> \n \
  <div class=\"hidden\" id=\"pleaseWait\">Please Wait...</div> \n \
</form>");
} 















// Fully accessible collapsible outlines. JavaScript code
// copyright 2007, Boutell.Com, Inc.
//
// See http://www.boutell.com/newfaq/ for more information.
//
// Permission granted to use, republish, sell and otherwise
// benefit from this code as you see fit, provided you keep
// this notice intact. You may remove comments below this line.

