// JavaScript Document - treemenu.js

//  assign group names - use folder text as in page
groupNames			= new Array('Calendar','Resources','Scouting Links','More Links');

// assign text labels and hyperlinks for each menu items
labels1				= new Array('Troop 30');
links1				= new Array('Calendar.htm');

labels2				= new Array('Our Patrols','Our Eagles','Advancement','Early Rank Videos','BSA Forms','Insignia Guide');
links2				= new Array('Patrols.htm','Eagles.htm','http://www.scouting.org/BoyScouts/AdvancementandAwards.aspx','http://www.scouting.org/applications/rankvideo.aspx','http://www.scouting.org/media/forms.aspx', 'http://www.scouting.org/Media/InsigniaGuide.aspx');

labels3				= new Array('GSLAC','BSA','US Scouts','Scouting Magazine','Boys Life');
links3				= new Array('http://www.stlbsa.org','http://www.scouting.org','http://usscouts.org','http://www.scoutingmagazine.org','http://www.boyslife.org');

labels4				= new Array('Pack 30','Pack 936','Fairmont PTO','Cool Lynx');
links4				= new Array('http://www.scoutingpages.org/us/mo/pack30/index.htm','http://www.pack936.com','http://fairmount.fhsd.k12.mo.us','coolynx.htm');

// create index of text labels and hyperlinks arrays for each group
masterLabelsIndex	= new Array(labels1,labels2,labels3,labels4);
masterLinksIndex	= new Array(links1,links2,links3,links4);

//  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);
}
