// Please document what what each these functions are doing, why they are needed. REK, 9/18/2007 //
function load() {
	if ( document.getElementById ) {
		var notes = collectNoteViews();
		if ( notes.length > 0 ) {
			prepareNoteViews(notes);
		}
	}
}
function loadHTML(div) {
	document.getElementById(div).style.display = "block";
}
function unloadHTML(div) {
	document.getElementById(div).style.display = "none";
}
function isClassName(element,testName) {
	var cn = element.className;
	cnarray = cn.split(' ');
	for (var z = 0; z < cnarray.length; z++) {
		if (cnarray[z] == testName) {
			return true;
		}
		else {
			return false;
		}
	}
}
function isLoaded(id) {
	if (document.getElementById(id)) {
		if (document.getElementById(id).style.display == 'block') {
			return true;
		}
		else {
			return false;
		}
	}
	else {
		return false;
	}
}
function prepareNoteViews(notes) {
	unloadAllNoteViews(notes);
	for (var i = 0; i < notes.length; i++) {
		var linkText = notes[i].getElementsByTagName('h3');
		noteElementLink = document.createElement("div");
		noteElementLink.className = "noteElementLink inactive"
	  noteElementLink.innerHTML = '<a href="javascript:showNoteView(' + "'" + notes[i].id + "'" + ')">' + linkText[0].innerHTML + '</a>';
	  notes[i].parentNode.insertBefore(noteElementLink, notes[i]);
	}
}
function showNoteView(id) {
	if (isLoaded(id)) {
		unloadHTML(id);
	}
	else {
		var notes = collectNoteViews();
		unloadAllNoteViews(notes);
		loadHTML(id);
	}
}
function unloadAllNoteViews(notes) {
	for (var i = 0; i < notes.length; i++) {
		if (document.getElementById(notes[i].id)) {
			unloadHTML(notes[i].id);
		}
	}
}
function collectNoteViews() {
	var notes = new Array();
	var collection = document.getElementsByTagName("div");
	for (var i = 0; i < collection.length; i++) {
		var ele = collection[i];
		if (isClassName(ele,"noteView")) {
			notes.push(ele);
		}
	}
	return notes;
}

