
	/* TOC.JS */

	
	//-------------------------------------------------------------------------
	//	Declare necessary variables
	//	eSelected: the currently selected item in the TOC
	//-------------------------------------------------------------------------

	var eSelected = null;


	//-------------------------------------------------------------------------
	//	getContainer()
	//	Purpose: finds the container element for a given child
	//	Called: from the viewElement function
	//-------------------------------------------------------------------------

	function getContainer(eSrc)
	{
		while ("BODY" != eSrc.tagName.toUpperCase())
		{
			if ("clsShowHide" != eSrc.className) return eSrc;
			eSrc = eSrc.parentElement;
		}
	}


	//-------------------------------------------------------------------------
	//	contentsHeading_click()
	//
	//	Purpose:	For TOC items w/ no children
	//					1) Navigates content frame
	//					2) Highlights item as selected
	//					3) Shows stylesheet samples in new window, if necessary
	//
	//				For TOC items w/ children
	//					1) Shows/Hides children
	//					2) Swaps +/- list item icons
	//
	//	Called: from the global onclick event handler. All items that are
	//	classed as either "clsShowHide" or "clsTocHeading" will have this event
	//	handler defined.
	//-------------------------------------------------------------------------

	function contentsHeading_click(eSrc) {
		
		if (eSrc.parentElement.className == "clsNoExpand") {
			if (null != eSelected) eSelected.className = "clsTocItem";
			eSrc.className = "clsTocItemSelect";
			return eSelected = eSrc;
		}
				

		if ("A" == eSrc.tagName.toUpperCase()) eSrc = eSrc.parentElement;
		var sSrcClass = eSrc.className.toLowerCase();
		var iChildrenCount = eSrc.children.length;
		var oListContainer, oChildClass;
		for (var i = 0; i<iChildrenCount; i++)
		{
			oChildClass = eSrc.children[i].className.toLowerCase()
			if ("clsitemsshow" == oChildClass || "clsitemshide" == oChildClass) oListContainer = eSrc.children[i];
		}

		if (oListContainer) {
			eSrc.className = "clsshowhide" == sSrcClass ? "clsShowHideShowing" : "clsShowHide";
			oListContainer.className = "clsshowhide" == sSrcClass ? "clsItemsShow" : "clsItemsHide";
		}
			return false;
	}

	function contentsItem_click(eSrc)
	{
		if(null != eSelected) eSelected.className = "clsTocItem";
		eSrc.className = "clsTocItemSelect";
		eSelected = eSrc;
	}


	//-------------------------------------------------------------------------
	//	GLOBAL EVENT HANDLERS
	//-------------------------------------------------------------------------

	function document_click()
	{
		var eSrc = window.event.srcElement;
		window.event.cancelBubble = true;
		while ("BODY" != eSrc.tagName.toUpperCase())
		{

			if ("clsTocItem" == eSrc.className || "clsTocItemSelect" == eSrc.className) return contentsItem_click(eSrc);
			else if ("clsShowHide" == eSrc.className || "clsShowHideShowing" == eSrc.className || "clsTocHeading" == eSrc.className) return contentsHeading_click(eSrc);
			else if("showAll" == eSrc.id) return eSrc.target = "TOC";
			eSrc = eSrc.parentElement;
		}
	}

	function document_mouseover()
	{
		var eSrc = window.event.srcElement;
		if ("clsTocHeading" == eSrc.className && "clsNoExpand" != eSrc.parentElement.className) eSrc.style.color = "red";
	}

	function document_mouseout()
	{
		var eSrc = window.event.srcElement;
		if ("clsTocHeading" == eSrc.className && "clsNoExpand" != eSrc.parentElement.className) eSrc.style.color = "blue";
	}




	document.onmouseover = document_mouseover;
	document.onmouseout = document_mouseout;
	document.onclick = document_click;

	