<!--

// for the calendar events collapsing and expanding details about events
// based on nav.js

var showMoreHTML = "... <a href=\"javascript:saveScrollCoordinates();\" title=\"Show entire description\">More &raquo;</a>";
var showLessHTML = " <a href=\"javascript:saveScrollCoordinates();\" title=\"Show truncated description\">&laquo; Less</a>"

function collapseEvents(eventsRoot) {
	// array of descriptions to possibly collapse and add "read more" links
	var eventDescTrims = getElementsByClass("descriptionTrim",eventsRoot,"span");
	var eventDescReadMores = getElementsByClass("descriptionReadMore",eventsRoot,"span");
	var eventDescExtendeds = getElementsByClass("descriptionExtended",eventsRoot,"span");
	
	// go through and add "read more" links if relevant
	for(var n = 0; n < eventDescExtendeds.length; n++) {
		if(eventDescExtendeds[n].innerHTML != "") {
			// hide extended text
			eventDescExtendeds[n].style.display = "none";
			// add "read more" link
			eventDescReadMores[n].innerHTML = showMoreHTML;
			eventDescReadMores[n].onclick = clickEventClosure(eventDescReadMores[n],eventDescExtendeds[n]);
		}
	}
}

function clickEventClosure(e1,e2) { 
	return function() { clickEvent(e1,e2); } 
}
	

function clickEvent(descReadMore,descExtended) {
	if(!descExtended.open) {
		// change "more" to "less"
		descReadMore.innerHTML = showLessHTML;
		// show extended
		descExtended.style.display = "inline";
		descExtended.open = true;
	} else {
		// re-show "more"
		descReadMore.innerHTML = showMoreHTML;
		// hide extended
		descExtended.style.display = "none";
		descExtended.open = false;
	}
}

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("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function saveScrollCoordinates() {
  document.scrollx.value = (document.all)?document.body.scrollLeft:window.pageXOffset;
  document.scrolly.value = (document.all)?document.body.scrollTop:window.pageYOffset;
} 

function scrollToCoordinates() {
  window.scrollTo(document.scrollx, document.scrolly);
} 
// -->