var currentSongList = [];
var allSongs = [];

function SongObject() {
	this.index = 0;
	this.title = "";
	this.fileTitle = "";
	this.lyrics = "";
	this.credits = "";
	this.mp3 = false;
	this.pdf = false;
}

function buildSongList(xml, songs) {

	var items = xml.getElementsByTagName("song");

	for (var i=0; i<items.length; i++) {
		songs[i] = new SongObject;
		if (items[i].getElementsByTagName("index")[0] != null) {
			songs[i].index = items[i].getElementsByTagName("index")[0].firstChild.nodeValue;
		} else {
			songs[i].index = 0;
		}
		if (items[i].getElementsByTagName("title")[0] != null) {
			if (items[i].getElementsByTagName("title")[0].firstChild != null) {
				songs[i].title = items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
			} else {
				songs[i].title = "";
			}		
		} else {
			songs[i].title = "";
		}
		if (items[i].getElementsByTagName("file_title")[0] != null) {
			if (items[i].getElementsByTagName("file_title")[0].firstChild != null) {
				songs[i].fileTitle = items[i].getElementsByTagName("file_title")[0].firstChild.nodeValue;
			} else {
				songs[i].fileTitle = "";
			}	
		} else {
			songs[i].fileTitle = "";
		}	
		if (items[i].getElementsByTagName("lyrics")[0] != null) {
			if (items[i].getElementsByTagName("lyrics")[0].firstChild != null) {
				songs[i].lyrics = items[i].getElementsByTagName("lyrics")[0].firstChild.nodeValue;
			} else {
				songs[i].lyrics = "";
			}
		} else {
			songs[i].lyrics = "";
		}
		if (items[i].getElementsByTagName("credits")[0] != null) {
			if (items[i].getElementsByTagName("credits")[0].firstChild != null) {
				songs[i].credits = items[i].getElementsByTagName("credits")[0].firstChild.nodeValue;
			} else {
				songs[i].credits = "";
			}
		} else {
			songs[i].credits = "";
		}		
		if (items[i].getElementsByTagName("mp3")[0] != null) {
			songs[i].mp3 = items[i].getElementsByTagName("mp3")[0].firstChild.nodeValue;
		} else {
			songs[i].mp3 = false;
		}
		if (items[i].getElementsByTagName("pdf")[0] != null) {
			songs[i].pdf = items[i].getElementsByTagName("pdf")[0].firstChild.nodeValue;
		} else {
			songs[i].pdf = false;
		}	
	}
	currentSongList = songs;
	drawSongTable();
}

function drawSongTable() {
	
	if (currentSongList.length == 0) {
		innerhtml = "";
		document.getElementById("song_list").innerHTML = innerhtml;	
		return true;
	}
	
	innerhtml = "<div id=\"header\"><ul><li class=\"title\">&nbsp;&nbsp;&nbsp;&nbsp;Title</li><li class=\"mp3\"></li><li class=\"credits\"></li><li class=\"pdf\"></li></ul></div>";
	for (i=0; i<currentSongList.length; i++) {
			innerhtml += "<div class=\"song\" onmouseover=\"songOver(this);\" onmouseout=\"songOut(this);\"><ul>";
			innerhtml += "<li class=\"title\"><a href=\"ajaxproxy.php?request=1&index=" + currentSongList[i].index + "&height=300&width=300\" title=\"" + currentSongList[i].title + " - Lyrics\" class=\"thickbox\">&nbsp;&nbsp;&nbsp;&nbsp;" + currentSongList[i].title + "</a></li>";
			//mp3
			if (currentSongList[i].mp3 == "y") {
					//innerhtml += "<li class=\"mp3\" id=\"mp3" + i + "\"></li>";
					innerhtml += "<li class=\"mp3\"><a href=\"javascript:void(0)\" onclick=\"playSong('" + i + "', '" + currentSongList[i].fileTitle + "');\"><img title=\"Listen!\"src=\"./assets/overlay.png\" /></a></li>";							
			} else {
				innerhtml += "<li class=\"mp3\">N/A</li>";
			}
			
			//Credits
			innerhtml += "<li class=\"credits\"><a href=\"ajaxproxy.php?request=4&index=" + currentSongList[i].index + "&height=300&width=300\" title=\"" + currentSongList[i].title + " - Credits\" class=\"thickbox\"><img src=\"./assets/info.png\" /></a></li>";		
			
			//PDF
			if (currentSongList[i].pdf == "y") {
				innerhtml += "<li class=\"pdf\"><a href=\"./download_music.php?index=" + currentSongList[i].index + "\"><img title=\"Download the sheet music\" src=\"./assets/music.png\" /></a></li>";
			} else {
				innerhtml += "<li class=\"pdf\"></li>";
			}
			innerhtml += "<li class=\"letter\"><a href=\"./send_to_a_friend.php?index=" + currentSongList[i].index + "\"><img title=\"Send this song to a friend\" src=\"./assets/mail.png\" /></a></li>";
			innerhtml += "</ul></div><div class=\"clear_div\"></div>";
	}
	innerhtml += "<div id=\"song_list_footer\"></div><div class=\"footnote\">* click title for song lyrics and credits for song credits</div>";
	innerhtml += "<div id=\"mp3_player\"><div id=\"close_mp3\"><a href=\"javascript:void(0)\" onclick=\"closePlayer();\">X&nbsp;&nbsp;&nbsp;&nbsp;</a></div><div id=\"mp3\"></div><div id=\"mp3_footer\"></div></div>";
	document.getElementById("song_list").innerHTML = innerhtml;
	
	for (i=0; i<currentSongList.length; i++) {
		if (currentSongList[i].mp3 == "y") {
			//embedFlashPlayer("mp3" + i, currentSongList[i].fileTitle);
		}
	}
	
	//here to make sure the AJAX call is returned.		
}

function songOver(obj) {
	obj.style.backgroundColor = "#8492ff";
	obj.getElementsByTagName("a")[0].style.color = "#333333"
}

function songOut(obj) {
	obj.style.backgroundColor = "#333333";
	obj.getElementsByTagName("a")[0].style.color = "white"
}

function closePlayer() {
	document.getElementById("mp3").innerHTML = "";
	document.getElementById("mp3_player").style.display = "none";
}

function playSong(i, title) {
   var so = new SWFObject("./code/swf/playerSingle.swf", "mymovie", "200", "80", "7", "#FFF088");
   so.addVariable("autoPlay", "yes");
   so.addVariable("soundPath", "./assets/mp3/" + title + ".mp3");
   so.addVariable("playerSkin","1");
   so.write("mp3");
   offset = (i*27) + 40;
   offset = offset + "px";
   document.getElementById("mp3_player").style.top = offset;
   document.getElementById("mp3_player").style.left = "250px";
   document.getElementById("mp3_player").style.display = "block";
}

function initializeThickBox() {
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	imgLoader = new Image();// preload image
	imgLoader.src = tb_pathToImage;	
}


function embedFlashPlayer(id, title) {
   var so = new SWFObject("./code/swf/playerMini.swf", "mymovie", "75", "20", "7", "#FFFFFF");
   so.addVariable("autoPlay", "no");
   so.addVariable("soundPath", "./assets/mp3/" + title + ".mp3");
   so.write(id);
}

function loadingOn() {
	document.getElementById("song_list").style.display = "none";
	document.getElementById("loading").style.display = "block";
}

function loadingOff() {
	document.getElementById("song_list").style.display = "block";
	document.getElementById("loading").style.display = "none";
}