// JavaScript Document - treemenu.js

//  assign frame target value for hyperlinks (use frame name or '_blank' '_parent' '_self' '_top')
linkTarget			= '_blank';

// calculate total number of groups
totalGroups			= masterLabelsIndex.length;

function openFolder(group) {

	// create layer name value for MM_setTextOfLayer() function
	layerName		= 'group' + group;
	
	// create offset value for array positions
	groupOffset		= group - 1;
	
	// assign relevant group values to local arrays
	labels			= masterLabelsIndex[groupOffset];
	links			= masterLinksIndex[groupOffset];
	
	// calculate offset value to determine array position for last menu item
	endOfRecord		= labels.length - 1;
	
	// create expanded folder graphics with JavaScript call to closeFolder() function
	if (group == totalGroups) {
		treeCode = '<a href="javascript:closeFolder(' + group + ');"><img src="Images/minuslst.gif" width="19" height="16" border="0" align="absbottom"></a>';
	} else {
		treeCode = '<a href="javascript:closeFolder(' + group + ');"><img src="Images/minus.gif" width="19" height="16" border="0" align="absbottom"></a>';
	}
	treeCode = treeCode + groupNames[groupOffset] + '<br>';

	// loop through each menu item and create tree graphics, text labels and hyperlinks
	for (i = 0; i < endOfRecord; i++) {
		if (group == totalGroups) {
			treeCode = treeCode + '<img src="Images/empty.gif" width="19" height="16" align="absbottom"><img src="Images/join.gif" width="19" height="16" align="absbottom">';
		} else {
			treeCode = treeCode + '<img src="Images/line.gif" width="19" height="16" align="absbottom"><img src="Images/join.gif" width="19" height="16" align="absbottom">';
		}	
		treeCode = treeCode + '<a href="' + links[i] + '" target="' + linkTarget + '"><span class="treeMenuStyle">' + labels[i] + '</span></a><br>';
	}
	
	// create alternative tree graphics, text labels and hyperlinks for last menu item
	if (group == totalGroups) {
		treeCode = treeCode + '<img src="Images/empty.gif" width="19" height="16" align="absbottom"><img src="Images/joinlast.gif" width="19" height="16" align="absbottom">';
	} else {
		treeCode = treeCode + '<img src="Images/line.gif" width="19" height="16" align="absbottom"><img src="Images/joinlast.gif" width="19" height="16" align="absbottom">';
	}
	treeCode = treeCode + '<a href="' + links[endOfRecord] + '" target="' + linkTarget + '"><span class="treeMenuStyle">' + labels[endOfRecord] + '</span></a>';
	
	// update layer with new HTML content
	MM_setTextOfLayer(layerName,'',treeCode)

}

function closeFolder(group) {

	// recreate layer name value for MM_setTextOfLayer() function
	layerName		= 'group' + group;
	
	// create offset value for array positions
	groupOffset		= group - 1;

	// assign relevant group values to local arrays
	labels			= masterLabelsIndex[groupOffset];
	links			= masterLinksIndex[groupOffset];
	
	// create collapsed folder graphics with JavaScript call to openFolder() function
	if (group == totalGroups) {
		treeCode = '<a href="javascript:openFolder(' + group + ');"><img src="Images/pluslast.gif" width="19" height="16" border="0" align="absbottom"></a>';
	} else {
		treeCode = '<a href="javascript:openFolder(' + group + ');"><img src="Images/plus.gif" width="19" height="16" border="0" align="absbottom"></a>';
	}
	treeCode = treeCode + groupNames[groupOffset];
	
	// update layer with new HTML content
	MM_setTextOfLayer(layerName,'',treeCode)
	
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_setTextOfLayer(objName,x,newText) { //v4.01
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (document.layers) {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
}
