$(document).ready(function(){

	var Playlist = function(instance, playlist, options) {
		var self = this;

		this.instance = instance; // String: To associate specific HTML with this playlist
		this.playlist = playlist; // Array of Objects: The playlist
		this.options = options; // Object: The jPlayer constructor options for this playlist

		this.current = 0;

		this.cssId = {
			jPlayer: "jquery_jplayer_",
			interface: "jp_interface_",
			playlist: "jp_playlist_"
		};
		this.cssSelector = {};

		$.each(this.cssId, function(entity, id) {
			self.cssSelector[entity] = "#" + id + self.instance;
		});

		if(!this.options.cssSelectorAncestor) {
			this.options.cssSelectorAncestor = this.cssSelector.interface;
		}

		$(this.cssSelector.jPlayer).jPlayer(this.options);

		$(this.cssSelector.interface + " .jp-previous").click(function() {
			self.playlistPrev();
			$(this).blur();
			return false;
		});

		$(this.cssSelector.interface + " .jp-next").click(function() {
			self.playlistNext();
			$(this).blur();
			return false;
		});
	};

	Playlist.prototype = {
		displayPlaylist: function() {
			var self = this;
			$(this.cssSelector.playlist + " ul").empty();
			for (i=0; i < this.playlist.length; i++) {
				var listItem = (i === this.playlist.length-1) ? "<li class='jp-playlist-last'>" : "<li>";
				listItem += "<a href='#' id='" + this.cssId.playlist + this.instance + "_item_" + i +"' tabindex='1'>"+ this.playlist[i].name +"</a>";

				// Create links to free media
				if(this.playlist[i].free) {
					var first = true;
					listItem += "<div class='jp-free-media'>(";
					$.each(this.playlist[i], function(property,value) {
						if($.jPlayer.prototype.format[property]) { // Check property is a media format.
							if(first) {
								first = false;
							} else {
								listItem += " | ";
							}
							listItem += "<a id='" + self.cssId.playlist + self.instance + "_item_" + i + "_" + property + "' href='" + value + "' tabindex='1'>" + property + "</a>";
						}
					});
					listItem += ")</span>";
				}

				listItem += "</li>";

				// Associate playlist items with their media
				$(this.cssSelector.playlist + " ul").append(listItem);
				$(this.cssSelector.playlist + "_item_" + i).data("index", i).click(function() {
					var index = $(this).data("index");
					if(self.current !== index) {
						self.playlistChange(index);
					} else {
						$(self.cssSelector.jPlayer).jPlayer("play");
					}
					$(this).blur();
					return false;
				});

				// Disable free media links to force access via right click
				if(this.playlist[i].free) {
					$.each(this.playlist[i], function(property,value) {
						if($.jPlayer.prototype.format[property]) { // Check property is a media format.
							$(self.cssSelector.playlist + "_item_" + i + "_" + property).data("index", i).click(function() {
								var index = $(this).data("index");
								$(self.cssSelector.playlist + "_item_" + index).click();
								$(this).blur();
								return false;
							});
						}
					});
				}
			}
		},
		playlistInit: function(autoplay) {
			if(autoplay) {
				this.playlistChange(this.current);
			} else {
				this.playlistConfig(this.current);
			}
		},
		playlistConfig: function(index) {
			$(this.cssSelector.playlist + "_item_" + this.current).removeClass("jp-playlist-current").parent().removeClass("jp-playlist-current");
			$(this.cssSelector.playlist + "_item_" + index).addClass("jp-playlist-current").parent().addClass("jp-playlist-current");
			this.current = index;
			$(this.cssSelector.jPlayer).jPlayer("setMedia", this.playlist[this.current]);
		},
		playlistChange: function(index) {
			this.playlistConfig(index);
			$(this.cssSelector.jPlayer).jPlayer("play");
		},
		playlistNext: function() {
			var index = (this.current + 1 < this.playlist.length) ? this.current + 1 : 0;
			this.playlistChange(index);
		},
		playlistPrev: function() {
			var index = (this.current - 1 >= 0) ? this.current - 1 : this.playlist.length - 1;
			this.playlistChange(index);
		}
	};

	var audio2Playlist = new Playlist("1", [
		{
			name:"Intro",
			mp3:"http://breadmuzic.com/media/music/thetreatment/-Intro.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/-Intro.ogg"
		},
		{
			name:"1.Devil On The Run",
			mp3:"http://breadmuzic.com/media/music/thetreatment/1.Devil On The Run.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/1.Devil On The Run.ogg"
		},
		{
			name:"2.Trill Talk",
			mp3:"http://breadmuzic.com/media/music/thetreatment/2.Trill Talk.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/2.Trill Talk.ogg"
		},
		{
			name:"3.Faith&Hustle",
			mp3:"http://breadmuzic.com/media/music/thetreatment/3.Faith&Hustle.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/3.Faith&Hustle.ogg"
		},
		{
			name:"4.Black Punk",
			mp3:"http://breadmuzic.com/media/music/thetreatment/4.Black Punk.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/4.Black Punk.ogg"
		},
		{
			name:"5.Bomb",
			mp3:"http://breadmuzic.com/media/music/thetreatment/5.Bomb.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/5.Bomb.ogg"
		},
		{
			name:"6.Cheat Wit ft PeddiePeddie",
			mp3:"http://breadmuzic.com/media/music/thetreatment/6.Cheat Wit ft PeddiePeddie.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/6.Cheat Wit ft PeddiePeddie.ogg"
		},
		{
			name:"7.WithU",
			mp3:"http://breadmuzic.com/media/music/thetreatment/7.WithU.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/7.WithU.ogg"
		},
		{
			name:"8.U Ever Did",
			mp3:"http://breadmuzic.com/media/music/thetreatment/8.U Ever Did.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/8.U Ever Did.ogg"
		},
		{
			name:"9.Blame YurSelf",
			mp3:"http://breadmuzic.com/media/music/thetreatment/9.Blame YurSelf.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/9.Blame YurSelf.ogg"
		},
		{
			name:"10.No Problems ft Neka Holiday",
			mp3:"http://breadmuzic.com/media/music/thetreatment/10.No Problems ft Neka Holiday.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/10.No Problems ft Neka Holiday.ogg"
		},
		{
			name:"11.Pulls me Back ft Get Right",
			mp3:"http://breadmuzic.com/media/music/thetreatment/11.Pulls me Back ft Get Right.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/11.Pulls me Back ft Get Right.ogg"
		},
		{
			name:"12.We Fall ft Rich White",
			mp3:"http://breadmuzic.com/media/music/thetreatment/12.We Fall ft Rich White.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/12.We Fall ft Rich White.ogg"
		},
		{
			name:"13.The Truth",
			mp3:"http://breadmuzic.com/media/music/thetreatment/13.The Truth.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/13.The Truth.ogg"
		},
		{
			name:"Interlude",
			mp3:"http://breadmuzic.com/media/music/thetreatment/Interlude.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/Interlude.ogg"
		},
		{
			name:"14.Unconditional Love_ft_Glenn_Lewis",
			mp3:"http://breadmuzic.com/media/music/thetreatment/14.Unconditional Love_ft_Glenn_Lewis.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/14.Unconditional Love_ft_Glenn_Lewis.ogg"
		},
		{
			name:"15.Fix You",
			mp3:"http://breadmuzic.com/media/music/thetreatment/15.Fix You.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/15.Fix You.ogg"
		},
		{
			name:"Outro",
			mp3:"http://breadmuzic.com/media/music/thetreatment/Outro.mp3",
			oga:"http://breadmuzic.com/media/music/thetreatment/Outro.ogg"
		},
		

	], {
		ready: function() {
			audio2Playlist.displayPlaylist();
			audio2Playlist.playlistInit(false); // Parameter is a boolean for autoplay.
		},
		ended: function() {
			audio2Playlist.playlistNext();
		},
		play: function() {
			$(this).jPlayer("pauseOthers");
		},
		swfPath: "/js",
		supplied: "oga, mp3"
	});

	var audioPlaylist = new Playlist("2", [
		{
			name:"Heart Pump",
			mp3:"http://breadmuzic.com/media/music/therelease/1-HeartPump.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/1-HeartPump.ogg"
		},
		{
			name:"Give It To Them",
			mp3:"http://breadmuzic.com/media/music/therelease/2-Give It To Them.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/2-Give It To Them.ogg"
		},
		{
			name:"N Da Way",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/3-N Da Way.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/3-N Da Way.ogg"
		},
		{
			name:"Dont Trip",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/4-Dont Trip.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/4-Dont Trip.ogg"
		},
		{
			name:"The Secret (Skit)",
			mp3:"http://breadmuzic.com/media/music/therelease/5-thesecret-skit.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/5-thesecret-skit.ogg"
		},
		{
			name:"Can Do",
			mp3:"http://breadmuzic.com/media/music/therelease/6-Can Do.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/6-Can Do.ogg"
		},
		{
			name:"Dare Me",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/7-Dare Me.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/7-Dare Me.ogg"
		},
		{
			name:"Your Everything",
			mp3:"http://breadmuzic.com/media/music/therelease/8-Your Everything.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/8-Your Everything.ogg"
		},
		{
			name:"Mamma Daddy",
			mp3:"http://breadmuzic.com/media/music/therelease/9-MammaDaddy.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/9-MammaDaddy.ogg"
		},
		{
			name:"To My Self",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/10-To My Self.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/10-To My Self.ogg"
		},
		{
			name:"App Skit",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/11-App Skit.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/11-App Skit.ogg"
		},
		{
			name:"How long can you Blow",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/12-How long can you Blow.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/12-How long can you Blow.ogg"
		},
		{
			name:"Like Beyonce",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/13-Like Beyonce.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/13-Like Beyonce.ogg"
		},
		{
			name:"Your Girl ft. Latif",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/14-Your Girl ft Latif.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/14-Your Girl ft Latif.ogg"
		},
		{
			name:"Rock Wit U",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/15-RockWitU.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/15-RockWitU.ogg"
		},
		{
			name:"Breakin My Heart",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/16-Breakin My Heart.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/16-Breakin My Heart.ogg"
		},
		{
			name:"MIA Skit",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/17-MIA-skit.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/17-MIA-skit.ogg"
		},
		{
			name:"My X",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/18-MY X.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/18-MY X.ogg"
		},
		{
			name:"Bread Over",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/19-BreadOVer.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/19-BreadOVer.ogg"
		},
		{
			name:"Road To No Where",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/20-Road to NoWhere.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/20-Road to NoWhere.ogg"
		},
		{
			name:"Pull The Gun",
			free:true,
			mp3:"http://breadmuzic.com/media/music/therelease/21-Pull The Gun.mp3",
			oga:"http://breadmuzic.com/media/music/therelease/21-Pull The Gun.ogg"
		},

	], {
		ready: function() {
			audioPlaylist.displayPlaylist();
			audioPlaylist.playlistInit(false); // Parameter is a boolean for autoplay.
		},
		ended: function() {
			audioPlaylist.playlistNext();
		},
		play: function() {
			$(this).jPlayer("pauseOthers");
		},
		swfPath: "/js",
		supplied: "oga, mp3"
	});

	$("#jplayer_inspector_1").jPlayerInspector({jPlayer:$("#jquery_jplayer_1")});
	$("#jplayer_inspector_2").jPlayerInspector({jPlayer:$("#jquery_jplayer_2")});
});

