/*
This function loops through all the 'h3' headers in the element 'extra'.
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.
*/
addLoadEvent(toggleExtras);
function toggleExtras() {
	if (!document.getElementById) {
		return;
	}
	if (!document.getElementById('faqs')) {
		return;
	}
	var sidebar = document.getElementById('faqs');
	var headers = sidebar.getElementsByTagName('h3');
	for (var i=0;i<headers.length;i++) {
		var header = headers[i];
		header.onclick = function() {
			toggleHeader(this);
		};
		header.style.cursor = 'pointer';
		if (!header.getAttribute('title')) {
			header.setAttribute('title','click to hide');
		}
		toggleHeader(header);
		/*
		if (document.cookie.indexOf(header.childNodes[0].nodeValue+"=toggled")!=-1) {
			toggleHeader(header);
		}
		*/
	}
}

function toggleHeader(header) {
	var box = header.parentNode;
	for (var i=0, current_node; current_node = box.childNodes[i];i++) {
		if (current_node.nodeType == 1 && current_node.nodeName != 'h3' && current_node.nodeName != 'H3') {
			toggleDisplay(current_node);
		}
	}
	if (header.getAttribute('title') == 'click to reveal answer') {
		header.setAttribute('title','click to hide answer');
		header.setAttribute("class", "collapse"); 
		header.setAttribute("className", "collapse"); 
		document.cookie = header.childNodes[0].nodeValue+"=toggled; expires=Fri, 01 Jan 2038 00:00:00 GMT; path=/";
	} else {
		header.setAttribute('title','click to reveal answer');
		header.setAttribute("class", "expand");
		header.setAttribute("className", "expand"); 
		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';
	}
}
