/*<![CDATA[*/

/************************************************************************************
*	Browsercheck
************************************************************************************/
var n = (document.layers) ? 1 : 0;
var ie = (document.all) ? 1 : 0;
var ff = (document.getElementById) ? 1 : 0;
var browser = (n || ie || ff);

function newImage( arg )
	{
	if( document.images )
  	{
		rslt = new Image();
		rslt.src = arg;
		return rslt;
		}
	}

function changeImage()
	{
	if( document.images && (preloadFlag == true) )
		{
		for( var i=0; i < changeImage.arguments.length; i+=2 )
			{
			document[changeImage.arguments[i]].src = changeImage.arguments[i+1];
			}
		}
	}

var preloadFlag = false;
function preloadImages()
	{
	if( document.images )
		{
		open_icon = newImage(openIcon);
		close_icon = newImage(closeIcon);
		folder_icon_open1 = newImage(folderIconOpen1);
		folder_icon_closed1 = newImage(folderIconClosed1);
		folder_icon_open2 = newImage(folderIconOpen2);
		folder_icon_closed2 = newImage(folderIconClosed2);
		preloadFlag = true;
		}
	}

preloadImages();

/************************************************************************************
*	Change this to false if you want all the submenus to get unfold when you
*	foldout a new one.
************************************************************************************/
var stayFolded = true;

/************************************************************************************
*	Making cross-browser objects
************************************************************************************/
function makeMenu( obj, nest, default_visible, folderIconID )
	{
	nest = (!nest) ? '' : 'document.' + nest + '.';
	this.css = (n) ? eval(nest + 'document.' + obj) : document.getElementById(obj).style;
	this.ref = (n) ? eval(nest + 'document.' + obj + '.document') : eval('document');
	this.height = (n) ? this.ref.height : document.getElementById(obj).offsetHeight;
	this.x = (ie) ? this.css.pixelLeft : this.css.left;
	this.y = (ie) ? this.css.pixelTop : this.css.top;
	this.hideIt = b_hideIt;
	this.showIt = b_showIt;
	this.vis = b_vis;
	this.moveIt = b_moveIt;
	this.default_visible = default_visible;
	this.folderIconID = (folderIconID) ? folderIconID : 1;
	return this;
	}

function b_showIt()
	{
	this.css.visibility = "visible";
	}

function b_hideIt()
	{
	this.css.visibility = "hidden";
	}

function b_vis()
	{
	if( this.css.visibility == "hidden" || this.css.visibility == "hide" )
		return true;
	}

function b_moveIt( x,y )
	{
	this.x = x;
	this.y = y;
	this.css.left = this.x + "px";
	this.css.top = this.y + "px";
	}

/************************************************************************************
*	Initiating the page. 
************************************************************************************/
function init()
	{
	for( i=0 ; i < oSub.length ; i++ )
		{
		if( window.createPropertyToggle )
			createPropertyToggle(i, !oSub[i].default_visible, oSub[i].folderIconID);
		if( !oSub[i].default_visible )
			oSub[i].hideIt();
		}

	for( i=1 ; i < oTop.length ; i++ )
		{
		y = oTop[i-1].y ? oTop[i-1].y : 0;
		if( !oSub[i-1].vis() )
			oTop[i].moveIt( 0, y + oTop[i-1].height + oSub[i-1].height );
		else
			oTop[i].moveIt( 0, y + oTop[i-1].height );
		}
	}

/************************************************************************************
*	Show all
************************************************************************************/
function showAllFoldouts()
	{
	if( browser )
		{
		for( i=0; i < oSub.length; i++ )
			{
			if( oSub[i].vis() )
				{
				oSub[i].showIt();
				toggleProperty(i, oSub[i].folderIconID);
				}
			}
			
		for( i=1 ; i < oTop.length ; i++ )
			{
			y = oTop[i-1].y ? oTop[i-1].y : 0;
			if( !oSub[i-1].vis() )
				oTop[i].moveIt( 0, y + oTop[i-1].height + oSub[i-1].height );
			else
				oTop[i].moveIt( 0, y + oTop[i-1].height );
			}
		}
	}

/************************************************************************************
*	Hide all
************************************************************************************/
function hideAllFoldouts()
	{
	if( browser )
		{
		for( i=0; i < oSub.length; i++ )
			{
			if( !oSub[i].vis() )
				{
				oSub[i].hideIt();
				toggleProperty(i, oSub[i].folderIconID);
				}
			}

		for( i=1; i < oTop.length; i++ )
			{
			y = oTop[i-1].y ? oTop[i-1].y : 0;
			oTop[i].moveIt( 0, y + oTop[i-1].height );
			}
		}
	}

/************************************************************************************
*	Changes the sub menus to folded or unfolded state.
************************************************************************************/
function menu( num )
	{
	if( browser )
		{
		if( !stayFolded )
			{
			for( i=0 ; i < oSub.length ; i++ )
				{
				if( i != num )
					oSub[i].hideIt();
				}
			for( i=1 ; i < oTop.length ; i++ )
				{
				y = oTop[i-1].y ? oTop[i-1].y : 0;
				oTop[i].moveIt( 0, y + oTop[i-1].height );
				}
			}

		oSub[num].vis() ? oSub[num].showIt() : oSub[num].hideIt();
		toggleProperty(num, oSub[num].folderIconID);

		for( i=1 ; i < oTop.length ; i++ )
			{
			y = oTop[i-1].y ? oTop[i-1].y : 0;
			if( !oSub[i-1].vis() )
				oTop[i].moveIt( 0, y + oTop[i-1].height + oSub[i-1].height );
			else
				oTop[i].moveIt( 0, y + oTop[i-1].height );
			}
		}
	}

function createPropertyToggle( propertyTitleID, propertyOpen, folderIconID )
	{
	if( document.createTextNode )
		{
		<!-- Folder Icon -->
		var folderIconHolder = document.getElementById('propertyFolderIcon' + propertyTitleID)
		if( !folderIconHolder )
			return;

		var toggleFolderIcon = document.createElement('img');
		toggleFolderIcon.id = 'toggleFolderIcon' + propertyTitleID;
		toggleFolderIcon.className = 'internal';
		folderIconID = (folderIconID) ? folderIconID : 1;
		toggleFolderIcon.src = propertyOpen ? eval('folderIconClosed' + folderIconID) : eval('folderIconOpen' + folderIconID);

		folderIconHolder.appendChild(toggleFolderIcon);
		<!-- Folder Icon -->

		<!-- Toggle Icon -->
		var openIconHolder = document.getElementById('propertyOpenIcon' + propertyTitleID)
		if( !openIconHolder )
			return;

		var toggleOpenIcon = document.createElement('img');
		toggleOpenIcon.id = 'toggleOpenIcon' + propertyTitleID;
		toggleOpenIcon.className = 'internal';
		toggleOpenIcon.src = propertyOpen ? openIcon : closeIcon;

		openIconHolder.appendChild(toggleOpenIcon);
		<!-- Toggle Icon -->
    
		<!-- Toggle text -->
		var linkHolder = document.getElementById('propertyTitle' + propertyTitleID)
		if( !linkHolder )
			return;

		var outerSpan = document.createElement('span');
		outerSpan.className = 'propertyToggle';

		var toggleLink = document.createElement('a');
		toggleLink.id = 'toggleLink' + propertyTitleID;
		toggleLink.className = 'internal';
		toggleLink.href = 'javascript:menu(' + propertyTitleID + ');';
		toggleLink.appendChild(document.createTextNode(propertyOpen ? propertyShowText : propertyHideText));

		outerSpan.appendChild(toggleLink);

		linkHolder.appendChild(outerSpan);
		<!-- Toggle text -->
		}
	}

function toggleProperty( propertyTitleID, folderIconID )
	{
	var toggleFolderIcon = document.getElementById('toggleFolderIcon' + propertyTitleID)
	var toggleOpenIcon = document.getElementById('toggleOpenIcon' + propertyTitleID)
	var toggleLink = document.getElementById('toggleLink' + propertyTitleID)

	if( !toggleFolderIcon || !toggleOpenIcon || !toggleLink )
			return;
	else
		{
		folderIconID = (folderIconID) ? folderIconID : 1;
		if( toggleLink.firstChild.nodeValue == propertyShowText )
			{
			changeText(toggleLink, propertyHideText);
			toggleOpenIcon.src = closeIcon;
			toggleFolderIcon.src = eval('folderIconOpen' + folderIconID);
			}
		else
			{
			changeText(toggleLink, propertyShowText);
			toggleOpenIcon.src = openIcon;
			toggleFolderIcon.src = eval('folderIconClosed' + folderIconID);
			}
		}
	}

function changeText( el, newText )
	{
	// Safari work around
	if( el.innerText )
		el.innerText = newText;
	else if( el.firstChild && el.firstChild.nodeValue )
		el.firstChild.nodeValue = newText;
	}

/* Initiating the menus onload, if it's a 4.x+ browser.
if( browser )
	onload = init; */

/*]]>*/
