jQuery(document).ready(function(){
	jQuery( "#tabs" ).tabs();
	jQuery("a.iframe").fancybox({
		'titlePosition'	:	'inside',
		'titleShow':true
	});
	
	var tunelist = [
		{
			name:"Straight Up",
			m4a:"http://a5.mzstatic.com/us/r1000/021/Music/27/2c/0f/mzi.hjwmcglj.aac.p.m4a",
		},
		{
			name:"Cold Hearted",
			m4a:"http://a2.mzstatic.com/us/r1000/030/Music/13/04/48/mzi.habdrcym.aac.p.m4a",
		},
		{
			name:"Forever Your Girl",
			m4a:"http://a1.mzstatic.com/us/r1000/045/Music/45/0a/e2/mzi.zzikxmky.aac.p.m4a",
		},
		{
			name:"The Way That You Love Me",
			m4a:"http://a2.mzstatic.com/us/r1000/014/Music/bf/7b/f1/mzi.pdtlxsie.aac.p.m4a",
		},
		{
			name:"Knocked Out",
			m4a:"http://a2.mzstatic.com/us/r1000/042/Music/82/fb/00/mzi.lxihoogm.aac.p.m4a",
		},
		{
			name:"Opposites Attract",
			m4a:"http://a4.mzstatic.com/us/r1000/002/Music/c7/d3/a9/mzi.elqwdxuf.aac.p.m4a",
		},
		{
			name:"Bend Time Back 'Round",
			m4a:"http://a4.mzstatic.com/us/r1000/041/Music/10/78/e9/mzi.hnrlcymd.aac.p.m4a",
		},
		{
			name:"Rush, Rush",
			m4a:"http://a4.mzstatic.com/us/r1000/002/Music/b4/6d/2d/mzi.prxmcoun.aac.p.m4a",
		},
		{
			name:"The Promise of a New Day",
			m4a:"http://a4.mzstatic.com/us/r1000/030/Music/8d/b9/f7/mzi.hydprxop.aac.p.m4a",
		},
		{
			name:"Blowing Kisses in the Wind",
			m4a:"http://a2.mzstatic.com/us/r1000/057/Music/98/ad/2b/mzi.owpwnniu.aac.p.m4a",
		},
		{
			name:"Videology",
			m4a:"http://a3.mzstatic.com/us/r1000/050/Music/e1/67/4a/mzi.gqquwjqc.aac.p.m4a",
		},
		{
			name:"My Love Is for Real (R&B Remix)",
			m4a:"http://a4.mzstatic.com/us/r1000/033/Music/40/20/93/mzi.nkvvhdnn.aac.p.m4a",
		},
		{
			name:"Crazy Cool",
			m4a:"http://a1.mzstatic.com/us/r1000/016/Music/a4/bc/5c/mzi.jlqwxqrl.aac.p.m4a",
		},
		{
			name:"If I Were Your Girl",
			m4a:"http://a5.mzstatic.com/us/r1000/052/Music/79/00/76/mzi.arrhdchq.aac.p.m4a",
		},
		{
			name:"Megamix Medley",
			m4a:"http://a1.mzstatic.com/us/r1000/029/Music/5d/26/43/mzi.mhhtnueq.aac.p.m4a",
		},
		{
			name:"Crazy Love",
			m4a:"http://a2.mzstatic.com/us/r1000/028/Music/0a/9a/c3/mzi.iipbjdgl.aac.p.m4a",
		}
	];

	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 = {};

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

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

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

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

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

	Playlist.prototype = {
		displayPlaylist: function() {
			var self = this;
			jQuery(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'><span class='jp-list-index'>" +  (i+1)  + '.' + '</span><span class="jp-list-name"> ' + this.playlist[i].name +"</span></a>";

				// Create links to free media
				if(this.playlist[i].free) {
					var first = true;
					listItem += "<div class='jp-free-media'>(";
					jQuery.each(this.playlist[i], function(property,value) {
						if(jQuery.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
				jQuery(this.cssSelector.playlist + " ul").append(listItem);
				jQuery(this.cssSelector.playlist + "_item_" + i).data("index", i).click(function() {
					var index = jQuery(this).data("index");
					if(self.current !== index) {
						self.playlistChange(index);
					} else {
						jQuery(self.cssSelector.jPlayer).jPlayer("play");
					}
					jQuery(this).blur();
					return false;
				});

				// Disable free media links to force access via right click
				if(this.playlist[i].free) {
					jQuery.each(this.playlist[i], function(property,value) {
						if(jQuery.jPlayer.prototype.format[property]) { // Check property is a media format.
							jQuery(self.cssSelector.playlist + "_item_" + i + "_" + property).data("index", i).click(function() {
								var index = jQuery(this).data("index");
								jQuery(self.cssSelector.playlist + "_item_" + index).click();
								jQuery(this).blur();
								return false;
							});
						}
					});
				}
			}
		},
		playlistInit: function(autoplay) {
			if(autoplay) {
				this.playlistChange(this.current);
			} else {
				this.playlistConfig(this.current);
			}
		},
		playlistConfig: function(index) {
			jQuery(this.cssSelector.playlist + "_item_" + this.current).removeClass("jp-playlist-current").parent().removeClass("jp-playlist-current");
			jQuery(this.cssSelector.playlist + "_item_" + index).addClass("jp-playlist-current").parent().addClass("jp-playlist-current");
			this.current = index;
			console.log(this.playlist[this.current].name);
			jQuery('#jp_currently_playing').text(this.playlist[this.current].name)
			jQuery(this.cssSelector.jPlayer).jPlayer("setMedia", this.playlist[this.current]);
		},
		playlistChange: function(index) {
			this.playlistConfig(index);
			jQuery(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 audioPlaylist = new Playlist("1", tunelist, {
		ready: function() {
			audioPlaylist.displayPlaylist();
			audioPlaylist.playlistInit(false); // Parameter is a boolean for autoplay.
		},
		ended: function() {
			audioPlaylist.playlistNext();
		},
		play: function() {
			jQuery(this).jPlayer("pauseOthers");
		},
		swfPath: "/library/jquery/jPlayer/js",
		//supplied: "mp3"
		supplied: "m4a"
	});

});
