var sideplayer = {
	config: function(index) {
		$("#PlaylistTrack_"+(session.playlist.track)).removeClass("playing");
		$("#PlaylistTrack_"+(index)).addClass("playing");
		$('#Playlist').scrollTop(index * 19);
		session.playlist.track = index;
		$.get(session.playlist.songs[session.playlist.track].URL+".json", function(data) {
			$("#Player").css("background-image", "url("+data.Waveform+")"); 
			$("#CurrentlyPlayingPicture").html("<a href='"+data.Band.URL+"'><img src='"+data.Album.Thumbnail+"' alt='"+data.Album.Name+"'\/><\/a>");
			$("#CurrentlyPlaying").html("<a href='"+data.Band.URL+"'>\""+data.Name+"\"<\/a> <br\/> from \""+data.Album.Name+"\"");
		});
		$("#jquery_jplayer_1").jPlayer("setMedia",
			{
				mp3: session.playlist.songs[session.playlist.track].URL+".mp3",
				oga: session.playlist.songs[session.playlist.track].URL+".ogg"
			}
		);
	},
	change: function(index) {
		this.config(index);
		$("#jquery_jplayer_1").jPlayer("play");
	},
	init: function(autoplay) {
		if(session.playlist.songs.length > 0) {
			$('#Player').slideDown('slow');
			if(autoplay) {
				this.change(0);
			} else {
				this.config(0);
			}
		}
	},
	next: function() {
		var index = (session.playlist.track+1 < session.playlist.songs.length) ? session.playlist.track+1 : 0;
		this.change(index);
	},
	prev: function() {
		var index = (session.playlist.track-1 >= 0) ? session.playlist.track-1 : session.playlist.songs.length-1;
		this.change(index);
	},
	play: function(band, songs) {
		var self = this;
		$.get("/music/"+band.Guid+".json", function(data) {
			if(data.Success) {
				session.playlist.songs = songs;
				size = songs.length;
				$('#Player').slideDown('slow');
				self.init(true);
			}
		});
	},
	confirmClear: function() {
		var dialog = $('#dialog_canvas');
		if(dialog.length === 0) {
			dialog = $('<div id="dialog_canvas" style="display:hidden"><\/div>').appendTo('body');
		}
		dialog.load(
			'/dialog/playlist/clear.html', 
			{},
			function (responseText, textStatus, XMLHttpRequest) {
				dialog.dialog({
					title: 'Confirm',
					modal: true,
					resizable: false,
					buttons: {
						No: function() {
							dialog.dialog("close");
						},
						Yes: function() {
							window.location.reload();
							dialog.dialog("close");
						}
					}
				});
			}
		);
	}
};

$(document).ready(function() {
	$.history.init(function(url) {
		$("#container-center").scrollTop(100);
		$('#LoadingWait').css({left: (($(window).width()/2) - 75)+"px"}).fadeIn('slow', function() {$('#container-center').load(url === "" ? "full/home/" : "full/"+url, function() {$('#LoadingWait').fadeOut();});});
	}, { unescape: "/" });

	$("#jquery_jplayer_1").jPlayer( {
		swfPath: "/flash",
		ready: function() {
			sideplayer.init(false);
		},
		ended: function() {
			sideplayer.next();
		},
		supplied: "mp3, oga"
	});

	$("#jp_interface_1 .jp-previous").click( function() {
		sideplayer.prev();
		$(this).blur();
		return false;
	});

	$("#jp_interface_1 .jp-next").click( function() {
		sideplayer.next();
		$(this).blur();
		return false;
	});
});
