
var queryString;
var rt;
var xmlHttp;
var tbody;
var container;
var songID;
var alternator=0;
var commentsOpen=0;

function ajaxManager()
        {
        var args = ajaxManager.arguments;
        
        switch (args[0])
                {
                case "load_page":
                if (document.getElementById) {
                        var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
                        }
                        if (x)
                               {
                        		x.onreadystatechange = function()
                                        {
                                if (x.readyState == 4 && x.status == 200)
                                                {
                                                el = document.getElementById(args[2]);
                                                el.innerHTML = x.responseText;
                                        }
                                        }
                                x.open("GET", args[1], true);
                                x.send(null);
                               }
                        break;
                case "reload_flash_player":
                        ajaxManager('load_page', args[1]+'flashimport.html', 'radioText');
                        break;

				case "narrow_selection":
						
                        ajaxManager('load_page', 'artistview.php?userID='+args[1]+'&'+args[3]+'='+args[2], 'genreContent');
                        break;

				case "show_songs":
                  		var radioDiv = document.getElementById("radioStation");
							
						//remove previous div content
			
						removeChildNodesFrom(radioDiv);
                        break;

				case "add_song":
						
                        ajaxManager('load_page', 'anotherSong.php', 'anotherSong');
                        break;
		}
		}

function flashmsg(msg) { 
	
	createXMLHttpRequest();
	incPlayCount(msg);
	createXMLHttpRequest();
	getSimilarSongs(msg);
	 

}

function createXMLHttpRequest() {

	   if(window.ActiveXObject) {
	      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	   }
	   else {
	      xmlHttp = new XMLHttpRequest();
	   }
};

	function createQueryString() {

	   queryString = 's=' + document.getElementById("s").value;

	}


	function doAjaxPostRequest(handler,url,parameters) {
		xmlHttp.open("POST", url, true);
	    xmlHttp.onreadystatechange = handler;
	    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
	    xmlHttp.send(parameters);
	    
	}

	function changePlaylistGenre(formName) {
		doAjaxPostRequest(handlePlaylistChange,"createplaylist.php","genre="+document.getElementById(formName).value);
		
	}

	function doRequestUsingPOST(e) {

	   if(e.keyCode == 8 || e.keyCode>= 31 && e.keyCode <= 128) {
		  doAjaxPostRequest(handleStateChange,"search.php",queryString);
	      
	   }
	}

	function incRating(e,user) {

		songID=e;
        //urchinTracker("/rating.php" ); 
		doAjaxPostRequest(handleRateStateChange,"rating.php",'rating=' + '1' +'&' + 'songID=' + e +'&' + 'userID=' + user);
	}

	function decRating(e,user) {
				
		songID=e;
        //urchinTracker("/rating.php" ); 
		doAjaxPostRequest(handleRateStateChange,"rating.php",'rating=' + '-1' +'&' + 'songID=' + e +'&' + 'userID=' + user);
	}

	function updateRating (sID, inc) {
		var div = 'rating' + sID;
		
		document.getElementById(div).style.background=(inc > 0) ? '#DAA976' : '#FFD9DA';		
		inc += Number(document.getElementById(div).innerHTML);
		document.getElementById(div).innerHTML=inc;	
		document.getElementById(div).style.color='Black';	
	}
	
	function incRating2(e,user) {

		songID=e;
        //urchinTracker("/rating.php" ); 
		doAjaxPostRequest(handleRateStateChange,"rating.php",'rating=' + '1' +'&' + 'songID=' + e +'&' + 'userID=' + user);
		updateRating (e, 1);		
	}

	function decRating2(e,user) {
				
		songID=e;
        //urchinTracker("/rating.php" ); 
		doAjaxPostRequest(handleRateStateChange,"rating.php",'rating=' + '-1' +'&' + 'songID=' + e +'&' + 'userID=' + user);
		updateRating (e, -1);				
	}
	function incPlayCount(ID){
		//urchinTracker("/play" );
		doAjaxPostRequest(handlePlayStateChange,"playcount.php",'songID=' + ID);
	}

	function incBuyCount(ID){
		//urchinTracker("/buy" );
		doAjaxPostRequest(handlePlayStateChange,"buycount.php",'songID=' + ID);
	}

	function getComments(theSongID) {
		
		songID=theSongID;
		doAjaxPostRequest(handleCommentReturn,"getComments.php",'songID=' + songID);
	}

	function sendEmailLink() {
		
		//urchinTracker("/share" );
		el = document.getElementById("emailFriendField");
		emailAddress = el.value;
		el = document.getElementById("songIDToShare");
		songID = el.value;
		url = window.document.location.toString();
		doAjaxPostRequest(handleSendLinkReturn,"emailLink.php",'emailAddress=' + emailAddress + '&songID=' + songID + '&url=' + url);
	}

	function select_all()
	{
		var text_val=eval("document.textAreaForm.code");
		text_val.focus();
		text_val.select();
	}

	function getSimilarSongs(theSongID) {
		
		songID=theSongID;
		doAjaxPostRequest(handleSimilarReturn,"getSimilar.php",'songID=' + songID);
	}

	function checkFileType(form) {

		
		  var ext = form.userfile.value;
		  ext = ext.substring(ext.length-3,ext.length);
		  ext = ext.toLowerCase();
		  if(ext != 'mp3') {
			alert('You selected a .'+ext+
				  ' file; please select a .mp3 file instead!');
			return false; }
		  else
			return true; 
	}
	
	function attatchComment(comment,theSongID) {

		var commentRow = document.getElementById("comment"+theSongID);
		var td = document.createElement("td");
		td.setAttribute("colSpan","4");
		td.colSpan="4";
		var tr = document.createElement("tr");
		var td2 = document.createElement("td");
		td2.setAttribute("colSpan","3");
		td2.colSpan="3";
		td.appendChild(document.createTextNode(comment));
		td2.appendChild(document.createTextNode("posted: Today"));
		tr.appendChild(td);
		tr.appendChild(td2);
		commentRow.insertBefore(tr,commentRow.firstChild);
	}

	function hideComments(songID) {
					
			var commentDiv = document.getElementById("comment"+songID);
			
			removeChildNodesFrom(commentDiv);	
		  }


	function narrowSelection(userID,artistName,genre,categoryName) {

		var navigationDiv = document.getElementById("navigation");
		
		var artistLink = createLink(artistName,"Javascript:;","narrowSelection("+userID+",artistName,"+'"'+ genre+'"'+")","navigationArtist");

		//add link to navigationDiv
		
		navigationDiv.appendChild(artistLink);
		navigationDiv.removeChild(navigationDiv.childNodes[2]);
		
		var radioDiv = document.getElementById("genreContent");

		//remove previous div content
		removeChildNodesFrom(radioDiv);

		ajaxManager('narrow_selection',userID,genre,categoryName);
	}

	

	function showsongs(genre) {

		alert(genre);
	}

	function showSimilarSongs(songID) {

		var commentRow = document.getElementById("comment"+songID);
			
		//add new comment field, close, and save buttons
		var tr2 = document.createElement("tr");
		var td3 = document.createElement("td");
		var td4 = document.createElement("td");
		td3.setAttribute("colSpan","7");
		td3.colSpan="7";
		td4.appendChild(document.createTextNode("Other listeners liked these similar songs..."));
		tr2.appendChild(td4);
		td3.appendChild(tr2);
		

		//get similar songs

		var comments = xmlHttp.responseXML.getElementsByTagName("name");
		var artistNames = xmlHttp.responseXML.getElementsByTagName("artistName");
		var genres = xmlHttp.responseXML.getElementsByTagName("genre");
		var albumIDs = xmlHttp.responseXML.getElementsByTagName("albumID");
		var userIDs = xmlHttp.responseXML.getElementsByTagName("userID");
		var songIDs = xmlHttp.responseXML.getElementsByTagName("songID");

		j=comments.length;

		for (var i=1; i<j; i++)

		{	
			var td = document.createElement("td");
			td.setAttribute("colSpan","4");
			td.colSpan="4";
			var tr = document.createElement("tr");
			var td2 = document.createElement("td");
			td2.setAttribute("colSpan","3");
			td2.colSpan="3";
			var songArtistName=getElementText(comments[i])+"- "+getElementText(artistNames[i]);
			var songLink = createLink(songArtistName,"songview.php?songID="+getElementText(songIDs[i])+"&artist="+getElementText(artistNames[i]).trim().replace(" ","_"),"","");
			td.appendChild(songLink);
			td2.appendChild(document.createTextNode(getElementText(genres[i])));
			tr.appendChild(td);
			tr.appendChild(td2);
			td3.appendChild(tr);
			
		}

		
		commentRow.appendChild(td3);

		//add close button

	/*	var closeButton = createButton("Done","hideComments("+songID+");","backLink")

		var tr3 = document.createElement("tr");
		var td5 = document.createElement("td");

		td5.appendChild(closeButton);
		tr3.appendChild(td5);

		td3.appendChild(tr3);*/

	}
	
	String.prototype.trim = function() {
		return this.replace(/^\s+|\s+$/g,"");
	}

	function createButton(text,target,cssID){

		var newButton = document.createElement("button");
		newButton.setAttribute("href","Javascript:;");
		newButton.setAttribute("id",cssID);
		newButton.setAttribute("onclick",target);
		newButton.onclick=new Function(target);
		newButton.href="Javascript:;";
		newButton.id=cssID;
		newButton.appendChild(document.createTextNode(text));

		return newButton;
	}

	

	function showComments(songID) {

		var commentRow = document.getElementById("comment"+songID);
					
		//add save button
		
		var addComment = createButton("Save","createXMLHttpRequest();saveComment("+songID+");","addComment")
				
		//add close button

		var closeButton = createButton("Done","hideComments("+songID+");","backLink")

		//add text field

		var editor = document.createElement("div");
		
		editor.setAttribute("id", "commentEditor");
		editor.setAttribute("contentEditable", "true");
		editor.id="commentEditor";
		editor.contentEditable="true";
	
		//get comments

		var comments = xmlHttp.responseXML.getElementsByTagName("comment");
		var postDate = xmlHttp.responseXML.getElementsByTagName("postDate");
		j=comments.length;

		for (var i=0; i<j; i++)

		{	
			
			var td = document.createElement("td");
			td.setAttribute("colSpan","4");
			td.colSpan="4";
			var tr = document.createElement("tr");
			var td2 = document.createElement("td");
			td2.setAttribute("colSpan","3");
			td2.colSpan="3";
			td.appendChild(document.createTextNode(getElementText(comments[i])));
			td2.appendChild(document.createTextNode("posted: "+getElementText(postDate[i])));
			tr.appendChild(td);
			tr.appendChild(td2);
			commentRow.appendChild(tr);
			
		}
		
		//add new comment field, close, and save buttons
		var tr = document.createElement("tr");
		var td = document.createElement("td");
		td.setAttribute("colSpan","4");
		td.colSpan="4";
		td.appendChild(document.createTextNode("Comment On This Song"));
		td.appendChild(editor);
		td.appendChild(addComment);
		td.appendChild(closeButton);

		tr.appendChild(td);
		tr.appendChild(showTags(songID));
		commentRow.appendChild(tr);
		//document.getElementById("songgrid").rows[4].cells[0].colSpan = 2;
	}

	function showTags(songID) {

		
		var addComment = createButton("Save","saveTag("+songID+");","addComment2")
				
		//add close button

		var closeButton = createButton("Done","hideComments("+songID+");","backLink2")

		//add text field
		
		var editor = createElementID("textarea","tagArea");
		
		//add new comment field, close, and save buttons
		var tr = document.createElement("tr");
		var td = document.createElement("td");
		td.setAttribute("colSpan","3");
		td.colSpan="3";
		td.appendChild(document.createTextNode("Tag This Song"));
		td.appendChild(document.createElement("<br>"));
		td.appendChild(editor);
		td.appendChild(document.createElement("<br>"));
		td.appendChild(addComment);
		td.appendChild(closeButton);

		return td;
	}


	function handleCommentReturn(){

	   if(xmlHttp.readyState == 4) {
	      if(xmlHttp.status == 200) {


			 if (commentsOpen==1)
				{
					hideComments(songID);
					commentsOpen=0;

				}else{//else show comments

					showComments(songID);
					//showTags(songID);
					commentsOpen=1;

				}
	      }
	   }
	}

	function handleSimilarReturn(){

	   if(xmlHttp.readyState == 4) {
	      if(xmlHttp.status == 200) {


			 if (commentsOpen==1)
				{
					hideComments(songID);
					commentsOpen=0;

				}else{//else show comments

					showSimilarSongs(songID);
					commentsOpen=1;

				}
	      }
	   }
	}

	 function handlePlaylistChange() {
		
	   if(xmlHttp.readyState == 4) {
	      if(xmlHttp.status == 200) {
		
			var genre=xmlHttp.responseText
		    var radioDiv = document.getElementById("radioText");
			var bioText;

			genre = genre.substring(genre.indexOf('<br>') + 4);

			//remove previous div content
			
			removeChildNodesFrom(radioDiv);

            //create radio div
			
			ajaxManager('reload_flash_player',genre);

	      }
	   }
	}

	function ifAJAXDone (dothis)
	{
		if(xmlHttp.readyState == 4) {
	      if(xmlHttp.status == 200) {
		    dothis;

	      }
	   }
	}


	function handleRateStateChange() {
		
	   ifAJAXDone(parseRatingResults(songID));
	}

	function handleBioStateChange() {

	   ifAJAXDone(showBioResults());
	}

	function handleSendLinkReturn(){

		ifAJAXDone(showMessage("This song was successfully shared."));
		el = document.getElementById("overlay");
		el.style.visibility = "hidden";
	}

	function handleCommentStateChange() {
		
		ifAJAXDone(showMessage("Comment Saved."));
	}

	function handleTagStateChange() {
		
		ifAJAXDone(showMessage("Tag Saved."));
	}

	function handlePlayStateChange() {
	  
		ifAJAXDone(parsePlayResults());
	}

	function handleStateChange() {
	  
		  ifAJAXDone(parseResults());
	}

		function validateName(form){

			if (form.name.value==""){
				form.errorName.value="Required";
				return false;
				}
			else
				form.errorName.value=" ";
          		return true;
		}

		function validatePreview(form){

			if (form.preview.value==""){
				form.errorPreview.value="Required";
				return false;
				}
			else
				form.errorPreview.value=" ";
          		return true;
		}

		function validateBuyLink(form){

			if (form.buyLink.value==""){
				form.errorBuyLink.value="Required";
				return false;
				}
			else
				form.errorBuyLink.value=" ";
          		return true;
		}

		function validateGenre(form){

			if (form.genre.value==""){
          			form.errorGenre.value="Required";
				return false;
				}
			else
				form.errorGenre.value=" ";
          		return true;
		}

		function isValidEmail(str) {

			return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
		}

		function validateEmail(form){

			if (!isValidEmail(form.email.value)){
          			form.errorEmail.value="Invalid";
				return false;
				}
			else
				form.errorEmail.value=" ";
          		return true;
		}

		function validatePass(form){

			if (form.password.value==""){
          		form.errorPass.value="Required";
				return false;
				}
			else
				form.errorPass.value=" ";
          		return true;
		}

		function validateUserName(form){

			if (form.username.value==""){
          		form.errorUserName.value="Required";
				return false;
				}
			else
				form.errorUserName.value=" ";
          		return true;
		}

		function validatePasswords(form){

			if (form.password.value==form.retypePassword.value){
				form.errorPass2.value="";
				return true;
				}
			else
				form.errorPass2.value="re-enter";
				form.errorPass.value="re-enter";
				return false;
		}

		function correctPersonalForm(formName){

			if (validateName(formName) && validatePasswords(formName) && validateUserName(formName) && validatePass(formName) && validateEmail(formName)) {
				return true;
			}
			else {
			 	alert('Please fill all required fields');
			 	return false;
			}
		}


		function formCorrect(formName){

			if (formName.agree.checked==true)
			{
						
				if ((validateName(formName)) && (validateGenre(formName)) && (checkFileType(formName)))
					return true;
				else {
					alert('Please fill all required fields');
					return false;
				}
			}else{
				alert('You must agree to the Private Submission Agreement before uploading.');
				return false;
			}
		}

		function removeChildNodesFrom(element){

			while (element.hasChildNodes())
			{
				element.removeChild(element.childNodes[0]);
			}
		}

var	tinyMCEno = 1000000;

		function saveBio(userID) {
			
			var bioTextArea = document.getElementById("bioEditor"+""+userID+tinyMCEno+"");
			var bio=bioTextArea.value;
			var bioDiv = document.getElementById("bio"+""+userID+"");


     bio = tinyMCE.get("bioEditor"+userID+tinyMCEno).getContent();
     
     bio = encodeURIComponent(bio.replace(/<p>&nbsp;<\/p>/g, "<br />"));    
     tinyMCE.execCommand('mceRemoveControl',false,'"bioEditor"+userID+tinyMCEno');
     tinyMCEno++;

			removeChildNodesFrom(bioDiv);
				
		doAjaxPostRequest(handleBioStateChange,"bioEdit.php",'userID=' + userID +'&'+'bio='+bio);
			editLinkDiv = document.createElement("div");
			var editLink = createLink("Edit Bio","Javascript:;","editBio("+userID+");","");
			editLinkDiv.appendChild(editLink);
			bioDiv.innerHTML = decodeURIComponent(bio);			
			bioDiv.appendChild(editLinkDiv);
		}

		function saveComment(theSongID) {
		
			var commentDiv = document.getElementById("commentEditor");
			var comment=commentDiv.childNodes[0].nodeValue;
			attatchComment(comment,theSongID);
			doAjaxPostRequest(handleCommentStateChange,"commentEdit.php",'songID=' + theSongID +'&'+'comment='+comment +'&' + 'switch=comment');
		}


		function saveTag(theSongID) {
		
			var tagDiv = document.getElementById("tagArea");
			var tag=tagDiv.value;
			//attatchComment(comment,theSongID);
			doAjaxPostRequest(handleTagStateChange,"commentEdit.php",'songID=' + theSongID +'&'+'comment='+tag +'&' + 'switch=tag');
		}


	function createLink(text,target,onClick,cssID){

		var newLink = document.createElement("a");
		newLink.setAttribute("href",target);
		newLink.setAttribute("id",cssID);
		newLink.setAttribute("onclick",onClick);
		newLink.onclick=new Function(onClick);
		newLink.href=target;
		newLink.id=cssID;
		newLink.appendChild(document.createTextNode(text));

		return newLink;
	}

		function editBio(userID) {
			
			var bioTextArea = document.getElementById("bio"+""+userID+"");
			var bioText;
			var bio = bioTextArea.innerHTML;
            //create editor div

			if (bio.indexOf('<div>') > 0)
		  	   bio = bio.substring(0, bio.indexOf('<div>'));  	     
			if (bio.indexOf('<a') > 0)
		  	   bio = bio.substring(0, bio.indexOf('<a'));
		  	    
			bio = bio.replace(/</g, "&lt;");
			bio = bio.replace(/>/g, "&gt;");
			
			bioTextArea.innerHTML = bio;
			
			var editor = createElementID("textarea","bioEditor"+userID+tinyMCEno);
			editor.appendChild(bioTextArea.childNodes[0]);
			
			//remove previous div text
			removeChildNodesFrom(bioTextArea);
			
			saveLinkDiv = document.createElement("div");
			var saveLink = createLink("Save Bio","Javascript:;","createXMLHttpRequest();saveBio("+userID+");","");
			
			//add editordiv to page
			bioTextArea.appendChild(editor);
			saveLinkDiv.appendChild(saveLink);
			bioTextArea.appendChild(saveLinkDiv);
	tinyMCE.execCommand('mceAddControl',false,"bioEditor"+userID+tinyMCEno);	
	tinyMCE.execCommand('mceInsertContent',false, bio);
			
		}

		function createElementID(type,id){

			//returns html element with id set
		
				var element = document.createElement(type);
				element.setAttribute("id", id);
				element.id=id;
				return element;
			
		}

		function xmlToDiv(xmlTag,div)
		{
			var message = xmlHttp.responseXML.getElementsByTagName(xmlTag);
			if (div==document.getElementById("message"))
			{
				var messageDiv = createElementID("div","messaging");
				messageDiv.appendChild(document.createTextNode(getElementText(message[0])));
				div.appendChild(messageDiv)
			}else{

					div.appendChild(document.createTextNode(getElementText(message[0])));
				}
		}

		function parseRatingResults(songID) {
			
		    var messageDiv = document.getElementById("message");
			var ratingDiv = document.getElementById('rating'+songID);

			removeChildNodesFrom(messageDiv);
			removeChildNodesFrom(ratingDiv);

			xmlToDiv("message",messageDiv);
			xmlToDiv("average",ratingDiv);
			
		}

		
		
		function showMessage(message) {
			
			var messageDiv = document.getElementById("message");
			removeChildNodesFrom(messageDiv);
			var messagingDiv = createElementID("div","messaging");
			messagingDiv.appendChild(document.createTextNode(message));
			messageDiv.appendChild(messagingDiv);
		    					
		}


		function parsePlayResults() {
			
		    var messageDiv = document.getElementById("message");
			removeChildNodesFrom(messageDiv);
			xmlToDiv("message",messageDiv);
			

		}

		function showBioResults() {			
			
		    var messageDiv = document.getElementById("message");
			removeChildNodesFrom(messageDiv);
			xmlToDiv("message",messageDiv);
			
		}

		function parseResults() {
		
			var container = document.getElementById("Content");
			container.setAttribute("class", "Content");
			container.className="Content";
			var responseDiv = document.getElementById("resultCount");
			responseDiv.setAttribute("class", "content_title");
			responseDiv.className="content_title";

			removeChildNodesFrom(responseDiv);

			rt = document.createElement("table");
			rt.setAttribute("class", "songgrid");
			rt.className="songgrid";
			tbody = document.createElement("tbody");
			rt.appendChild(tbody);
			var th = document.createElement("th");
			th.appendChild(document.createTextNode("Song Name"));
			tbody.appendChild(th);
			var th = document.createElement("th");
			th.appendChild(document.createTextNode("Artist"));
			tbody.appendChild(th);
			var th = document.createElement("th");
			th.appendChild(document.createTextNode("Genre"));
			tbody.appendChild(th);

			var p = document.getElementById("text");
			p.setAttribute("class", "text");
			p.className="text";
			if(p.hasChildNodes())
				p.removeChild(p.childNodes[0]);

			var songResults = xmlHttp.responseXML.getElementsByTagName("song");
			var artistResults = xmlHttp.responseXML.getElementsByTagName("artist");
			var genreResults = xmlHttp.responseXML.getElementsByTagName("genre");
			var userIDResults = xmlHttp.responseXML.getElementsByTagName("userID");
			var albumIDResults = xmlHttp.responseXML.getElementsByTagName("albumID");
			var result = null;

			var j = songResults.length;
			if(document.getElementById("s").value)
				responseDiv.appendChild(document.createTextNode("Search Results: " + j +" Matches"));
				
			for(var i=0; i<j; i++) {
				songresult = songResults[i];
				artistresult = artistResults[i];
				genreresult = genreResults[i];
				albumIDresult = albumIDResults[i]; 
				userIDresult = userIDResults[i]; 
				parseResult(songresult,artistresult,genreresult,userIDresult,albumIDresult,i);
			}
			p.appendChild(rt);
		   
		   
		}
		
	
	
	function parseResult(songresult,artistresult,genreresult,userIDresult,albumIDresult,i) {

		   var songname = getElementText(songresult);
		   var artistname = getElementText(artistresult);
		   var genre = getElementText(genreresult);
		   var userID = getElementText(userIDresult);
		   var albumID = getElementText(albumIDresult);

		   var tr = document.createElement("tr");
		   tbody.appendChild(tr);
		   var td = document.createElement("td");
		   var songLink = document.createElement("a");
		   songLink.setAttribute("href","albumview.php?userID="+userID+"&albumID="+albumID);
		   songLink.href="albumview.php?userID="+userID+"&albumID="+albumID;
		   songLink.appendChild(document.createTextNode(songname));
		   td.appendChild(songLink);
		   tr.appendChild(td);
		   var td = document.createElement("td");
		   td.appendChild(document.createTextNode(artistname));
		   tr.appendChild(td);
		   var td = document.createElement("td");
		   var genreLink = document.createElement("a");
		   genreLink.setAttribute("href","genre.php?genre="+genre);
		   genreLink.href="genre.php?genre="+genre;
		   genreLink.appendChild(document.createTextNode(genre));
		   td.appendChild(genreLink);
		   tr.appendChild(td);
		   
		};
		

		function getElementText(pnode){
			return pnode.firstChild.nodeValue;
		};

		
		function share(songID){
			el = document.getElementById("overlay");
			el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
			hiddenField = document.getElementById("songIDToShare");
			hiddenField.value = songID;

		};
		
		
	function handleSubscribeStateChange(){
		ifAJAXDone(doSubscribeResponse());	
	}
	
	
	function doSubmitSubscribeInfo(e, n, a){
		doAjaxPostRequest(handleSubscribeStateChange, 'free_mp3_download.php','email='+e+'&name='+n+'&artistID='+a);
	}
	
	function doSubscribeResponse(){
	    var messageDiv = document.getElementById("response");
		removeChildNodesFrom(messageDiv);
		xmlToDiv("message",messageDiv);
	}