/* SETUP PELOTON NAMESPACE */
var PLT = {
	birdsLeft		: '#tkf_sine_left',
	birdsBottom		: '#tkf_mid_bird_bottom',
	birdsTop		: '#tkf_mid_bird_top',
	playerEl		: '#jquery_jplayer_1',
	playerInspector : "#jPlayer_inspector",

	init : function(){
		PLT.activateBirds();
		PLT.activatePlayer();
		PLT.activateArtistTable();
	},
	activateBirds : function() {

			$(PLT.birdsTop).pan({fps: 12, speed: 1, dir: 'left', depth: 20});
			$(PLT.birdsBottom).sprite({fps: 12, no_of_frames: 1})
					.spRandom({top: 60, bottom: 0, left: 330, right: 20})
					.active();

	},
	activateArtistTable : function() {
		var okToGo = (($('#box-table').length > 0));
		if(okToGo) {
			$('#box-table').tablesorter();
		}

	},
	activatePlayer : function() {
		$(PLT.playerEl).jPlayer({
			swfPath: '/js',
			solution: 'html, flash',
			supplied: 'mp3',
			preload: 'metadata',
			volume: 0.3,
			muted: false,
			backgroundColor: '#FFFFFF',
			cssSelectorAncestor: '#jp_interface_1',
			cssSelector: {
				play: '.jp-play',
				pause: '.jp-pause',
				stop: '.jp-stop',
				seekBar: '.jp-seek-bar',
				playBar: '.jp-play-bar',
				mute: '.jp-mute',
				unmute: '.jp-unmute',
				volumeBar: '.jp-volume-bar',
				volumeBarValue: '.jp-volume-bar-value',
				currentTime: '.jp-current-time',
				duration: '.jp-duration'
			},
			errorAlerts: false,
			warningAlerts: false
		});

          


	},
	activateJplayerProgressBar : function() {
		$(PLT.playerEl).bind($.jPlayer.event.timeupdate, function(event) {

				var loadBar = '<span class="pt">|</span>';
				var lpInt = event.jPlayer.status.currentTime;
				var ppaInt = event.jPlayer.status.duration;

				global_lp = lpInt;

				for (l=0; l < lpInt; l++){
					loadBar += '<span class="pt">|</span>';
				}
				var playBar = '<span class="pt">|</span>';
				for (i=0; i < ppaInt; i++){
					playBar = playBar + '<span class="pt">|</span>';
				}
				$('#player_progress_play_bar').html(playBar);
				$('#player_progress_load_bar').html(loadBar);
			})
		},
	activateJplayerInspector : function() {
		$(PLT.playerInspector).jPlayerInspector({jPlayer:$(PLT.playerEl)});
	}
}


$(document).ready(function(){
	
	PLT.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_",
			jpInterface: "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.jpInterface;
		}

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

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

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

	PLT.Playlist.prototype = {
		
		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").siblings().removeClass("jp-playlist-current").parent().removeClass("jp-playlist-current");
			$(this.cssSelector.playlist + "_item_" + index).addClass("jp-playlist-current").siblings().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);
			$("#playerSongTitle").html(audioPlaylist.playlist[this.current].name + ' - <span>' + audioPlaylist.playlist[this.current].artist + '</span>');
			$(this.cssSelector.jPlayer).jPlayer("play");
		},
		playlistNext: function() {
			var index = (this.current + 1 < this.playlist.length) ? this.current + 1 : 0;
			$("#playerSongTitle").html(audioPlaylist.playlist[this.current].artist + ' - <span>' + audioPlaylist.playlist[this.current].artist + '</span>');
			this.playlistChange(index);
		},
		playlistPrev: function() {
			var index = (this.current - 1 >= 0) ? this.current - 1 : this.playlist.length - 1;
			this.playlistChange(index);
		}
	};
	if(LIVE.pageSongs){
		var audioPlaylist = new PLT.Playlist('1', LIVE.pageSongs, {
			ready: function() {
				$(this).jPlayer();
				$('#playerSongTitle').html('Wheelsucker - <span>Markus Nikolai</span>');

				var ctrlBar = '';  // draw 3l1+3 ascii control bar
				for (i=0; i < 100; i++){
					ctrlBar = ctrlBar + '<span class=\"pt\">|</span>';
				}
				PLT.activateJplayerProgressBar();
				$('#player_progress_ctrl_bar').html(ctrlBar);		// has to be inside ready: function.


				//audioPlaylist.displayPlaylist();
				audioPlaylist.playlistInit(true); // Parameter is a boolean for autoplay.

			},
			ended: function() {
				audioPlaylist.playlistNext();
			},
			play: function() {
				$(this).jPlayer('pauseOthers');
			},
			swfPath: '/js',
			supplied: 'mp3'
		});
	}

	/* Setup Peloton namespace */
	PLT.init();

	
	
		
});
