/**
 * 	@author:
 *	2010 Eric Mantoani <eu@eric.com.br>
 * 	
 * 	@description:
 * 	Esta classe é um handler pro jquery.jplayer.js // www.happyworm.com/jquery/jplayer
 * 	Ao instanciá-la, devo enviar um "arrayConfig" conforme descrito no primeiro comentário abaixo.
 * 	Essa classe trabalha junto com a classe Playlist.class.js, que deve estar instanciada também, com o nome
 * 	"Playlist".
 * 	Para mais detalhes, leia os comentários iniciais de Playlist.class.js
 *
 * 	Date: 02/02/2010
 * 	Revision: 0.2
 */

/*	Estou recebendo uma varíavel playerConfig semelhante a esta:
 * 
  	var playerConfig = {
		// path do plugin
		swfPath: URL+'_libs/jPlayer',
		playItem: 0,
		
		// id do elemento que contem o objeto swf
		jPlayer: "#jquery_jplayer",
		
		// declarando os ids dos elementos de cada botão do player
		play: "player_play",
		pause: "player_pause",
		stop: "player_stop",
		loadBar: "player_progress_load_bar",
		playBar: "player_progress_play_bar",
		volumeMin: "player_volume_min",
		volumeMax: "player_volume_max",
		volumeBar: "player_volume_bar",
		volumeBarValue: "player_volume_bar_value"
	} 
 * 	
 */


Player = function(playerConfig){
	
	var _markunStart = function(media_id, mp3){
		$(playerConfig.jPlayer).setFile(mp3);
		Playlist.setNowPlaying(media_id);
		//css
		$('ul[id^="media_id_"] li').removeClass('nowPlaying');
		$('#media_id_'+media_id+' li').addClass('nowPlaying');
	}
	this.markunStart = _markunStart;
	
	var _playNow = function(media_id, mp3){
		$(playerConfig.jPlayer).setFile(mp3);
		$(playerConfig.jPlayer).play();
		Playlist.setNowPlaying(media_id);
		
		//css
		$('ul[id^="media_id_"] li').removeClass('nowPlaying');
		$('#media_id_'+media_id+' li').addClass('nowPlaying');
	}
	this.playNow = _playNow;
	
	var _stop = function(){
		$(playerConfig.jPlayer).jPlayer.stop;
	}
	this.stop = _stop;
	
	var _pause = function(){
		$(playerConfig.jPlayer).jPlayer.pause;
	}
	this.pause = _pause;
	
	var _initPlayer = function(){
		$(playerConfig.jPlayer).jPlayer({
			swfPath: playerConfig.swfPath
		})
		.jPlayerId("play", playerConfig.play)
		.jPlayerId("pause", playerConfig.pause)
		.jPlayerId("stop", playerConfig.stop)
		.jPlayerId("loadBar", playerConfig.loadBar)
		.jPlayerId("playBar", playerConfig.playBar)
		.jPlayerId("volumeMin", playerConfig.volumeMin)
		.jPlayerId("volumeMax", playerConfig.volumeMax)
		.jPlayerId("volumeBar", playerConfig.volumeBar)
		.jPlayerId("volumeBarValue", playerConfig.volumeBarValue)
		.onProgressChange( function(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {
			var myPlayedTime = new Date(playedTime);
			var ptMin = (myPlayedTime.getUTCMinutes() < 10) ? "0" + myPlayedTime.getUTCMinutes() : myPlayedTime.getUTCMinutes();
			var ptSec = (myPlayedTime.getUTCSeconds() < 10) ? "0" + myPlayedTime.getUTCSeconds() : myPlayedTime.getUTCSeconds();
			$("#play_time").text(ptMin+":"+ptSec);
	
			var myTotalTime = new Date(totalTime);
			var ttMin = (myTotalTime.getUTCMinutes() < 10) ? "0" + myTotalTime.getUTCMinutes() : myTotalTime.getUTCMinutes();
			var ttSec = (myTotalTime.getUTCSeconds() < 10) ? "0" + myTotalTime.getUTCSeconds() : myTotalTime.getUTCSeconds();
			$("#total_time").text(ttMin+":"+ttSec);
		})
		.onSoundComplete( function() {
			Playlist.playNext();
		});
	}
	this.initPlayer = _initPlayer;
	
}
