/*------------------------------------------------------------------- 
Author's Statement:
This script is based on ideas of the author.
You may copy, modify and use it for any purpose. The only 
condition is that if you publish web pages that use this script 
you point to its author at a suitable place and don't remove this 
Statement from it. It's your responsibility to handle possible bugs 
even if you didn't modify anything. I cannot promise any support.
Dieter Bungers
GMD (www.gmd.de) and infovation (www.infovation.de)
--------------------------------------------------------------------*/
var g_currentNode = "";
var g_currentExpanded = false;

function reDisplay(currentNumber,currentIsExpanded) 
{
	if( currentNumber != g_currentNode || g_currentExpanded != currentIsExpanded )
	{
		g_currentNode = currentNumber;
		g_currentExpanded = currentIsExpanded;

		toc.document.open();
		toc.document.write("<html>\n<head>\n" );
		
		if( treeStyleSheet != "" )
			toc.document.write( "<link rel='stylesheet' type='text/css' href='" + treeStyleSheet + "'>" );
		
		if( titleText != "" )
			toc.document.write( "<title>" + titleText + "</title>\n" );

		toc.document.write( "</head>\n<body>\n<table border=0 cellspacing=1 cellpadding=0>\n<tr>");
		var currentNumArray = currentNumber.split(".");
		var currentLevel = currentNumArray.length-1;
		var scrollY=0, addScroll=true, theHref="";

		window.status = "Working - please wait...";

		for (i=0; i<tocTab.length; i++) 
		{
			thisNumber = tocTab[i][0];
			var isCurrentNumber = (thisNumber == currentNumber);
			if( isCurrentNumber ) 
				theHref= tocTab[i][2];

			var thisNumArray = thisNumber.split(".");
			var thisLevel = thisNumArray.length-1;
			var toDisplay = true;
			if (thisLevel > 0) 
			{
				for (j=0; j<thisLevel; j++) 
				{
					toDisplay = (j>currentLevel)?false:toDisplay && (thisNumArray[j] == currentNumArray[j]);
				}
			}
			
			thisIsExpanded = toDisplay && (thisNumArray[thisLevel] == currentNumArray[thisLevel])
			
			if (currentIsExpanded) 
			{
				toDisplay = toDisplay && (thisLevel<=currentLevel);
				if (isCurrentNumber) 
					thisIsExpanded = false;
			}
			
			if (toDisplay) 
			{
				if (i==0) 
				{
					toc.document.writeln("\n<td colspan=" + (nCols+1) + ">" + titleText + "</td></tr>");
					for (k=0; k<nCols; k++) 
					{
						toc.document.write("<td>&nbsp;</td>");
					}
					
					toc.document.write("<td width=240>&nbsp;</td></tr>");
				}
				else 
				{
					if (addScroll) 
						scrollY+= 20; // node.FontSize;
					if (isCurrentNumber) 
						addScroll=false;
					var isLeaf = (i==tocTab.length-1) || (thisLevel >= tocTab[i+1][0].split(".").length-1);
					img = (isLeaf)?"leaf":(thisIsExpanded)?"minus":"plus";
					toc.document.writeln("<tr>");
					for (k=1; k<=thisLevel; k++) 
					{
						toc.document.writeln("<td>&nbsp;</td>");
					}
					
					var sLink = "<td align=right valign=center><a href=\"javaScript:parent.reDisplay('" + thisNumber + "'," + thisIsExpanded + ");";

					sLink += "\"><img src='" + img + ".gif' border=0></a></td>"
					sLink += "<td colspan=" + (nCols-thisLevel) + "><a href=\"";
					
					var styleClass = isLeaf ? "Leaf" : "Node";

					if( isCurrentNumber )
						styleClass = "selected" + styleClass;
						
					sLink += "javaScript:\parent.reDisplay('" + thisNumber + "'," + thisIsExpanded + ")\"";
					sLink += "class='" + styleClass + "'>";
					sLink += showNumbers ? (thisNumber +" ") : ""; 
					sLink += tocTab[i][1] + "</a></td></tr>";
					
					toc.document.writeln( sLink  );
				}
			}
		}
		
		toc.document.writeln("</table>\n</body>");
		toc.document.close();
		// always scroll the maximum right we can
		toc.scroll(99999,scrollY);
		
		window.status = "Done.";

		if (theHref != "" ) 
		{
			var alreadyLoaded = content.location.href.indexOf(theHref);
			
			if( alreadyLoaded == -1 )
				content.location.href = theHref;
		}
	}
}

