// JavaScript Document

// Prerare calendar function
function prepareCalendar() {
	
	// Run browser and element checks
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;
	if (!document.getElementById("listTable")) return false;
	
	// Get the events in the calendar (td elements)
	var calendar = document.getElementById("listTable");
	var rows = calendar.getElementsByTagName("tr");
	
	// Loop through the events and set the initial properties
	for (var i=0; i < rows.length; i++) {
		// Get only the showing rows
		if (rows[i].className == "showing") {
			rows[i].openedClass = createClassString(rows[i],"opened");
			rows[i].closedClass = createClassString(rows[i],"closed");
			rows[i].className = rows[i].closedClass;
			rows[i].onclick = function() {
				openEvent(this);
			}
			rows[i].onmouseover = function() {
				this.style.cursor="pointer";
			}
			rows[i].onmouseout = function() {
				this.style.cursor="default";
			}
		}
	}
	
}

// Open Event function
function openEvent(eventItem) {
	
	// Get the events in the calendar (li elements)
	var calendar = document.getElementById("listTable");
	var rows = calendar.getElementsByTagName("tr");
	
	// Loop through the events and if any are open, close them
	for (var i=0; i < rows.length; i++) {
		if (rows[i].className == rows[i].openedClass) {
			closeEvent(rows[i]);
		}
	}
	
	// Now set the event to be opened
	eventItem.className = eventItem.openedClass;
	eventItem.onclick = function() {
		closeEvent(this);
	}
	
}

// Close Event function
function closeEvent(eventItem) {
	
	// Set the event to be closed
	eventItem.className = eventItem.closedClass;
	eventItem.onclick = function() {
		openEvent(this);
	}
	
}

// Create Class String Function
function createClassString(element,addedClass) {
	
	if (!element.className || element.className == "") {
		return addedClass;
	} else {
		var newClassName = element.className;
		newClassName += " ";
		newClassName += addedClass;
		return newClassName;
	}
	
}