/***************************************************/  
//		Detect browser version
/***************************************************/
var iBrowserVersion=parseInt(navigator.appVersion);
var bNS4=(document.layers) ? true : false;
var bIE4=((document.all)&&(iBrowserVersion>=4))?true:false;
var bIE5=((document.all)&&(iBrowserVersion>=5))?true:false;
var bVer4 = (bNS4 || bIE4) ? true	: false;

/***************************************************/
//		Current highlight
/***************************************************/
var objSelectedElement = null;

/***************************************************/
//	vHighlightElement	
/***************************************************/
function vHighlightElement (objEl)
	{
	vUnhighlightElement ();
	objSelectedElement = objEl;
	//vSetColour (objEl, strSelTextColor, strSelBGColor)
	}

/***************************************************/
//		vSetColour
/***************************************************/
function vSetColour (objThis, strTextColour, strBGColour)	
	{
	var objChildren = objThis.children;
			
	if (objChildren != null)
		{
		var j;
				
		for (j=0; j < objChildren.length; j++)
			{
			var objChild = objChildren[j];
			if (objChild.tagName == "TABLE")
				{
				var objCell = objChild.rows[0].cells[1];
						
				objCell.style.color = strTextColour;
				objCell.style.backgroundColor = strBGColour;

				}
			else
				objChild.style.color = strTextColour;
				objChild.style.backgroundColor = strBGColour;
				
			vSetColour (objChild, strTextColour, strBGColour);
			}
		}
	}
	
/***************************************************/
//		vUnhighlightElement
/***************************************************/
function vUnhighlightElement ()
	{
	if (objSelectedElement == null) return;
	
	//vSetColour (objSelectedElement, strTextColor, strBGColor)
	
	objSelectedElement = null;
	}
	
/***************************************************/
//		Write out appropriate	stylesheets...
/***************************************************/
if (bVer4) {
	with (document)	
		{
		write("<STYLE TYPE='text/css'>");
		if (bNS4) 
			{
			write(".parent	{position:relative;	visibility:visible}");
			write(".child {position:relative; visibility:visible;}");
			write(".regular {position:relative;	visibility:visible}")
			}
		else 
			{
			write(".child {display:none}")
			}
		write("</STYLE>");
		}
	}

/***************************************************/
//	iGetIndex
/***************************************************/
function	iGetIndex(el) 
	{
	var ind = null;
	var i;
	for (i=0;	i < document.layers.length; i++) 
		{		
		var objEl =	document.layers[i];
		if (objEl.id	==	el) 
			{
			ind =	i;
			break;
			}
		}
	return ind;
	}

/***************************************************/
//	vArrange
/***************************************************/
function	vArrange() 
	{
	iLevel =	1;
	iNetscapevArrangeDocument (document,	
		document.layers [firstInd].pageY	+ document.layers	[firstInd].document.height,
		firstInd+1);
	}

/***************************************************/
//	iNetscapevArrangeDocument
/***************************************************/
function	iNetscapevArrangeDocument (objDoc,	iStartY,	iFirst)
	{	
	var objLayers	= objDoc.layers;
	
	var nextY = iStartY;
	
	var i;
	for (i=iFirst; i	< objLayers.length;	i++) 
		{
		var objEl =	objLayers[i];
		
		if (objEl.visibility	!=	"hide") 
			{
			objEl.pageY = nextY;
			nextY += objEl.document.height;
			}
		}
		
	return nextY;
	}
	
/***************************************************/
//	vInitNetscapeDocument
/***************************************************/
function	vInitNetscapeDocument (objDoc)
	{
	var i;
	for (i=0;	i < objDoc.layers.length;	i++) 
		{
		var objEl =	objDoc.layers[i];
		if (objEl.id.indexOf("_") != -1) 
			objEl.visibility =	"hide";
		}
	}
	
/***************************************************/
//	vInitTree
/***************************************************/
function	vInitTree()
	{
	//window.alert('in vInitTree')
	if (!bVer4) return;
	//window.alert('passed Ver4 test')
	if (bNS4) 
		{
		//window.alert('in NS4 code')
		firstEl =	"div1P";
		firstInd = iGetIndex(firstEl);
		vArrange();
		
		vInitNetscapeDocument (document);
		vArrange();
		}
	else 
		{
		//window.alert('in not NS4 code')
		var divColl	= document.all.tags("DIV");
		var i;
		for (i=0;	i < divColl.length; i++) 
			{
			var objEl =	divColl(i);
			if (objEl.className == "child") objEl.style.display =	"none";
			}
		}
	}

/***************************************************/
//	vExpandBranch
/***************************************************/
function	vExpandBranch(el)	
	{
	//window.alert('in vExpandBranch')
	if (!bVer4) return;
	//window.alert('passed Ver4 test')
	var strImg = el + "_img";
		
	if (bIE4)	
		{
		//window.alert('in IE4 code')
		var objImage = document.images[strImg];
		
		/*
		if (objImage == null) 
		{
			//window.alert("objImage == null, exiting");
			return;
		}
		*/
		
		var objEl =	eval(el + "_C");;
		
		//	Fix an IE bug...
		if (objEl.length != null)	objEl =	objEl(0);
			
		if (objEl.style.display == "none") 
			{
			//window.alert("display == none");
			var strTempEl = el + "_";
			//var oldLength = 0;
			//var intUnderscores = 0;
			var strRoot = ""; //strTempEl.substring(0, strTempEl.indexOf("_", oldLength))
			var listArray = strTempEl.split("_");
			var i;
			
			for (i = 1; i < listArray.length; i++)
			{
				var j = 0;
				strRoot = "";
				for (j = 0; j < i; j++) 
				{
					strRoot += listArray[j];
					if (j+1 != i) strRoot += "_";
				}
				//window.alert("el: " + el + "\nstrTempEl: " + strTempEl + "\nstrRoot: " + strRoot);
				vShowIEItem (strRoot, true);
			}
			
			//vShowIEItem	(el, true);
			if (objImage != null)
			{
				var strPath = strGetPath (objImage.src);
				//window.alert("strPath: " + strPath + "\nstrImg: " + strImg);
				if (strRight (objImage.src, strDropOpenSrc.length)  == strDropOpenSrc)
					objImage.src = strPath + strDropCloseSrc;
				if (strRight (objImage.src, strSelDropOpenSrc.length) == strSelDropOpenSrc)
					objImage.src = strPath + strSelDropCloseSrc;
			}
			//vCollapseMatchingLevels (el);
			}
		else 
			{
			//window.alert("display != none");
			vShowIEItem	(el, false);
			if (objImage != null)
			{
				var strPath = strGetPath (objImage.src);
				//window.alert("strPath: " + strPath);
				if (strRight (objImage.src, strDropCloseSrc.length)  == strDropCloseSrc)
					objImage.src = strPath + strDropOpenSrc;
				if (strRight (objImage.src, strSelDropCloseSrc.length) == strSelDropCloseSrc)
					objImage.src = strPath + strSelDropOpenSrc;
			}
			vCloseImages (el);
			}
		}
	else 
		{					   
		objEl	=	eval("document." +	el	+ "_C");
		if (objEl	== null)
			alert ("document."	+ el + "_C is null")
		else
			{
			var objImage	= eval("document."	+	el + "P.document.images['" + strImg + "']");
			var strPath = strGetPath (objImage.src)
		
			if (objEl.visibility	== "hide") 
				{
				vShowNSItem (el, true);
				if (strRight (objImage.src, strDropOpenSrc.length)  == strDropOpenSrc)
					objImage.src = strPath + strDropCloseSrc;
				if (strRight (objImage.src, strSelDropOpenSrc.length) == strSelDropOpenSrc)
					objImage.src = strPath + strSelDropCloseSrc;
				}
			else 
				{
				vShowNSItem (el, false);
				if (strRight (objImage.src, strDropCloseSrc.length)  == strDropCloseSrc)
					objImage.src = strPath + strDropOpenSrc;
				if (strRight (objImage.src, strSelDropCloseSrc.length) == strSelDropCloseSrc)
					objImage.src = strPath + strSelDropOpenSrc;
				}
			}
		vArrange();
		}
}

/***************************************************/
//	vCollapseMatchingLevels
/***************************************************/
function vCollapseMatchingLevels (strItem)
	{
	strItem = strShortenItemName (strItem);
	
	var strStem = strGetStem (strItem);
	var strRight = strGetRight (strItem, strStem);
	
	if (strStem.indexOf ("_") != -1) return;
	
	if (bIE4)	
		{		
		
		// Step through the divs, closing the matching ones...
		var objDivs	=	document.all.tags("DIV");
		
		for (i=0;	i < objDivs.length; i++) 
			{
			var objThisDiv =	objDivs(i);			
			
			if (objThisDiv.style.display == "none") continue;
			
			var strID =	objThisDiv.id;
			
			if (strID.substring (strID.length-2, strID.length) != "_C") continue;
			var strID =	strShortenItemName (strID);
			
			if (strID == strItem) continue;	// Don't touch the current div			
			
			var strThisStem = strGetStem (strID);			
			if (strThisStem != strStem)
				continue;
			
			var strThisRight = strGetRight (strID, strThisStem);
			if (strThisRight != strRight)
				continue;
			
			vExpandBranch	(strID);
			}
		}
	}

/***************************************************/
//	strShortenItemName
/***************************************************/
function strShortenItemName (strItem)
	{
	var iLength = strItem.length;
	var strRight;
	
	if (strItem.substring (iLength - 1, iLength) == "P") 
		return strItem.substring (0, iLength - 1);
	
	if (strItem.substring (iLength - 2, iLength) == "_C") 
		return strItem.substring (0, iLength - 2);
		
	return strItem;		
	}
		
/***************************************************/
//	strGetStem
/***************************************************/
function strGetStem (strItem)
	{
	var iIndex;
		
	for (iIndex = strItem.length -1; iIndex > 0; iIndex--)
		{
		var cThis = strItem.substring (iIndex, iIndex + 1);
		if ( (cThis < '0') || (cThis > '9') )
			{
			iIndex++;
			break;
			}
		}
			
	if (iIndex == 0) return "";
		
	return strItem.substring (0, iIndex);
	}

/***************************************************/
//	strGetRight
/***************************************************/
function strGetRight (strItem, strStem)
	{
	var iRightIndex = strItem.indexOf ("_", strStem.length);
	if (iRightIndex < 0) return "";
	
	return strItem.substring (iRightIndex, strStem.length);
	}
	
/***************************************************/
//	vShowIEItem
/***************************************************/
function	vShowIEItem	(strItem, bShow)
	{
	var i,	strRoot	= strItem +	"_";;
	var count, oldLength = 0;
	//strRoot = strRoot.substring(0, strRoot.indexOf("_")+1);
	var objDivs	=	document.all.tags("DIV");
	
	var strParent = strItem + "P"; 
	//window.alert("vShowIEItems strParent: " + strParent + "\nstrItem: " + strItem + "\nstrRoot: " + strRoot);
	for (i=0;	i < objDivs.length; i++) 
		{
		var objThisDiv =	objDivs(i);
		
		var strID =	objThisDiv.id;
		
		if (bShow)
			{
			if (strID == strParent)
				vHighlightElement (objThisDiv);
			}
			
		if (strID.indexOf(strRoot)	!=	-1)	
			{
			if (bShow) 
				{
				var strMiddle	= strID.substring	(strRoot.length,	strID.length - 1);
				if (strMiddle.indexOf ("_") == -1)
					objThisDiv.style.display = "block";
				}
			else
				objThisDiv.style.display = "none";
			}
		}
	}
	
/***************************************************/
//	vShowNSItem
/***************************************************/
function	vShowNSItem (strItem, bShow)
	{
	var i,	strRoot;
	var objLayers	= document.layers;
	
	strRoot	= strItem + "_";
	
	for (i=0;	i < objLayers.length; i++) 
		{
		var strID =	objLayers[i].id;
		
		if (strID.indexOf(strRoot)	!=	-1)	
			{
			if (bShow) 
				{
				var strMiddle	= strID.substring	(strRoot.length,	strID.length - 1);
				
				if (strMiddle.indexOf ("_") == -1)
					objLayers[i].visibility = "show";
				}
			else
				objLayers[i].visibility = "hide";
			}
		}
	}

/***************************************************/
//		strGetPath
/***************************************************/
function	strGetPath (strRaw)
	{
	var iIndex = strRaw.lastIndexOf ("/")
	if (iIndex >	0)
		return strRaw.substring (0, iIndex +	1)
		
	return "";
	}

/***************************************************/
//		strRight
/***************************************************/
function strRight (strRaw, iAmount)
	{
	var iLength = strRaw.length;

	return strRaw.substring (iLength - iAmount, iLength);
	}
	
/***************************************************/
//	strMenuFromArticle
/***************************************************/
function strMenuFromArticle (iArticleID)
	{
	if (bIE4)	
		{		
		// Step through the divs, closing the matching ones...
		var objDivs	=	document.all.tags("DIV");
		
		for (i=0;	i < objDivs.length; i++) 
			{
			var objThisDiv =	objDivs(i);			
			
			var objChildren = objThisDiv.children;
			
			if (objChildren != null)
				{
				var j;
				
				for (j=0; j < objChildren.length; j++)
					{
					var objChild = objChildren[j];
					if (objChild.tagName == "TABLE")
						{
						var strHTML = objChild.rows[0].cells[1].innerHTML;
						var iIndex = strHTML.indexOf ("iLeftArticle=")
						
						if (iIndex == 0) continue;
						strHTML = strHTML.substring (iIndex + 13, strHTML.length);
						
						iIndex = strHTML.indexOf ("\"")
						if (iIndex == 0) continue;
						strHTML = strHTML.substring (0, iIndex);	
						
						if (parseInt (strHTML) == iArticleID)
							return strShortenItemName(objThisDiv.id);	// Found it
						}
					}
					
				}
			}
		}
		
	return "";	// Not found
	}	
	
/***************************************************/
//		vMakeMenuItemShown
/***************************************************/
function vMakeMenuItemShown (strEl)
	{
	var objDiv;
		
	if (bIE4)
		{
		objDiv = eval (strEl + "_C");
			
		if (objDiv.style.display != "none") 
			{
			objDiv = eval (strEl + "P");
			vHighlightElement (objDiv);
			return;	// It's already visible
			}
			
		var iIndex = 1, iLastIndex = 0;
		var strStem = strEl;
			
		do 
			{				
			iLastIndex = iIndex;
			iIndex = strStem.indexOf ("_", iIndex + 1);
				
			if (iIndex >= 0)
				{				
				var strTemp = strStem.substring (0, iIndex);
				objDiv = eval (strTemp + "_C");
				if (objDiv.style.display == "none") 
					vExpandBranch (strTemp);
				}
				
			}  while (iIndex > iLastIndex)
		}
	vExpandBranch (strEl);
	}

/***************************************************/
//		vCloseImages
/***************************************************/
function vCloseImages (strRoot)
	{
	if (bIE4)
		{
		var divColl	= document.all.tags("DIV");
		
		var i, iRootLength = strRoot.length;
		for (i=0;	i < divColl.length; i++) 
			{
			var objEl =	divColl(i);
			var strID = objEl.id;
			
			if (strID.substring (0, iRootLength) != strRoot) 
				continue;

			var strImg = strShortenItemName(strID) + "_img";
			var objImage = document.images[strImg];
			if (objImage == null) continue;
			
			var strPath = strGetPath (objImage.src)
				
			if (strRight (objImage.src, strDropCloseSrc.length)  == strDropCloseSrc)
				objImage.src = strPath + strDropOpenSrc;
			}
		}
	}

/***************************************************/
//	vBlur
/***************************************************/
function vBlur(obj)	
	{
	if (bIE4)
		obj.blur ();
		
	}

function T_over(strText, obj, strSelected, back, color, strImage)
{
	if (strSelected == 'True') return true ;
	status = 'Link to ' + strText ;
	swp(obj, back, color);
	if (typeof(document.images[obj.id + '_img']) == "object") document.images[obj.id + '_img'].src = strImage
	return false ;	
}
function T_out(obj, strSelected, back, color, strImage)
{
	if (strSelected == 'True') return true;
	status = '' ;
	unswp(back, color);
	if (typeof(document.images[obj.id + '_img']) == "object") document.images[obj.id + '_img'].src = strImage
	return true ;	
}

/***************************************************/
// initialize //added by Ben Hesketh for VBN 13/11/00
/***************************************************/

function initialize()
{
	if (bIE4) vInitTree();
	//window.alert('***');
	//window.alert('strSelDivId: ' + strSelDivId + ', strBIsDrop: ' + strBIsDrop + ', typeof: ' + typeof strBIsDrop);
	if (strSelDivId != "") vExpandBranch(strSelDivId);
}


/***************************************************/
//	
/***************************************************/
if (bIE4) onload = initialize;


