var currentSongList = [];
var allSongs = [];
var hiddenIndex = 0;
var soloFlag = false;

window.onload = init;

function init() {
	hiddenIndex = document.getElementById("hidden_index").value;
	if (hiddenIndex != 0) soloFlag = true;
	loadingOn();
	initSongs();
	initStyles();
}

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

function initSongs() {

	var ajaxSongs = new AjaxObject();
	var url = "./ajaxproxy.php?request=0";
	
	ajaxSongs.request(url, "", this.initSongsCallback);

}

function initSongsCallback(xml) {
	buildSongList(xml, allSongs);
	loadingOff();
}

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() {
	
	innerhtml = "<div class=\"right_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++) {
		if (soloFlag) {
			if (currentSongList[i].index == hiddenIndex) {
				var soloIndex = i;
				innerhtml += "<div class=\"song\"><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>";
			}
		} else {
			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=\"right_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;
	
	if (soloFlag) {
		playSong(-1,currentSongList[soloIndex].fileTitle);
		soloFlag = false;
	} else {
		for (i=0; i<currentSongList.length; i++) {
			if (currentSongList[i].mp3 == "y") {
				//embedFlashPlayer("mp3" + i, currentSongList[i].fileTitle, "no");
			}
		}
	}
	    
	initializeThickBox();	
}

function songOver(obj) {
	obj.style.backgroundColor = "#fff088";
	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","3");
   so.addVariable("overColor","#ffffff");
   so.write("mp3");
   if (i == -1) {
 	   document.getElementById("mp3_player").style.top = "110px";
	   document.getElementById("mp3_player").style.left = "0px";  
   } else {
	   offset = (i*29) + 30;
	   offset = offset + "px";
	   document.getElementById("mp3_player").style.top = offset;
	   document.getElementById("mp3_player").style.left = "190px";
   }
   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, autoPlay) {
   var so = new SWFObject("./code/swf/playerMini.swf", "mymovie", "75", "20", "7", "#FFFFFF");
   so.addVariable("autoPlay", autoPlay);
   so.addVariable("soundPath", "./assets/mp3/" + title + ".mp3");
   so.write(id);
}

//Draw radio buttons
function drawStyles() {

	var innerhtml = "<div class=\"style_radio\"><input type=\"radio\" name=\"style\" value=\"-1\" checked>&nbsp;&nbsp;All Songs</div>";
	
	for (i=0; i<styles.length; i++) {
		innerhtml += "<div class=\"style_radio\"><input type=\"radio\" name=\"style\" value=\"" + styles[i].index + "\">&nbsp;&nbsp;"+ styles[i].name + "</div>";
	}
	
	var obj = document.getElementById("style_radios");
	obj.innerHTML = innerhtml;

}


//Search Features
function searchSongs() {
	loadingOn();
	styleIndex = getCurrentRadioIndex();
	if (styleIndex == "-1") {
		currentSongList = allSongs;
		drawSongTable();
		loadingOff();
	} else {
		getSongsByStyle(styleIndex);
	}
}

function getCurrentRadioIndex() {
      for (i=0; i<document.theform.style.length; i++) 
      {
         if (document.theform.style[i].checked==true)
         {
            return document.theform.style[i].value;
         }
      }
}

function getSongsByStyle(styleIndex) {

	var ajaxSongs = new AjaxObject();
	var url = "./ajaxproxy.php?request=3&index=" + styleIndex;
	
	ajaxSongs.request(url, "", this.getSongsByStyleCallback);

}

function getSongsByStyleCallback(xml) {
	currentSongList = [];
	buildSongList(xml, currentSongList);
	loadingOff();
}

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

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

