function events_sidenav(id, button) {
	var el = document.getElementById(id);
	if (el)
	{
		var display = el.style.display;
		el.style.display = (display == 'none' ? '' : 'none');
		
		var inner = button.innerHTML;
		button.innerHTML = (inner == '(+)' ? '(-)' : '(+)');
		
		// Expand/Collapse Another to keep size consistant
		var els = document.getElementsByClassName('sidearea_events');
		if (els.length > 0)
		{
			var found = false;
			
			for (var i = 0; i < els.length; i++)
			{
				for (var j = 0; j < els[i].childNodes.length; j++)
				{
					// Find the first UL->LI->(LAST)DIV element who's style.display is equal to this el's
					// previous state and flip it
					if (els[i].childNodes[j].nodeName == 'LI')
					{
						var lastChild = null;
						var firstChild = null;
						for(var c = 0; c < els[i].childNodes[j].childNodes.length; c++)
						{
							if (firstChild == null
								&& els[i].childNodes[j].childNodes[c].nodeName == "A"
							)
							{
								firstChild = els[i].childNodes[j].childNodes[c];
							}
							
							if (els[i].childNodes[j].childNodes[c].nodeName == "DIV"
							 && els[i].childNodes[j].childNodes[c] != el
							)
							{
								lastChild = els[i].childNodes[j].childNodes[c];
							}
						}
						
						if (lastChild != null
							&& lastChild.style.display != display)
						{
							lastChild.style.display = display;
							
							// Swap button
							var swap_inner = firstChild.innerHTML;
							firstChild.innerHTML = (swap_inner == '(+)' ? '(-)' : '(+)');
							
							found = true;
							
							break;
						}
					}
				}
				
				if (found == true)
				{
					break;
				}
			}
		}
	}
	
	return false;
}