var lambethEnhancements = function () {
	
	// Helpers -------------------------------------
	
	function hasClass(el, cl) {
		var arrcl = el.className.split(' ');
		var i;
		for (i=0;i < arrcl.length;i++) {
			if (arrcl[i]===cl) {return true;}
		}
		return false;
	}
	
	function addClass(el, cl) {
		if (!hasClass(el, cl)) {
			el.className = el.className + ' ' + cl;
		}
	}
	
	function removeClass(el, cl) {
		var arrcl, i;
		arrcl = el.className.split(' ');
		for (i=0;i < arrcl.length;i++) {
			if (arrcl[i]===cl) { arrcl.splice(i,1); }
		}
		el.className = arrcl.join(' ');
	}
	
	// Course listing table ----------------------------------------------------
	
	var courseGroupToggle = function() {
		var courseGroup = this.parentNode.parentNode.parentNode;
		var showHideText = this.getElementsByTagName("span")[0];
		if (hasClass(courseGroup,"closed")) {
			removeClass(courseGroup,"closed");
			addClass(courseGroup,"open");
			showHideText.innerHTML = "Hide";
			var firstCourse = courseGroup.getElementsByTagName("tr")[1];
			firstCourse.tabIndex = "-1";
			this.blur();
			firstCourse.focus();
		} else {
			removeClass(courseGroup,"open");
			addClass(courseGroup,"closed");
			showHideText.innerHTML = "Show";
		}
		return false;
	}
	
	var setupCourseGroupToggle = function() {
		var courseList = document.getElementById("course-list");
		var courseGroups = courseList.getElementsByTagName("tbody");
		for (var i = 0; i < courseGroups.length; i++) {
			addClass(courseGroups[i],"closed");
			var courseGroupHeader = courseGroups[i].getElementsByTagName("th")[0];
			var courseGroupTitle = courseGroupHeader.innerHTML;
			courseGroupHeader.innerHTML = '<a href="#"><span>Show</span> <span class="group-title">' + courseGroupTitle + '</span></a>';		
			courseGroupLink = courseGroupHeader.getElementsByTagName("a")[0];
			courseGroupLink.onclick = courseGroupToggle;
		}
	}
	
	setupCourseGroupToggle();
	
}();