// Title: tree.js
// Last update: 29 Oct 09

var tree1Start=0;
var tree1Stop=(tree1Rows-1);
var treeDepth1=1;
var tree1Next1 = "0"
var tree1Next2 = "1"

var indent = new Array(5)
	{
	indent[0] = '<img src="' + myURL + subWeb +'/images/tree/indent0.png" >'		
	indent[1] = '<img src="' + myURL + subWeb +'/images/tree/indent1.png" >'
	indent[2] = '<img src="' + myURL + subWeb +'/images/tree/indent2.png" >'
	indent[3] = '<img src="' + myURL + subWeb +'/images/tree/indent3.png" >'
	indent[4] = '<img src="' + myURL + subWeb +'/images/tree/indent4.png" >'
	indent[5] = '<img src="' + myURL + subWeb +'/images/tree/indent5.png" >'
	indent[6] = '<img src="' + myURL + subWeb +'/images/tree/indent6.png" >'
	indent[7] = '<img src="' + myURL + subWeb +'/images/tree/indent7.png" >'
	indent[8] = '<img src="' + myURL + subWeb +'/images/tree/indent8.png" >'
	indent[9] = '<img src="' + myURL + subWeb +'/images/tree/indent9.png" >'
	}
		
function treeExpand(row)
	{	
	myTree1[row][oState]= "Y";
	if ( myTree1[row][oChild] != "D")
		{	
		myTree1[row][oChildren]= "Y";
		}
	else
		{
		myTree1[row][oChildren]= "N";
		}
	
	treeDepth1 = parseInt(myTree1[row][oDepth]);

  	for (i = row+1; i < tree1Rows; i++)	
		{	
		if ( parseInt(myTree1[i][oDepth]) <= treeDepth1 )
			{
			break;
			}
		else if ( parseInt(myTree1[i][oDepth]) == treeDepth1+1 )
			{
			myTree1[i][oState]= "Y";
			myTree1[i][oChildren]= "N";
			}
		else
			{
			myTree1[i][oState]= "N";
			myTree1[i][oChildren]= "N";
			}		
		}
	treeDisplay();	
	};

function treeContract(row)
	{
	myTree1[row][oChildren]= "N";
	treeDepth1 = parseInt(myTree1[row][oDepth]);
	
  	for (i = row+1; i < tree1Rows; i++)	
		{	
		if ( parseInt(myTree1[i][oDepth]) <= treeDepth1 )
			{break;}
		myTree1[i][oState]= "N";
		myTree1[i][oChildren]= "N";
		}
	treeDisplay();
	};
	
function treeOpenAll()
	{	
	tree1Start = 0;
	tree1Stop = tree1Rows -1; 

  	for (i = tree1Start; i < tree1Stop; i++)	
		{		
		myTree1[i][oState]= "Y";
		if ( myTree1[i][oChild] != "D")
			{	
			myTree1[i][oChildren]= "Y";
			}
		else
			{
			myTree1[i][oChildren]= "N";
			}
		}
	
	tree1Next1 = "0";
	tree1Next2 = maxSections-1;

	treeDisplay();
	}

function treeCloseAll()
	{
	tree1Start = 0;
	tree1Stop = tree1Rows -1; 
	
  	for (i = tree1Start; i < tree1Stop; i++)	
		{	
		if ( parseInt(myTree1[i][oDepth]) > 0 )
			{myTree1[i][oState]= "N";}
			{myTree1[i][oChildren]= "N";}
		}
	tree1Next1 = "0"
	tree1Next2 = "2"
	treeDisplay();
	}
				
function treeOpenTo()
	{
	treeDepth1 = (document.openLevel.level.value-1);

	tree1Next2 = "0"	

	if ( treeDepth1 >= 9 )
		return;
		
	tree1Next2 = document.openLevel.level.value

  	for (i = 0; i < tree1Rows; i++)	
		{
		if ( parseInt(myTree1[i][oDepth]) < treeDepth1 )
			{
			myTree1[i][oState]= "Y";
			if ( myTree1[i][oChild] != "D")
				{	
				myTree1[i][oChildren]= "Y";
				}
			else
				{
				myTree1[i][oChildren]= "N";
				}	
			}
		else if ( parseInt(myTree1[i][oDepth]) == treeDepth1 )
			{
			myTree1[i][oState]= "Y";
			myTree1[i][oChildren]= "N";		
			}
		else
			{
			myTree1[i][oState]= "N";
			}
		}
	treeDisplay();
	}
	
function treeSections()
	{
	sectionIndex1 = parseInt(document.tree1Form.x.value);
	
		tree1Next1 = "0"
	
	if ( sectionIndex1 >= maxSections-1 )
		return;
	
	if ( sectionIndex1 < 1 )
		{
		tree1Start=0;
		tree1Next1=0;
		tree1Stop=(tree1Rows-1);
		}
	else
		{	
		tree1Next1 = document.tree1Form.x.value;
		tree1Start = parseInt(tree1Sections[sectionIndex1-1]);
		tree1Stop = parseInt(tree1Sections[sectionIndex1]);
		}
	
	treeDisplay();
	}

function treeDisplay()
	{
	var treeDiv=document.getElementById('myTree')
	
	saveTreeState();
		
	str = '<p>'
		
	str += '<input type="image" src="' + myURL + subWeb +'/images/tree/plus.bmp" onClick=treeOpenAll()>'
	str += '<a href="javascript:treeOpenAll()"> Open/All</a> <br>'
		
	str += '<input type="image" src="' + myURL + subWeb +'/images/tree/minus.bmp" onClick=treeCloseAll();>'
	str += '<a href="javascript:treeCloseAll()"> Close/All</a> <br><br>'
	
	str += '<form name="tree1Form">'
	str += '<input TYPE="radio" NAME="test" VALUE="test" onClick="treeSections();">'
	str += '<input TYPE="TEXT" NAME="x" VALUE="' + tree1Next1  + '" maxlength="1" SIZE="1" class=mybox> Section</form>'

	str += '<form name="openLevel">'
	str += '<input TYPE="radio" NAME="Open" VALUE="Open" onClick="treeOpenTo();">'
	str += '<input TYPE="TEXT" NAME="level" VALUE="' + tree1Next2  + '" maxlength="1" SIZE="1" class=mybox> Depth</form><br>'

	for (i = parseFloat(tree1Start); i != parseFloat(tree1Stop); i++)	
		{
		if ( myTree1[i][oState]== "Y" )
			{
			treeDepth1 = myTree1[i][oDepth];	
			if ( treeDepth1 != 0 )
				{
				str += '<img src="' + myURL + subWeb +'/images/tree/leaf.png">'
				str += indent[treeDepth1]
				}
			
			if (( myTree1[i][oType]!= "L" ) && ( myTree1[i][oType]!= "E" ))
				{
				if ( myTree1[i][oChildren]== "Y" )
					{
					str += '<input name="test" type=image src="' + myURL 
					str += subWeb +'/images/tree/minus.bmp" onClick=treeContract('+i+');>'
					}	
				else
					{
					str += '<input name="test" type=image src="' + myURL
					str += subWeb +'/images/tree/plus.bmp" onClick=treeExpand('+i+');>'
					}	
				}
			else
				{
				str += indent[2]
				}
			
			str += '<a href="' + myURL + "website1/html/" + myTree1[i][oTag] + '.' + myTree1[i][oLabel] + '.html">';
			
			
			if ( treeDepth1 == 0)
				{
				str += '<b><u>' + myTree1[i][oLabel] + '</u></b></a> <br>';		
				}
			else if (treeDepth1 == 1)
				{
				if ( myTree1[i][oChildren]== "Y" )
					{
					str += '<b>' + myTree1[i][oLabel] + '</b></a> <br>';
					}
				else
					{
					str += myTree1[i][oLabel] + '</a> <br>';
					}
				}
			else if (treeDepth1 == 2)
				{
				if ( myTree1[i][oChildren]== "Y" )
					{
					str += '<u><i>' + myTree1[i][oLabel] + '</i></u></a> <br>';
					}
				else
					{
					str += myTree1[i][oLabel] + '</a> <br>';
					}
				}
			else
				{
				str += myTree1[i][oLabel] + '</a> <br>';
				}
			}
		}
	str += '</p>';
	treeDiv.innerHTML = str;	
	} 

//----------------------------------------------------------
// entry function
// ---------------------------------------------------------
function treeMenu()
	{
	if ((readTreeCookie("tree1Cookie")) != null)
		{
		loadTreeState();
		}

	treeDisplay();
	}

