// Playlist JPlayer

// Player box
var jplayer_index=0;
var jplayerbox = [];

function createJPlayer( id, params ) {
	jplayerbox[jplayer_index] = {
	playItem: 0,
	player_id: id,
	playlist: []
	};
	jQuery.extend(jplayerbox[jplayer_index], params);

	jplayer_index++;
	return jplayer_index-1;
}

//	var playItem = 0;
//	var player_id = '#jquery_jplayer';

//	var myPlayList = [
//		{name:"Tempered Song",mp3:"http://www.miaowmusic.com/mp3/Miaow-01-Tempered-song.mp3",ogg:""},
//	];

function loadPlayList ( index, def, playme ) {
	var player_id=jplayerbox[index].player_id;
	if (player_id) $(player_id).stop();
	
	cleanPlayList ( index );
	var len=audio_titles[def].length;
	for (i=0; i<len; i++) {
		addtoPlayList(index, audio_titles[def][i], audio_files[def][i],"");
	}	
	
	jplayerbox[index].playItem=0;
	
	if (player_id && playme) {
		playListChange(index, 0);
		//$(player_id).play();	
	}
}

function cleanPlayList ( index ) {
	jplayerbox[index].playlist=new Array();
}

function addtoPlayList ( index, name, mp3, ogg ) {
	jplayerbox[index].playlist.push( { name: name, mp3:mp3, ogg:ogg } );
}

function showJPlayer ( index ) {

var params=jplayerbox[index];
var player_id = jplayerbox[index].player_id;
if (!params.autoplay) params.autoplay=false;

var jp=$(player_id).jPlayer({
	ready: function() {
		//displayPlayList(index); 
		playListInit(index, params.autoplay); // Parameter is a boolean for autoplay.
	},
	swfPath: pathbase+'js',
	oggSupport: false
})
.jPlayerId("play", params.play)//"player_play")
.jPlayerId("pause", params.pause)//"player_pause")
.jPlayerId("stop", params.stop)//"player_stop")
/*	.jPlayerId("loadBar", "player_progress_load_bar")
.jPlayerId("playBar", "player_progress_play_bar")
/*	.jPlayerId("volumeMin", "player_volume_min")
.jPlayerId("volumeMax", "player_volume_max")*/
.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();
	if (params.play_time) $(params.play_time).text(ptMin+":"+ptSec);
	//$("#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();
	if (params.total_time) $(params.total_time).text(ttMin+":"+ttSec);
	//$("#total_time").text(ttMin+":"+ttSec);
})
.onSoundComplete( function() {
	playListNext(index);
});

if (params.volume_bar) jp.jPlayerId("volumeBar", params.volume_bar);//"player_volume_bar")
if (params.volume_bar_value)	jp.jPlayerId("volumeBarValue", params.volume_bar_value);//"player_volume_bar_value")	

/*
$(params.player_container+" .ctrl_prev").click( function() {
	playListPrev(index);
	return false;
});

$(params.player_container+" .ctrl_next").click( function() {
	playListNext(index);
	return false;
});

$(params.player_container+" .player_volume_up").click( function() {
	var player_id=jplayerbox[index].player_id;
	var volume = $(player_id).data("jPlayer.config").volume;
	volume += 10; if (volume>100) volume=100;
	$(player_id).volume( volume );
	return false;
});	

$(params.player_container+" .player_volume_down").click( function() {
	var player_id=jplayerbox[index].player_id;
	var volume = $(player_id).data("jPlayer.config").volume;
	volume -= 10; if (volume<0) volume=0;
	$(player_id).volume( volume );
	return false;
});	
*/

}
/*
function displayPlayList(objindex) {
	
	var myPlayList=jplayerbox[objindex].playlist;
	var player_id=jplayerbox[objindex].player_id;		
	var params=jplayerbox[objindex];
	
	for (i=0; i < myPlayList.length; i++) {
		if (i==0) classvar='class="first"';
		else if (i+1==myPlayList.length) classvar='class="last"';
		else classvar='';
		//#playlist_list
		$(params.playlist_id+" ul").append("<li id='playlist_item_"+objindex+"_"+i+"' "+classvar+"><div class='i'>"+ myPlayList[i].name +"</div></li>");
		$("#playlist_item_"+objindex+"_"+i).data( "index", i ).hover(
			function() {
				
				var playItem = jplayerbox[objindex].playItem;
				
				if (playItem != $(this).data("index")) {
					$(this).addClass("playlist_hover");
				}
			},
			function() {
				$(this).removeClass("playlist_hover");
			}
		).click( function() {
			var index = $(this).data("index");
			var playItem = jplayerbox[objindex].playItem;
			
			if (playItem != index) {
				playListChange( objindex, index );
			} else {
				$(player_id).play();
			}
		});
	}
	
//		$(".scrolld").livequery(function() { $(this).jScrollPane({scrollbarWidth:7, animateTo:true}); });
	$(".scrolld").jScrollPane({scrollbarWidth:7, animateTo:true});

}
*/
function playListInit(index, autoplay) {
	var playItem = jplayerbox[index].playItem;
	if(autoplay) {
		playListChange( index, playItem );
	} else {
		playListConfig( index, playItem );
	}
}

function playListConfig( objindex, index ) {
	var playItem = jplayerbox[objindex].playItem;
	var player_id=jplayerbox[objindex].player_id;
	var myPlayList=jplayerbox[objindex].playlist;
	var params=jplayerbox[objindex];
/*	
	$("#playlist_item_"+objindex+"_"+playItem).removeClass("playlist_current");	
	$("#playlist_item_"+objindex+"_"+index).addClass("playlist_current");
	
	if (params.total_time) $(params.total_time).appendTo("#playlist_item_"+objindex+"_"+index+" .i");
	if (params.play_time) $(params.play_time).appendTo("#playlist_item_"+objindex+"_"+index+" .i");
*/	
	playItem = index;
	jplayerbox[objindex].playItem = playItem;
	$(player_id).setFile(myPlayList[playItem].mp3);//, myPlayList[playItem].ogg);
	
	if (params.songtitle) $(params.songtitle).text(myPlayList[playItem].name);
}

function playControl ( action ) {
	var prev_state;
	for (i=0, nc=jplayerbox.length; i<nc; i++) {
		var params=jplayerbox[i];
		if (params.pause && $('#'+params.pause+':visible').size()) prev_state='play'; else prev_state='stop';
		
		if (action=='pause') $(jplayerbox[i].player_id).pause();
		else if (action=='play' && params.prev_state=='play') $(jplayerbox[i].player_id).play();
		
		jplayerbox[i].prev_state=prev_state;
	}
}

function playListChange( objindex, index ) {
	var player_id=jplayerbox[objindex].player_id;
//	$(".scrolld")[0].scrollTo("#playlist_item_"+index);
	playListConfig( objindex, index );

	// Stop other
	for (i=0, nc=jplayerbox.length; i<nc; i++) if (i!=objindex) $(jplayerbox[i].player_id).stop();
	
	$(player_id).play();
}

function playListNext(objindex) {
	var playItem = jplayerbox[objindex].playItem;
	var myPlayList=jplayerbox[objindex].playlist;
	
	var index = (playItem+1 < myPlayList.length) ? playItem+1 : 0;
	playListChange( objindex, index );
}

function playListPrev(objindex) {
	var playItem = jplayerbox[objindex].playItem;
	var myPlayList=jplayerbox[objindex].playlist;
	
	var index = (playItem-1 >= 0) ? playItem-1 : myPlayList.length-1;
	playListChange( objindex, index );
}

