var currentState = "";
var oldState = "";
var playlist = new Array();
var currentTrack = 0;
var oldTrack = 0;
var player = null;
var new_playlist = new Array();

function createPlayer(playlist, skin, player) {
	var flashvars = {
		file: playlist,
		repeat: 'list',
		controlbar: 'bottom',
		backcolor: '0b0b0b',
		frontcolor: 'FFFFFF',
		screencolor: 'ec1919',
		lightcolor: 'ec1919',
		skin: skin,
		usefullscreen: 'false',
		type: 'xml'
	}
	var params = {
		allowscriptaccess: "always",
		bgcolor: "#000000",
		wmode: 'transparent'
	}
	var attributes = {
	  id: "player",
	  name: "player"
	}
	
	swfobject.embedSWF(player, "player-embed", "294","20", "8.0.0", false, flashvars, params, attributes);
}

function createPopupPlayer(playlist, skin, player) {
	var flashvars = {
		file: playlist,
		repeat: 'list',
		controlbar: 'bottom',
		backcolor: '000000',
		frontcolor: 'FFFFFF',
		screencolor: 'ec1919',
		lightcolor: 'ec1919',
		playlist: 'bottom',
		playlistsize: 180,
		skin: skin,
		usefullscreen: 'false',
		type: 'xml'
	}
	var params = {
		allowscriptaccess: "always",
		bgcolor: "#000000",
		wmode: 'transparent'
	}
	var attributes = {
	  id: "player",
	  name: "player"
	}
	
	swfobject.embedSWF(player, "player-embed-popup", "360","355", "8.0.0", false, flashvars, params, attributes);
}

function playerReady(obj) {
	
	player = $(obj.id);
	addListeners();
	


}

function addListeners() {
	if (player) { 
		player.addModelListener('ERROR','handlePlayError');	
		player.addModelListener('STATE','updatePlayerState');
		player.addControllerListener('ITEM', 'updateItem');
		player.addControllerListener('PLAYLIST', 'playlistLoaded');
	} else {
		setTimeout("addListeners()", 100);
	}
	
	// display player if needed
	if(playlist.length == 0) {
		$('player-container').style.visibility = 'hidden';
	}

}


function playlistLoaded(obj) {
	//alert('playlistLoaded');
	set_metadata();
	new_playlist = player.getPlaylist();
}

function updatePlayerState(obj) {

	currentState = obj.newstate;
	oldState = obj.oldstate;
	
	//alert('updatePlayerState - oldState: ' + oldState + ', currentState: ' + currentState);
	//alert('updatePlayerState - oldTrack: ' + oldTrack + ', currentTrack: ' + currentTrack);
	
	set_links_texts();
	
	//loads new playlist if different from current one
	//var current_playlist = $('player').getPlaylist();
	if(new_playlist.length != player.getPlaylist().length) {
	  
	  //alert(new_playlist.length+' - '+player.getPlaylist().length);
	  //alert(currentState);
	  //$('player').sendEvent('LOAD', new_playlist);
	  //
  }	

	
}

function handlePlayError(obj) {
	
	alert(obj.message);

}

function updateItem(obj) {
	//alert(playlist[obj.index].artist);
	//alert('updateItem - ' + obj.index);
	
	oldTrack = currentTrack;
	currentTrack = obj.index;
	
	set_metadata();
	set_links_texts();
	
}

function togglePlay(track_id) {
	
	//alert('togglePlay - track_id: ' + track_id + ', currentTrack: ' + currentTrack);
	
	if(track_id == currentTrack) {
		if(currentState == "PLAYING") {
			$('player').sendEvent('PLAY', false);
		}
		else
		{
			$('player').sendEvent('PLAY', true);
		}
	}
	else {
		$('player').sendEvent('ITEM', track_id);
	}
	
	
}

function set_links_texts() {
	
	//alert('set_links_texts');
	
	if ( currentState == "COMPLETED") {	
		if ( $('play_track_' + currentTrack )) { 
			//$('play_track_' + currentTrack ).innerHTML = "Play song!"; 
			$('play_track_' + currentTrack ).innerHTML = playlist[currentTrack].link_name;
			$('play_track_' + currentTrack ).removeClassName('pause');
		}
	}
	
	if ( currentState == "PLAYING") {	
		if ( $('play_track_' + currentTrack )) { 
			$('play_track_' + currentTrack ).innerHTML = "pause"; 
			$('play_track_' + currentTrack ).addClassName('pause');
		}
	}
	
	if ( currentState == "PAUSED" || currentState == "IDLE" ) {	
		if ( $('play_track_' + currentTrack )) { 
			//$('play_track_' + currentTrack ).innerHTML = "Play song!"; 
			$('play_track_' + currentTrack ).innerHTML = playlist[currentTrack].link_name;
			$('play_track_' + currentTrack ).removeClassName('pause');
		}
	}
	
	if( currentTrack != oldTrack && oldTrack != null) {
		if ( $('play_track_' + oldTrack )) {
			//$('play_track_' + oldTrack ).innerHTML = "Play song!"; 
			$('play_track_' + oldTrack ).innerHTML = playlist[oldTrack].link_name;
			$('play_track_' + oldTrack ).removeClassName('pause');
		}
	}
	


}

function set_metadata() {
	//alert('set_metadata');
	//alert($('player-nowplaying'));
	$('player-nowplaying').innerHTML = playlist[currentTrack].name;
	//$('player-nowplaying').innerHTML = playlist[currentTrack].artist;
}

function add_items(items) {
  var current_playlist = $('player').getPlaylist();
  new_playlist = current_playlist.concat(items);
  
  // loads new playlist instantly if player is not PLAYING
  if(currentState != "PLAYING")
    $('player').sendEvent('LOAD', new_playlist);
    
}

/*function print_r(obj) {
  win_print_r = window.open('about:blank', 'win_print_r');
  win_print_r.document.write('<html><body>');
  r_print_r(obj, win_print_r);
  win_print_r.document.write('</body></html>');
 }

function r_print_r(theObj, win_print_r) {
  if(theObj.constructor == Array ||
   theObj.constructor == Object){
   if (win_print_r == null)
    win_print_r = window.open('about:blank', 'win_print_r');
   }
   for(var p in theObj){
    if(theObj[p].constructor == Array||
     theObj[p].constructor == Object){
     win_print_r.document.write("<li>["+p+"] =>"+typeof(theObj)+"</li>");
     win_print_r.document.write("<ul>")
     r_print_r(theObj[p], win_print_r);
     win_print_r.document.write("</ul>")
    } else {
     win_print_r.document.write("<li>["+p+"] =>"+theObj[p]+"</li>");
    }
   }
  win_print_r.document.write("</ul>")
 }
*/