
/* Initialize the XML file for reading */
var xmlDoc;
if (window.XMLHttpRequest) {
	  xmlDoc = new window.XMLHttpRequest();
	  xmlDoc.open("GET","roster-2009-2010.xml", false);
	  xmlDoc.send("");
	  xmlDoc = xmlDoc.responseXML;
}
// IE 5 and IE 6
else if (ActiveXObject("Microsoft.XMLDOM")) {
	  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	  xmlDoc.async = false;
	  xmlDoc.load("roster-2009-2010.xml");
}
var x = xmlDoc.getElementsByTagName("member");
var i, year;

function nextMemberBio() {
	if (i == x.length - 1) {	// Loops to the beginning of the list
		i = 0;
		displayMemberBio(i);
	} else {
		i++;
		displayMemberBio(i);
	}
}

function previousMemberBio() {
	if (i == 0) {				// Loops to the end of the list
		i = x.length - 1;
		displayMemberBio(i);
	} else {
		i--;
		displayMemberBio(i);
	}
}

function displayMemberBio(indexOfDesiredMember) {
	i = indexOfDesiredMember;
	var imgLeftSrc 			   = (x[i].getElementsByTagName("images")[0].getElementsByTagName("left")[0].childNodes[0].nodeValue);
	var imgTopSrc			   = (x[i].getElementsByTagName("images")[0].getElementsByTagName("top")[0].childNodes[0].nodeValue);
	var imgBottomSrc 		   = (x[i].getElementsByTagName("images")[0].getElementsByTagName("bottom")[0].childNodes[0].nodeValue);
	var imgRightSrc 		   = (x[i].getElementsByTagName("images")[0].getElementsByTagName("right")[0].childNodes[0].nodeValue);
	var quote				   = (x[i].getElementsByTagName("quote")[0].childNodes[0].nodeValue);
	var name				   = (x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
	var gradYear			   = (x[i].getElementsByTagName("gradYear")[0].childNodes[0].nodeValue);
	var voicePart			   = (x[i].getElementsByTagName("voicePart")[0].childNodes[0].nodeValue);
	var major				   = (x[i].getElementsByTagName("major")[0].childNodes[0].nodeValue);
	var hometown			   = (x[i].getElementsByTagName("hometown")[0].childNodes[0].nodeValue);
	var auditionSong		   = (x[i].getElementsByTagName("auditionSong")[0].childNodes[0].nodeValue);
	var favoriteMusicalArtists = (x[i].getElementsByTagName("favoriteMusicalArtists")[0].childNodes[0].nodeValue);
	var bio					   = (x[i].getElementsByTagName("bio")[0].childNodes[0].nodeValue);
	var s					   = (x[i].getElementsByTagName("solos")[0].getElementsByTagName("song"));
	var a		   			   = (x[i].getElementsByTagName("arrangements")[0].getElementsByTagName("song"));
	
	/* Create an HTML string to display on the page */
	var memberHTML = '';
	memberHTML += '<img src="' + imgLeftSrc + '" alt="' + name + ', ' + voicePart + '" class="buffer-below" />';
	memberHTML += '<div id="stacked-images"><img src="' + imgTopSrc + '" alt="' + name + ', ' + voicePart + '" class="buffer-below" />';
	memberHTML += '<img src="' + imgBottomSrc + '" alt="' + name + ', ' + voicePart + '" class="buffer-below" /></div>';
	memberHTML += '<img id="about-image-right" src="'   + imgRightSrc + '" alt="' + name + ', ' + voicePart + '" class="buffer-below" />';
	memberHTML += ('<h2 class="buffer-below">' 			+ name + ' ' + gradYear  + "</h2>");
	memberHTML += '<div id="memberInfo">';
	memberHTML += '<p class="align-center"><em>"' 		+ quote + '"</em></p>';	
	memberHTML += '<p class="align-left">';
	memberHTML += ("<b>Voice Part:</b> "				+ voicePart 			 + "<br />");
	memberHTML += ("<b>Major:</b> "						+ major					 + "<br />");
	memberHTML += ("<b>Hometown:</b> "					+ hometown				 + "<br />");
	memberHTML += ("<b>Audition Song:</b> "				+ auditionSong			 + "<br />");
	memberHTML += ("<b>Favorite Musical Artists:</b> "	+ favoriteMusicalArtists + "<br />");
	memberHTML += '</p>';
	memberHTML += '<p class="align-left">' + bio + '</p>';
	
	/* List of Solos */
	if (hasElements(s)) {
		memberHTML += ('<b>Solos:</b><br />');
		memberHTML += ('<ul class="square-bullets">');
		for (var j = 0; j < s.length; j++) {
			memberHTML += ('<li>' + s[j].childNodes[0].nodeValue + '</li>');
		}
		memberHTML += ('</ul>');
	}
	
	/* List of Arrangements */
	if (hasElements(a)) {
		memberHTML += '<br />';
		memberHTML += ('<b>Arrangements:</b><br />');
		memberHTML += ('<ul class="square-bullets">');
		for (var j = 0; j < a.length; j++) {
			memberHTML += ('<li>' + a[j].childNodes[0].nodeValue + '</li>');
		}
		memberHTML += ('</ul>');
	}
	memberHTML += '</div>';
	
	memberHTML += '<div id="memberNavBar">';
	memberHTML += '<p class="align-center">'
	memberHTML += '<a href="javascript:previousMemberBio()"><< Previous Member</a>';
	memberHTML += '<a href="javascript:displayMemberGrid(' + year + ')">Back to All Members</a>';
	memberHTML += '<a href="javascript:nextMemberBio()">Next Member >></a>' + '<br />';
	memberHTML += '</p>';
	memberHTML += '</div>';
	
	document.getElementById("show").innerHTML = memberHTML;
}

function hasElements(listOfSolos) {
	if (listOfSolos[0].childNodes[0].nodeValue == '_') return false;
	return true;
}

function displayMemberGrid(whichYear) {
	year = whichYear;
	var gridHTML = '';
	gridHTML += '<img class="buffer-below" src="' + getGroupImage(whichYear) + '" alt="Mixed Company, ' + getFormattedYear(whichYear) + ' Members" title="Mixed Company, ' + getFormattedYear(whichYear) + ' Members" />';
	gridHTML += '<h2 class="buffer-below">' + getFormattedYear(whichYear) + ' Members</h2>';
	gridHTML += '<ul class="member-list">';
	
	var name, voicePart, imgSrc;
	for (var j = 0; j < x.length; j++) {
		name      = (x[j].getElementsByTagName("name")[0].childNodes[0].nodeValue);
		voicePart = (x[j].getElementsByTagName("voicePart")[0].childNodes[0].nodeValue);
		imgSrc    = (x[j].getElementsByTagName("images")[0].getElementsByTagName("square")[0].childNodes[0].nodeValue);

		if ((j > 0) && (j % 5 == 0) && (j < x.length - 1)) {
			gridHTML += '</ul><ul class="member-list">';
		}
		
		gridHTML += '<li><a href="javascript:displayMemberBio(' + j + ')"><img src="' + imgSrc + '" alt="' + name + ', ' + voicePart + '" title="' + name + ', ' + voicePart + '" /></a><strong>' + name + '</strong><br /><em>' + voicePart + '</em></li>';
	}
	gridHTML += '</ul>';
	
	gridHTML += '<br style="clear: both;" />';
	
	document.getElementById("show").innerHTML = gridHTML;
}

function getGroupImage(whichYear) {
	return '/images/groups/group-09-10.png';
}

function getFormattedYear(whichYear) {
	return 'Current';
}