// JavaScript Document - treemenu.js
var currentLink=null;
//  assign group names - use folder text as in page
groupNames			= new Array('eEG7 Background','European Insurance Standards','Global Insurance Standards','Why Standards?<br>Information for Business Managers','Doing It!<br>Information for Technicians');

// assign text labels and hyperlinks for each menu items
labels1				= new Array('&nbsp;&nbsp;-Introduction to eEG7','&nbsp;&nbsp;-Mission & Goals','&nbsp;&nbsp;-Organisation','&nbsp;&nbsp;-Global Position','&nbsp;&nbsp;-Membership','&nbsp;&nbsp;-Contributors','&nbsp;&nbsp;-Links','&nbsp;&nbsp;-Abbreviations');
links1				= new Array('introductionToEeg7.htm','mission.htm','organisation.htm','globalPosition.htm','members.htm','contributors.htm','links.htm','Abbreviations.htm');

labels2				= new Array('&nbsp;&nbsp;-Data Model');
links2				= new Array('dataModel.htm');

labels3				= new Array('&nbsp;&nbsp;-Press Release','&nbsp;&nbsp;-Dictionary','&nbsp;&nbsp;-UN/CEFACT Core Component Library');
links3				= new Array('pressRelease.htm','globalDictionary.htm','coreComponentLibrary.htm');

labels4				= new Array('&nbsp;&nbsp;-Introduction');
links4				= new Array('busManIntro.htm');

labels5 			= new Array('&nbsp;&nbsp;-Introduction','&nbsp;&nbsp;-Tools');
links5				= new Array('techsIntro.htm','tools.htm');

// create index of text labels and hyperlinks arrays for each group
masterLabelsIndex	= new Array(labels1,labels2,labels3,labels4,labels5);
masterLinksIndex	= new Array(links1,links2,links3,links4,links5);

//  assign frame target value for hyperlinks (use frame name or '_blank' '_parent' '_self' '_top')
linkTarget			= 'MainFrame';

// calculate total number of groups
totalGroups			= masterLabelsIndex.length;

function openFolder(group) {
	
	for (i = 1; i <= totalGroups; i++) {
		if (i != group) {closeFolder(i);}
	}

	// 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
	treeCode = '<a style="color:#ff6633" href="javascript:closeFolder(' + group + ');">' + groupNames[groupOffset] + '</a><br>';

	// loop through each menu item and create tree graphics, text labels and hyperlinks
	for (i = 0; i <= endOfRecord; i++) {	
		treeCode = treeCode + '<a href="' + links[i] + '" target="' + linkTarget + '" onclick="restoreLinkColors(this)">' + labels[i] + '</a><br>';
	}
	
	// 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];

	treeCode = '<a href="javascript:openFolder(' + group + ');">' + groupNames[groupOffset] + '</a><br>';
	
	// update layer with new HTML content
	MM_setTextOfLayer(layerName,'',treeCode)
	
}

function closeFolders() {	
	for (i = 1; i <= totalGroups; i++) {
		closeFolder(i);
	}
}

function restoreLinkColors(lnk) {	
	if(currentLink!=null)
		currentLink.style.color='';
	currentLink = lnk;
	lnk.style.color='#ff6633';
}

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);
}
