function hideOnDemandBlock(block) {
	block.className = block.className.replace("selected","unselected");
}

function showOnDemandBlock(block) {
	block.className = block.className.replace("unselected","selected");
}

function initOnDemandEvents() {
	var containerId = "highlight_ondemand";
	var container = document.getElementById(containerId);
	if(!container) return;
	var expandMemory = readCookie("n_"+containerId);
	container.blocks = container.getElementsByTagName("li");
	container.expanded = (expandMemory == null) ? container.blocks[0] : container.blocks[expandMemory];
	for(var i = 0; i < container.blocks.length; i++) {
		var block = container.blocks[i];
		block.className += (container.expanded == block) ? " selected" : " unselected";
		block.order = i;
		block.heading = block.getElementsByTagName("h4")[0];
		block.heading.onmouseover = function() {
			if(this.parentNode.className.indexOf("unselected") >= 0) {
				if(container.expanded != null) {
					hideOnDemandBlock(container.expanded);
				}
				showOnDemandBlock(this.parentNode);
				container.expanded = this.parentNode;
				createCookie("n_"+containerId,this.parentNode.order,null,location.pathname);
			}
		}
	}
}

function toggleEventsView(tab) {
	var viewContainer = document.getElementById("event_views");

	viewContainer.selected.contentContainer.className = "hidden";
	viewContainer.selected.className = "unselected";
	
	tab.contentContainer.className = "visible";
	tab.className = "selected";
	
	viewContainer.selected = tab;
}

function initHeadingCollapse(container) {
	var headings = container.getElementsByTagName("h5");
	for(var i = headings.length-1; i >= 0; i--) {
		headings[i].onclick = function() {
			if(this.className.indexOf("collapsed") >= 0) {
				this.parentNode.getElementsByTagName("div")[0].style.display = "block";
				this.className = this.className.replace("collapsed","");
			}
			else {
				this.parentNode.getElementsByTagName("div")[0].style.display = "none";
				this.className += " collapsed";
			}
		}
	}
}

function initEventViewToggle(view) {
	var viewContainer = document.getElementById("event_views");
	var listView = document.getElementById("view_list");
	var calendarView = document.getElementById("view_calendar");
	
	var tabs = document.createElement("div");
	tabs.id = "view_tabs";
	
	var btnList = document.createElement("strong");
	btnList.innerHTML = listView.getElementsByTagName("h3")[0].innerHTML;
	btnList.contentContainer = listView;
	btnList.onclick = function() {
		toggleEventsView(this);	
	}
	if(view == "list") {
		viewContainer.selected = btnList;
		btnList.className = "selected";
		btnList.contentContainer.className = "visible";
	}
	else {
		btnList.className = "unselected";
		btnList.contentContainer.className = "hidden";
	}
	
	var btnCalendar = document.createElement("strong");
	btnCalendar.innerHTML = calendarView.getElementsByTagName("h3")[0].innerHTML;
	btnCalendar.contentContainer = calendarView;
	btnCalendar.onclick = function() {
		toggleEventsView(this);	
	}
	if(view == "calendar") {
		viewContainer.selected = btnCalendar;
		btnCalendar.className = "selected";
		btnCalendar.contentContainer.className = "visible";
	}
	else {
		btnCalendar.className = "unselected";
		btnCalendar.contentContainer.className = "hidden";
	}
	
	var btnSpacer = document.createElement("em");
	btnSpacer.innerHTML = " | ";
	
	tabs.appendChild(btnList);
	tabs.appendChild(btnSpacer);
	tabs.appendChild(btnCalendar);
	
	viewContainer.insertBefore(tabs,viewContainer.firstChild);
	
	initHeadingCollapse(viewContainer);
}

function groupBy(value) {
	alert("grouping by " + value);	
}