var kSidebarBoxClass = "side";
var sidebarBoxes = new Array();

function getCookie(name)
{
	var re = new RegExp(name + "=([^;]+)");
	var value = re.exec(document.cookie);
	return (value != null) ? unescape(value[1]) : null;
}

var today = new Date();
var expiry = new Date(today.getTime() + 28 * 365.24 * 24 * 60 * 60 * 1000); // plus 28 years

function setCookie(name, value)
{
	document.cookie = name + "=" + escape(value) +
					  "; expires=" + expiry.toGMTString() +
					  "; path=/";
}

function loadSidebarState()
{
/*	var cookieState = getCookie("sidebarState");
	
	if (cookieState)
	{
		var states = cookieState.split("|");
		
		for (var i=0; i < states.length; i++)
		{
			var re = new RegExp("([^\-]+)\-(.+)");
			
			var values = re.exec(states[i]);
			if (!values) continue;
			
			for (var j=0; j < sidebarBoxes.length; j++)
				if (sidebarBoxes[j].id == values[1])
					sidebarBoxes[j].hidden = (values[2] == "true");
		}
	}
*/
	for (var i=0; i < sidebarBoxes.length; i++)
		if (sidebarBoxes[i].id == "CollegeNews" || sidebarBoxes[i].id == "Events" || sidebarBoxes[i].id == "FeaturedPublication" || sidebarBoxes[i].id == "JobVacancies" || sidebarBoxes[i].id == "InThePress" || sidebarBoxes[i].id == "RecentDocuments" || sidebarBoxes[i].id == "SeasonalImages")
			sidebarBoxes[i].hidden = false;
		else
			sidebarBoxes[i].hidden = true;
}

function saveSidebarState()
{
	var state = "";
	
	for (var i=0; i < sidebarBoxes.length; i++)
		state += sidebarBoxes[i].id + "-" + sidebarBoxes[i].hidden + "|";
	
	setCookie("sidebarState", state);
}

function initializeSidebar()
{
	// don't do anything for browsers that don't support the W3C DOM
	if (!document.getElementById) return;

	var sidebar = document.getElementById('sidebar');
	
	for (var i=0; i < sidebar.childNodes.length; i++)
	{
		if (sidebar.childNodes[i].className == "section")
			sidebarBoxes.push(sidebar.childNodes[i]);
	}
	
	loadSidebarState();
	
	for (var i=0; i < sidebarBoxes.length; i++)
	{
		var b = sidebarBoxes[i];
		
		for (var j=0; j < b.childNodes.length; j++)
			if (b.childNodes[j].nodeName.toLowerCase() == "h3")
			{
				b.titleNode = b.childNodes[j];
				b.titleNode.onclick = toggleSide;
				b.titleNode.style.cursor = "pointer";
			}
			else if (b.childNodes[j].className == "content")
				b.contentNode = b.childNodes[j];
			
		if (b.hidden)
			hideSide(b);
	}
}

function toggleSide()
{
	if (!this) return;
	
	b = this.parentNode;
	
	if (b.hidden)
		showSide(b);
	else
		hideSide(b);
	
	b.hidden = !b.hidden;
	
	saveSidebarState();
}

function showSide(b)
{
	b.titleNode.style.borderBottomWidth = "2px";
	b.contentNode.style.display = "block";
}

function hideSide(b)
{
	b.titleNode.style.borderBottomWidth = "2px";
	b.contentNode.style.display = "none";
}