/*
This code originated from Jeremy Keith - www.adactio.com
Modifications were made to hide an open menu when another is clicked.
*/

/*
This function loops through all the 'h3' headers in the element 'side-bar-nav'.
An onlick behaviour is added to each header.
Clicking the header will toggle the 'display' property of all the block level elements under the header.
This is done using the toggleHeader function.
That function also sets a cookie so that the display state is remembered.

This function is triggered when the page loads.
The addLoadEvent.js file is required for this.
*/

addLoadEvent(toggleExtras);

function toggleExtras()
{
	if (!document.getElementById)
	{
		return;
	}
	if (!document.getElementById('side-bar-nav'))
	{
		return;
	}
	var sidebar = document.getElementById('side-bar-nav');
	var headers = sidebar.getElementsByTagName('h3');
	for (var i=0;i<headers.length;i++)
	{
		var header = headers[i];
		header.onclick = function()
		{
			toggleHeaderClick(this);
		};
		header.style.cursor = 'pointer';
		if (!header.getAttribute('title'))
		{
			header.setAttribute('title','click to hide');
		}
		toggleHeaderLoad(header);
	}
}

function toggleHeaderLoad(header)
{
	var container = header.parentNode;
	for (var j=0;j<container.childNodes.length;j++)
	{
		var current_node = container.childNodes[j];
		if (current_node.nodeType == 1 && current_node.nodeName != 'h3' && current_node.nodeName != 'H3')
		{
			toggleDisplayLoad(current_node);
		}
	}
	if (header.getAttribute('title') == 'click to hide')
	{
		header.setAttribute('title','click to display');
	}
	else
	{
		header.setAttribute('title','click to hide');
	}
}	

function toggleDisplayLoad(element)
{
	var sidebar = document.getElementById('side-bar-nav');
	var headers = sidebar.getElementsByTagName('h3');
	for (var i=0;i<headers.length;i++)
	{
		var header = headers[i];
		var container = header.parentNode;
		for (var j=0;j<container.childNodes.length;j++)
		{
			var current_node = container.childNodes[j];
			if (current_node.nodeType == 1 && current_node.nodeName != 'h3' && current_node.nodeName != 'H3')
			{
				current_node.style.display = 'none';
			}
		}
	}
}

function toggleHeaderClick(header)
{
	var container = header.parentNode;
	for (var j=0;j<container.childNodes.length;j++)
	{
		var current_node = container.childNodes[j];
		if (current_node.nodeType == 1 && current_node.nodeName != 'h3' && current_node.nodeName != 'H3')
		{
			toggleDisplayClick(current_node);
		}
	}
	if (header.getAttribute('title') == 'click to hide')
	{
		header.setAttribute('title','click to display');
	}
	else
	{
		header.setAttribute('title','click to hide');
	}
}	

function toggleDisplayClick(element)
{
	var sidebar = document.getElementById('side-bar-nav');
	var headers = sidebar.getElementsByTagName('h3');
	for (var i=0;i<headers.length;i++)
	{
		var header = headers[i];
		var container = header.parentNode;
		for (var j=0;j<container.childNodes.length;j++)
		{
			var current_node = container.childNodes[j];
			if (current_node.nodeType == 1 && current_node.nodeName != 'h3' && current_node.nodeName != 'H3')
			{
				current_node.style.display = 'none';
			}
		}
	}
	if (element.style.display != 'none')
	{
		element.style.display = 'none';
	}
	else
	{
		element.style.display = 'block';
	}
}