function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp(searchClass);
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
/*
function showHideCalendar (className) {
	if (className == "all") {
		var elements = getElementsByClass("calendarevent");
		
		for (var i = 0; i < elements.length; i++) { 
			elements[i].style.display = '';
		}
		
		var checkboxes = getElementsByClass('calendarFilter');
		for (var i = 0; i < checkboxes.length; i++) {
			checkboxes[i].checked="checked";
		}
		document.getElementById('calendarShowAll').checked="checked";
	} else {
		var elements = getElementsByClass(className);
		
		for (var i = 0; i < elements.length; i++) { 
			elements[i].style.display = (elements[i].style.display != 'none' ? 'none' : '' );
		}
		
		document.getElementById('calendarShowAll').checked="";
	}
}*/

function filterbytype () {
	var filter = document.getElementById('filterby').value;
	var showpast = document.getElementById('showpastevents').value


//==================== Filter Events By Upcoming or Past ==========//
	
	
	// Get past events
	var pastevents = getElementsByClass("pastevent");
		
	// Show all events, regardless of if they have already occurred
	if ( showpast == "yes" ) {
		// Display all of the events
		for (var i = 0; i < pastevents.length; i++) { 
			pastevents[i].style.display = '';
		}
	}
	
	// Show only events that have not occurred
	else if ( showpast == "no" ) {	
		// Hide all past events
		for (var i = 0; i < pastevents.length; i++) { 
			pastevents[i].style.display = 'none';
		}
	}


//=============== Filter Events By Type =================//
	// If there is no value, then do nothing.
	if ( filter == "" || filter == "undefined" || filter == null ) {
		return;
	} 
	// If you want to show all of the events...
	else if ( filter == "all" ) {
		// Get all of the events
		var allevents = getElementsByClass("calendarevent");
		
		// Display all of them
		for (var i = 0; i < allevents.length; i++) { 
			allevents[i].style.display = '';
		}
		
	} 
	// If you want to filter by type
	else {
		// Get filter value
		var filter = filter;
		
		// Get all of the events
		var allevents = getElementsByClass("calendarevent");
	
		// Hide all of them
		for (var i = 0; i < allevents.length; i++) { 
				allevents[i].style.display = 'none';
		}
		
		// Get only the events you want to see
		var filteredevents = getElementsByClass(filter);
	
		// Show the events you want to see
		for (var i = 0; i < filteredevents.length; i++) { 
				filteredevents[i].style.display = '';
			}
	}


//==================== Filter Events By Upcoming or Past ==========//
// This is redundant code but you have to double check that the filter
// didn't break anything	
	
	// Get past events
		var pastevents = getElementsByClass("pastevent");
	
		// Show only events that have not occurred
		if ( showpast == "no" ) {	
			// Hide all past events
			for (var i = 0; i < pastevents.length; i++) { 
				pastevents[i].style.display = 'none';
			}
		}

}


