var xmlHttp
var trackID
var trackLink
var artist
var title
var type
var info
var answer=[];
var response

function nextSong()
{ 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
var url="ajax-functions.php?action=grabSong"
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
 response=xmlHttp.responseText;
 answer=response.split("|");
 trackID=answer[0];
 artist=answer[1];
 title=answer[4];
 trackLink=answer[3];
 stop()
 clearVideo()
 document.getElementById("artist").innerHTML=artist
 document.getElementById("title").innerHTML=title
 loadNewVideo(trackLink, 25)  //Skip the song to 25  seconds
 button(2)
 } 
}


function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}


function updateHTML(elmId, value) {
          document.getElementById(elmId).innerHTML = value;
        }

        function setytplayerState(newState) {
          updateHTML("playerstate", newState);
        }

        function onYouTubePlayerReady(playerId) {
          ytplayer = document.getElementById("myytplayer");
          setInterval(updateytplayerInfo, 250);
          updateytplayerInfo();
          ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
        }

        function onytplayerStateChange(newState) {
          setytplayerState(newState);
        }
		
		
        // functions for the api calls
        function loadNewVideo(id, startSeconds) {
          if (ytplayer) {
            ytplayer.loadVideoById(id, parseInt(startSeconds));
			ytplayer.addEventListener("onError", "ytplayerError");
          }
		  time=0
        }

		var error;
		function ytplayerError(error){
		var url=ytplayer.getVideoUrl()
		fixSong(url);
		nextSong();
		}

        function play() {
          if (ytplayer) {
            ytplayer.playVideo();
          }
        }

        function pause() {
          if (ytplayer) {
            ytplayer.pauseVideo();
          }
        }

        function stop() {
          if (ytplayer) {
            ytplayer.stopVideo();
          }
        }

        function getPlayerState() {
          if (ytplayer) {
            return ytplayer.getPlayerState();
          }
        }

        function clearVideo() {
          if (ytplayer) {
            ytplayer.clearVideo();
          }
        }
	var ytplayer = document.getElementById("myytplayer");
    
	var songsLeft
	var loopID
	function startLoop(){
	var len = document.radios.type.length

	for (i = 0; i <len; i++) {
	if (document.radios.type[i].checked) {
	type= document.radios.type[i].value
	}
	}
	if(type=="PowerHour"){songsLeft=60;}
	if(type=="Century"){songsLeft=100;}
	button(2)
	loopID=setInterval('mainLoop()', 1000);
	}
	
	function pauseLoop(){
	clearInterval(loopID);
	pause();
	button(3);
	}
	
	function resumeLoop(){
	play();
	button(2);
	loopID=setInterval('mainLoop()', 1000);
	}
	
	function restartLoop(){
	clearInterval(loopID);
	time=59;
	totalTime=0;
	songNumber=0;
	startLoop();
	}
	
	time=59
	totalTime=0
	songNumber=0
	var timeLeft
	
		function mainLoop(){
		time++
		totalTime++
		timeLeft=60-time
		document.getElementById('timer').innerHTML=timeLeft
		document.getElementById('songsleft').innerHTML=songsLeft
			if(time>=60){
			nextSong()
			songNumber++
			time=0
			songsLeft=songsLeft-1
			}
		if(songsLeft<=0){clearInterval(loopID);}
		}
		var buttonstatus
	function button(buttonstatus){
		if(buttonstatus==1){
		document.getElementById('playb').style.display = 'block'
		document.getElementById('pauseb').style.display = 'none'
		document.getElementById('skipb').style.display = 'none'
		document.getElementById('resumeb').style.display = 'none'
		document.getElementById('restartb').style.display = 'none'
		}
		if(buttonstatus==2){
		document.getElementById('playb').style.display = 'none'
		document.getElementById('pauseb').style.display = 'block'
		document.getElementById('skipb').style.display = 'block'
		document.getElementById('resumeb').style.display = 'none'
		document.getElementById('restartb').style.display = 'block'
		}
		if(buttonstatus==3){
		document.getElementById('playb').style.display = 'none'
		document.getElementById('pauseb').style.display = 'none'
		document.getElementById('skipb').style.display = 'none'
		document.getElementById('resumeb').style.display = 'block'
		document.getElementById('restartb').style.display = 'block'
		}
	}
	
	 function requestSong(){
	if( document.getElementById('songtitle').value!='' && document.getElementById('songartist').value!=''){
		var reqartist=document.getElementById('songtitle').value
		var reqtitle=document.getElementById('songartist').value
		document.getElementById('suggest').style.display = 'none'
		document.getElementById('suggestpending').style.display = 'block'
		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null)
		 {
 		alert ("Browser does not support HTTP Request")
		 return
		 }
		var url="ajax-functions.php?action=requestSong&title="+reqtitle+"&artist="+reqartist
	xmlHttp.onreadystatechange=stateChanged2 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
	}
	function stateChanged2() 
	{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 { 
	document.getElementById('songtitle').value=''
	document.getElementById('songartist').value=''
 	document.getElementById('suggest').style.display = 'block'
	document.getElementById('suggestpending').style.display = 'none'
 	} 
	}
	} 
	
	
		 function fixSong(url){
		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null)
		 {
 		alert ("Browser does not support HTTP Request")
		 return
		 }
		 url=url.replace('http://www.youtube.com/watch?v=','');
		 url=url.split('&');
		 url=url[0];
		var url2="ajax-functions.php?action=fixSong&url="+url
	xmlHttp.onreadystatechange=stateChanged3 
	xmlHttp.open("GET",url2,true)
	xmlHttp.send(null)
	}
	function stateChanged3() 
	{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 { } 
	} 
	
	
	