$(document).ready(function(){
	var playlistSliding = false;
	var currentSongShown = false;
	var playItem = 0;

	var myPlayList = [
		{name:"Siblings",mp3:"audio/siblings.mp3"},
		{name:"Talis",mp3:"audio/talis.mp3"},
		{name:"Black and White",mp3:"audio/black-and-white.mp3"},
		{name:"We Have Invisible Friends",mp3:"audio/we_have_invisible_friends.mp3"}
	];

	// Local copy of jQuery selectors, for performance.
	var jpPlayTime = $("#jplayer_play_time");
	var jpTotalTime = $("#jplayer_total_time");

	$("#jquery_jplayer").jPlayer({
		ready: function() {
			displayPlayList();
			playListInit(true); // Parameter is a boolean for autoplay.
		}
	})
	.jPlayer("onProgressChange", function(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {
		jpPlayTime.text($.jPlayer.convertTime(playedTime));
		jpTotalTime.text($.jPlayer.convertTime(totalTime));
	})
	.jPlayer("onSoundComplete", function() {
		playListNext();
	});

	$("#jplayer_previous").click( function() {
		playListPrev();
		$(this).blur();
		return false;
	});

	$("#jplayer_next").click( function() {
		playListNext();
		$(this).blur();
		return false;
	});
	
	$('#jplayer_playlist').hide();
	$('#current-song').hide();
	$('#playlist').click(function(event) {
		if (playlistSliding == true) return false;
		else playlistSliding = true;
	
		if ($(this).hasClass('player-shown')) {
			$('#jplayer_playlist').slideUp('slow', function(){ playlistSliding = false;});
			$(this).removeClass('player-shown');
		} else {
			$('#jplayer_playlist').slideDown('slow', function(){ playlistSliding = false;});
			$(this).addClass('player-shown');
		}
	});
	
	$('#player-chrome').hover(
		function() {
			if (currentSongShown) {
				return;
			} else {
				currentSongShown = true;
				$('#current-song').slideDown(250);
				$('#music-player').addClass('expanded');
			}
		},
		function() {
			$('#jplayer_playlist').slideUp('slow', function(){
				$('#current-song').slideUp(200, function(){ currentSongShown = false;});
				playlistSliding = false;
				$('#music-player').removeClass('expanded');
			});
			$('#playlist').removeClass('player-shown');
		}
	);


	function displayPlayList() {
		$("#jplayer_playlist ul").empty();
		for (i=0; i < myPlayList.length; i++) {
			var listItem = (i == myPlayList.length-1) ? '<li class="jplayer_playlist_item_last">' : '<li>';
			listItem += '<a href="#" id="jplayer_playlist_item_'+i+'">'+ myPlayList[i].name +'</a></li>';
			$("#jplayer_playlist ul").append(listItem);
			$("#jplayer_playlist_item_"+i).data( "index", i ).click( function() {
				var index = $(this).data("index");
				if (playItem != index) {
					playListChange( index );
				} else {
					$("#jquery_jplayer").jPlayer("play");
				}
				$(this).blur();
				return false;
			});
		}
	}

	function playListInit(autoplay) {
		if(autoplay) {
			playListChange( playItem );
		} else {
			playListConfig( playItem );
		}
	}

	function playListConfig( index ) {
		$("#jplayer_playlist_item_"+playItem).removeClass("jplayer_playlist_current").parent().removeClass("jplayer_playlist_current");
		$("#jplayer_playlist_item_"+index).addClass("jplayer_playlist_current").parent().addClass("jplayer_playlist_current");
		$('#trackname').html($('#jplayer_playlist_item_' + index).text());
		playItem = index;
		$("#jquery_jplayer").jPlayer("setFile", myPlayList[playItem].mp3);
	}

	function playListChange( index ) {
		playListConfig( index );
		$("#jquery_jplayer").jPlayer("play");
	}

	function playListNext() {
		var index = (playItem+1 < myPlayList.length) ? playItem+1 : 0;
		playListChange( index );
	}

	function playListPrev() {
		var index = (playItem-1 >= 0) ? playItem-1 : myPlayList.length-1;
		playListChange( index );
	}
});

