/**
 * @author Opher
 */


var currentSong=false;


function loadPlaylist(playlistObj,startPlaying){
	var playlistContainerObj=document.getElementById("playlistContainer");
	var playPauseObj=document.getElementById("but_playPause");
	
	//clear the playlist
	playlistContainerObj.innerHTML="";
	
	for (var x=0;x<playlistObj.length;x++){
		var songItem=document.createElement("div");
		var songItemLoader=document.createElement("div");
		var songItemName=document.createElement("div");
		
		songItem.className="songItem";
		songItemName.className="songName";
		songItemLoader.className="loadedBar";
		
		songItem.onclick=function(){playSong(this)}		
		songItem.playlist=playlistObj;
		songItem.songID=x;		
		songItem.id="song"+x;
		songItemName.innerHTML=playlistObj[x].songName;
		
		playlistContainerObj.appendChild(songItem);
		songItem.appendChild(songItemName);
		songItem.appendChild(songItemLoader);
								
	}
	
	if (startPlaying){
		playSong(playlistContainerObj.childNodes[0])
		playPauseObj.className="pause";
		
	}
		
}


soundIsLoading=function(){				
	var itemObj=document.getElementById("song"+this.sID.substring(0,this.sID.length-3));		
	var loaderObj=ElementsByClass(itemObj,'loadedBar',false,false)[0];	
	
	var percentLoaded=this.bytesLoaded/this.bytesTotal*100;	
	loaderObj.style.width=percentLoaded*170/100+"px";	
	}

// receives the item from the playlist obj
function playSong(songItem){	
	var songData=songItem.playlist[songItem.songID];
	var playPauseObj=document.getElementById("but_playPause");
	
	soundManager.stopAll();
	
	for (var x=0; x<songItem.parentNode.childNodes.length;x++){
		var songDiv=songItem.parentNode.childNodes[x];
		songDiv.className="songItem";			
	}
		
	songItem.className="songItem songItemSelected";
	
	var soundObj=soundManager.getSoundById(songItem.songID+"Snd");
	if (typeof(soundObj)=="undefined"){	
		soundManager.createSound({
			 id: songItem.songID+"Snd",
			 url: songData.songURL,		 
			 autoPlay: true,
			 whileloading:  soundIsLoading
		});						
	}
	else{
		soundManager.play(songItem.songID+"Snd");
	}		
	
	playPauseObj.className="pause";
	currentSong=songItem;	
}

function nextSong(){
	var playlistContainerObj=document.getElementById("playlistContainer");
		
	if (currentSong==playlistContainerObj.childNodes[playlistContainerObj.childNodes.length-1]){
		playSong(playlistContainerObj.childNodes[0])
	}
	else{		
		playSong(currentSong.nextSibling);	
	}
	
}

function prevSong(){
	var playlistContainerObj=document.getElementById("playlistContainer");
	
	if (currentSong==playlistContainerObj.childNodes[0]){
		playSong(playlistContainerObj.childNodes[playlistContainerObj.childNodes.length-1])
	}
	else{		
		playSong(currentSong.previousSibling);		
	}
	
}

function pause(){
	soundManager.pause(currentSong.songID+"Snd");
}

function resume(){
	var playlistContainerObj=document.getElementById("playlistContainer");
	
	if (currentSong){
		soundManager.resume(currentSong.songID+"Snd");
	}
	else{
		playSong(playlistContainerObj.childNodes[0])
	}
}

function togglePause(){
	var playlistContainerObj=document.getElementById("playlistContainer");
	var sndID=currentSong.songID+"Snd";
	var soundObj=soundManager.getSoundById(sndID);
	var playPauseObj=document.getElementById("but_playPause");
	
	
		if (currentSong){			
			if (!soundObj.paused){
				playPauseObj.className="play";
			}
			else
			{
				playPauseObj.className="pause";
			}
		soundManager.togglePause(sndID);		
		
	}
	else{
		playSong(playlistContainerObj.childNodes[0])
	}
}

/* Music Page - only single song playing at a given time */

function musicPageTogglePlay(songId, songUrl)
{
	if (currentSong && currentSong == songId)
	{
		var playButton = $('playButton' + songId);
		
		if (playButton.className == 'songListButton pause') // playing
		{
			playButton.className = 'songListButton play';
			soundManager.togglePause('song' + currentSong);	
		}
		else
		{
			playButton.className = 'songListButton pause';
			soundManager.resume('song' + currentSong);
		}	
	}
	else // changing to a different song or playing a new song
	{		
		if (currentSong)
		{	
			soundManager.stopAll();
			
			var playButton = $('playButton' + currentSong); // stop current song, if any
			playButton.className = 'songListButton play';
		}
		
		currentSong = songId;	
		
		var soundObj = soundManager.getSoundById('song' + currentSong);
		 
		if (typeof(soundObj)=="undefined") // song does not exist, create it
		{	
			soundManager.createSound({
				 id: 'song' + currentSong,
				 url: songUrl,		 
				 autoPlay: true
			});						
		}
		else
		{
			soundManager.play('song' + currentSong);
		}		
		
		var playButton = $('playButton' + currentSong);
		playButton.className = 'songListButton pause';
	}
}

function musicPagePauseCurrent()
{
	if (currentSong && currentSong == songUrl) // playing
	{
		soundManager.togglePause(currentSong);
	}
}


/* flash mp3 player */

var ap_instances = new Array();

function ap_stopAll(playerID) {
	for(var i = 0;i<ap_instances.length;i++) {
		try {
			if(ap_instances[i] != playerID) document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 1);
			else document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 0);
		} catch( errorObject ) {
			// stop any errors
		}
	}
}

function ap_registerPlayers() {
	var objectID;
	var objectTags = document.getElementsByTagName("object");
	for(var i=0;i<objectTags.length;i++) {
		objectID = objectTags[i].id;
		if(objectID.indexOf("audioplayer") == 0) {
			ap_instances[i] = objectID.substring(11, objectID.length);
		}
	}
}

var ap_clearID = setInterval( ap_registerPlayers, 100 );