/*
Adapted from a script by Jeremy Keith (http://www.adactio.com).
This function loops through all the 'h3' headers in the element 'extra'.
An onclick 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 false;
	if (!document.getElementById('extra')) return false;
	var sidebar = document.getElementById('extra');
	var headers = sidebar.getElementsByTagName('h3');
	for (var i=0;i<headers.length;i++) {
		var header = headers[i];
		header.onclick = function() {
			toggleHeader(this);
		}
		header.onkeypress = header.onclick;
		header.style.cursor = 'pointer';
		if (!header.getAttribute('title')) {
			header.setAttribute('title','click to hide');
		}
		if (document.cookie.indexOf(header.childNodes[0].nodeValue+"=toggled")!=-1) {
			toggleHeader(header);
		}
	}
}

function toggleHeader(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') {
			toggleDisplay(current_node);
		}
	}
	if (header.getAttribute('title') == 'click to hide') {
		header.setAttribute('title','click to display');
		document.cookie = header.childNodes[0].nodeValue+"=toggled; expires=Fri, 01 Jan 2038 00:00:00 GMT; path=/";
	} else {
		header.setAttribute('title','click to hide');
		document.cookie = header.childNodes[0].nodeValue+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
	}
}	

function toggleDisplay(element) {
	if (element.style.display != 'none') {
		element.style.display = 'none';
	} else {
		element.style.display = 'block';
	}
}
