var master_player = null;
var player_album_id = null;
var master_album_id_list = null;
var master_album_playlist = null;
//is the player currently in the process of initializing? used to block actions while this is happening.
var initializing = false;
//uninitialized, init, idle, loading, playing, paused, stopped
var player_status = "uninitialized";

//Our variables to keep track of the currently playing song
var currentAlbum = null;
var currentTrack = null;
//var currentTrackId = null;
var currentThumbnail = '';

var percent_loaded = -1;
var old_time = -1;
var first = true;
var second = false;

var event_names = { "on_ready" : $.jPlayer.event.ready,                     //A jPlayer event supported by both the Flash fallback and HTML5 browsers
                                                                            //jPlayer event that is not part of the HTML5 Spec
		    "on_track_data_loaded" : $.jPlayer.event.loadeddata,
		    "on_media_end" : $.jPlayer.event.ended,                 //A jPlayer event supported by both the Flash fallback and HTML5 browsers
		    "track_changed" : "trackChanged",                       //Custom defined event trigger
		    "on_play" : $.jPlayer.event.play,                       //A jPlayer event supported by both the Flash fallback and HTML5 browsers
		    "time_updated" : $.jPlayer.event.timeupdate,            //A jPlayer event supported by both the Flash fallback and HTML5 browsers
		    "on_buffering" : $.jPlayer.event.progress               //A jPlayer event supported by both the Flash fallback and HTML5 browsers
}

var event_bound_to = "#jp_music_player";
var player_id = event_bound_to;

var fastForward = function() {
    loadNextTrack(true);
}
var rewind = function() {
    loadNextTrack(false);
}

var playPausedClicked = function() {
    //showLoading();
    //alert("c");
    
    $('#player-gui').css('display','block');
    clicked_item = $(this);
    
    if(is_mobile() && first) {
	$("body").append("<a href='#iphone_fix_wrap' id='iphone_link' class='no-ajax' style='display: none'></a><div style='display: none'><div id='iphone_fix_wrap' style='text-align: center'><span id='iphone_fix'><img src='/wp-content/themes/wilco/images/safarimobileplay.png' onclick='master_player.jPlayer(\"play\");$.fancybox.close();' /></span></div></div>");
	if($(window).height() < $(window).width()) {
	    var dim = $(window).height();
	}
	else {
	    var dim = $(window).width();
	}
	$("#iphone_fix").width(dim *.8);
	$("#iphone_fix").height(dim *.8);
	$("#iphone_link").fancybox({
	    modal: true,
	    overlayShow: true,
	    title: "Enable player for mobile safari",
	    showNavArrows: false,
	    overlayOpacity: .8,
	    overlayColor: "#000",
	    type: "inline",
	    margin: 0,
	    padding: 0,
	    //centerOnScroll: true,
	    resizeOnWindowResize: true,
	    onStart: function() {
		$("#fancybox-content").css("border", "none");
		$(".fancybox-bg").hide();
		$("#fancybox-outer").css("background-color", "transparent");
		$("#fancybox-title").click(function() {
		    master_player.jPlayer("play");
		    $.fancybox.close();
		});
	    },
	    onComplete: function() {
		$("#fancybox-title").css("top", "-20px");
		$("#fancybox-title-float-left").css("background", "none");
		$("#fancybox-title-float-main").css("background", "none");
		$("#fancybox-title-float-right").css("background", "none");
	    }
	});
	$("#iphone_link").click();
	
	first = false;
    }
    
    if( !clicked_item.hasClass("rc_still_loading") ) {
	
	if(clicked_item.hasClass("pp-pause")) {
	    //alert("p");
	    pauseCurrentTrack();
	}
	else {
	    if(isPPController(clicked_item) && master_player == null) {
	        clicked_item = null;    
	    }
	
	    var clickedTrack = initCurrentMusicData(clicked_item);
	
	    var valid = true;
	    //console.log(clickedTrack);
	    //console.log("initializing: " + initializing);
	
	    /*if(master_player == null && !initializing) {
		//alert("init");
		createPlayer(clickedTrack);
	    }
	    else */if((initializing && clicked_item !== null) || (initializing && currentTrack !== null)) {
		valid = false;
		alert("loading...");
	    }
	    else {
		//console.log("pp gui play");
		//console.log(clickedTrack);
		//alert('playing here');
		currentTrack = clickedTrack;
		playTrack(clickedTrack);
	    }
	    
	    if(valid) {
		//console.log("yes valid");
		currentTrack = clickedTrack;
		updateStatus("playing");
	    }
	}
    }
}

$(document).ready(function() {
    //temp
/*    $(".pp-tracklist-play").live("click", playPausedClicked);
    $("#pp-ff").bind("click", fastForward);
    $("#pp-rw").bind("click", rewind);
    $("#pp-volume").slider({
		min: 0,
		max: 100,
		value: 100,
		slide: function(event, ui) {
			setVolume(ui.value);
		}
	});
    //
*/
     $(document).bind(event_names["track_changed"], function() {
	//console.log("NEW RC TRACK::: " + currentTrack.title);
	$("#pp-title").html(currentTrack.title);
	$("#pp-track-id").html(currentTrack.id);
	$("#pp-album-id").html(currentAlbum.id);
	$("#pp-album").html(currentAlbum.title);
	$("#pp-status").html(player_status);
	$("#pp-album-type").html(currentAlbum.type);
	$("#pp-thumbnail").html(currentThumbnail);
	
	//console.log("STARTING PLAYER WITH VOLUME " + getPlayerVolume());
//	setVolume(getPlayerVolume());
    });
    
    $(document).bind("playlist_printed", function() {
	//alert("printed");
	printSongLinks();
    });
    
    //$(document).trigger("playlist_printed");
    
    $(event_bound_to).bind(event_names['on_ready'], function(event, data) {
	//console.log("MASTER PLAYER SET");
	//console.log(event);
	master_player = $(event.target);
	initializing = false;
    });
    
    /*$(document).bind('onPlayerPlay.scPlayer', function(event){
	console.log(event.target, "it's playing!");
	console.log("STARTING PLAYER WITH VOLUME " + getPlayerVolume());
	//setVolume(getPlayerVolume());
    });*/
    
    $(event_bound_to).bind(event_names['time_updated'], function(event) {
	//console.log("track updating time")
	///console.log(master_player.data("jPlayer").status.volume);//.status.volume);
	//console.log(event.target, 'the track is at ' + event.position + ' out of ' + event.duration + ' which is ' + event.relative + ' of the total');
	//if(master_player.data("jPlayer").status.volume  !== getPlayerVolume()) {
	    
	  //  setVolume(getPlayerVolume());
	//}
	now_playing_seconds = event.jPlayer.status.currentTime;
    
	
	//console.log("now playing seconds: " + now_playing_seconds + " event.position: " + event.position);
	if(/*!second && */old_time !== parseInt(now_playing_seconds)) {
	   // console.log("now playing: " + now_playing_seconds);
	    old_time = parseInt(now_playing_seconds);
	    //alert(now_playing_seconds);
	    //console.log("after: " + old_time);
	    if(currentAlbum.type == "roadcase") {
		//console.log("CHECKING-=-------");
		checkIfNewTrackNeedsToBeDisplayed(old_time);
	    }
	}
    });
    
    /* roadcase stuff */
    $(event_bound_to).bind(event_names['on_buffering'], function(event) {
	//console.log(data.percent);
	//console.log(event);
	var total_secs = getTotalSeconds();
	percent_buffered = master_player.data("jPlayer").status.duration / total_secs;
	
	if(percent_loaded !== percent_buffered) {
	    //console.log(data.percent + "%");
	    //console.log("bound: " + percent_loaded);
	    percent_loaded = percent_buffered;
	    enableTracks(percent_loaded, total_secs);
	}
	//if(data.percent == 100) {
	  //  $(event_bound_to).unbind(event_names['on_buffering']);
	//}
    });
                         
   // $(document).bind(event_names['time_updated'], function(event){
       // console.log(event.target, 'the track is at ' + event.position + ' out of ' + event.duration + ' which is ' + event.relative + ' of the total');
	
    //});
});

ChimeAjax.behaviors.prodplayer = function(context) {
  $(".pp-tracklist-play").bind("click", playPausedClicked);
  //$("#player-gui").show();
  $(player_id).jPlayer( {
	swfPath: "wp-content/plugins/prod-player",
	/*ready: function () {
          $(this).jPlayer("setMedia", {
            mp3: "http://www.archive.org/download/guster2007-02-28.spc4.flac16/guster2007-02-28-t21_64kb.mp3"
          })
	},*/
	/*loadstart : function() {
	    console.log("load");
	    if(is_mobile() && second) {
	        if(confirm("Enable player for mobile.")) {
	    
	            //$(player_id).jPlayer("play");
		    second = false;
		    window.setTimeout(function() {
			alert("play");
			$(player_id).jPlayer("play");
		    }, 500);
	            
		}
	    }
	}*/
  });
  //$(player_id).jPlayer("play");
}

/********* roadcase stuff *********/
function hasTrackLoadedYet(track) {
    var totalTime = getTotalSeconds();
    if(.01 * percent_loaded * totalTime > track.time) {
        return true;
    }
    else {
        return false;
    }
}

function getTotalSeconds() {
//    var total_seconds = master_player.api_getTrackDuration();
    var total_seconds = parseInt(master_player.data("jPlayer").status.duration * 100 / master_player.data("jPlayer").status.seekPercent);
    //total_seconds = total_seconds.split(".");
    //total_seconds = ((parseInt(total_seconds[0]*60) + parseInt(total_seconds[1])) * 60) + parseInt(total_seconds[2]);
    return total_seconds;
}

function enableTracks(percent, totalTime) {
   // console.log(percent + ": " + totalTime);
    //alert("enable");
    current_time = percent * totalTime;
   // console.log("current time: " + parseInt(current_time));
    for (var i=0; i<currentAlbum.playlist.length; i++) {    
	if(current_time > currentAlbum.playlist[i].time) {
	    //console.log("LOADED! " + "#playlist_" + album_key + " li.playlist_track" );
	    var current_elem = "#playlist_" + currentAlbum.id;
	    var playlist_li = $(current_elem + " li.playlist_track")[i];
	    var playPauseBtn = $(current_elem + " .playlist_item")[i];
	    var playlist_track_link = $(current_elem + " a")[i];
	    
	    $(playlist_li).removeClass("rc_not_loaded");
	    $(playlist_track_link).removeClass("rc_not_loaded");
	    $(playPauseBtn).removeClass("rc_still_loading");
        }
    }
}

//When the set is playing, make sure the current track is displayed in the player
//and the appropriate track in the page tracklist is displaying the appropriate play/pause icon.
function checkIfNewTrackNeedsToBeDisplayed(current_play_time) {
    
    current_play_time = parseInt(current_play_time);
    //console.log("CURRENT PLAY TIME: " + current_play_time);
    
    for(var j=1; j<currentAlbum.playlist.length; j++) {
        if(current_play_time === currentAlbum.playlist[j].time) {// - 5 && current_play_time <= valid_music_links[j].time + 5) {// || current_play_time === valid_music_links[j].time - 1) {
            //console.log("NEXT SONG YO: "+ current_play_time);
	    var current_elem = "#playlist_" + currentAlbum.id;
	    var playPauseBtn = $(current_elem + " .playlist_item")[j];
            //console.log("-------------------------------");
	    //console.log($(playPauseBtn));
	    //console.log("-------------------------------");
	    currentTrack = initCurrentMusicData($(playPauseBtn));
            //showCurrentTrack();
	   //alert(j);
	    displayPauseInPlaylist(j);

	    updateStatus("playing");
	    
            //var this_controller = $("#tracklist li a.list-control-button")[j];
            //togglePauseOnTrackList(this_controller);
            break;
        }
    }
}
//Toggles the currently playing track in the playlist
function showCurrentTrack() {
    
        
    //var old_type = $("#sc_music_player").attr("rel");
    
    /*if(media_type == "roadcase" || old_type == "roadcase") {
        ///console.log("YES ROADCASE::: " + name);
	$(".sc-trackslist li.active a").html(name);
	$(".sc-trackslist li.active a").attr("id", idx);
    }*/
}

function setVolume(level) {
    //console.log("MASTER PLAYER: " + master_player);
    //console.log("STARTING PLAYER WITH VOLUME " + level);
    if(master_player !== null) {
	
	//console.log("we good");
	////////master_player.api_setVolume(level);
	master_player.jPlayer("volume", level / 100)
    }
    else {
	//alert("no good");
	//console.log("no good");
    }
}
//THIS COULD USE SOME REFACTORING
function initCurrentMusicData(clicked_item) {
    if(clicked_item !== null && !isPPController(clicked_item)) {// && !isPPController(clicked_item)) || (clicked_item !== null)  {
	//alert("non null");
	//console.log(clicked_item);
	//if() {
	    id = clicked_item.attr("id");
	    index = id.split("_")[1];
	    currentAlbumId = clicked_item.parent().parent().attr("id");
	    currentAlbumId = currentAlbumId.split("_")[1];
	    //alert(index);
	//}
	//else {
	    //console.log(currentTrack);    
	    
	//}
	//console.log("clicked: " + index);
	
	
    } else if(clicked_item !== null && isPPController(clicked_item)) {
	//alert("second");
	//console.log("second")
	//console.log(currentTrack);
	
	index = getNowPlayingTrackIndex();
	//currentAlbumId = currentAlbum
    }
    else {
	//alert("yes null");
	//console.log("YES NULL " + page_album_id);
	currentAlbumId = page_album_id;
	index = 0;
    }
    //console.log("CURRENT ALBUM ID from init:: " + currentAlbumId);
    currentAlbum = master_album_playlist[currentAlbumId];
    
    //MAYBE CHANGE THIS TO INITIALIZE CURRENT TRACK HERE...
    clickedTrack = currentAlbum.playlist[index];
    //currentTrackId = currentTrack.id;
    currentThumbnail = getAlbumThumbnail(currentAlbumId);
    //console.log(clickedTrack);
    
    return clickedTrack;
}

//Returns true if the provided element is a contoller for the gui player (not from the tracklist)
function isPPController(the_item) {
    return the_item.hasClass("pp-gui-control");
}

function printSongLinks() {
    album_key = page_album_id;
    album = master_album_playlist[album_key];
    //console.log(album);
    $("#playlist_area").append("<ul id='playlist_"+album_key+"'></ul>");
    
    for(var i=0; i < album.playlist.length; i++) {
	track = album.playlist[i];
	var css_mod = "";
	var css_loaded = "";
    
	if(album.type == "roadcase") {	
	    if(i > 0) {
		css_mod = "rc_still_loading";
		css_loaded = "rc_not_loaded";
	    }
	}
	
	if(track.url === "" && track.time === -1) {// || (track.url !== "" && track.time === -1)) {
	    //console.log(track);
	    //console.log("track.url: " + track.url === "");
	    //console.log("track.time: " + track.time !== -1);
	    //console.log("=====================================");
	    css_mod += " hide_playpause";
	}	
	$("#playlist_"+ album_key).append("<li class='playlist_track "+css_loaded+"'><span class='playlist_item pp-tracklist-play "+css_mod+"' id='track_"+ i + "'></span><a class='"+css_loaded+"' href='"+track.post_url+"'>"+ track.title+"</a></li>")    
	
    }
}

function get_stream_url(music_item) {
  
    if(music_item.url.indexOf("soundcloud") !== -1 && music_item.url.indexOf("stream") === -1) {
        $.getJSON('http://api.soundcloud.com/resolve?url='+music_item.url+'&format=json&consumer_key='+c_id+'&callback=?',
	      function(response){
		//console.log(response);
		music_item.url = response.stream_url + "&consumer_key="+c_id;
		//console.log(currentTrack.url);
		$(document).trigger("stream_fetched", music_item);
		$(document).unbind("stream_fetched");
	});
    }
    else {
	//console.log(currentTrack);
	$(document).trigger("stream_fetched", music_item);
    }
}

//Create the jplayer instance
function makeActualPlayer(music_item) {
    
    $(player_id).jPlayer( {
	swfPath: "wp-content/plugins/prod-player",
	//errorAlerts: true,
	//warningAlerts: true,
        ready: function () {
          $(this).jPlayer("setMedia", {
            mp3: music_item.url // Defines the mp3 url
          }).jPlayer("play");
	  //console.log("ready");
	  //console.log(currentTrack.title);
	  //playTrack(currentTrack);
	  $('#player-gui').css('display','block');
	  if( navigator.userAgent.match(/Android/i) ||
	    navigator.userAgent.match(/webOS/i) ||
	    navigator.userAgent.match(/iPhone/i) ||
	    navigator.userAgent.match(/iPad/i) ||
	    navigator.userAgent.match(/iPod/i)
	){
	    $("#pp-play-pause").click();
	    //$("#pp-album").append("<span style='margin-left: 5px' id='pp-iphone-tip'>click play</span>");
	}
//	  window.setTimeout(function() {
//	    $("#pp-play-pause").trigger("touchstart");
//	  }, 5000);
        },
//	loadedmetadata: function() {
//	    console.log("loaded meta");
//	    master_player.jPlayer("play");
//	},
/*	loadstart: function() {
	    console.log("load start");
	    master_player.jPlayer("play");
	    $("#pp-play-pause").click();
	    $("#pp-play-pause").click();
	}
*/
  });
    
    displayPauseInPlaylist(currentAlbum.playlist.indexOf(music_item));
}

//Begin the creation of the jplayer instance...check if the raw soundcloud url needs to be changed to a stream url.
function createPlayer(music_item) {
    //console.log(music_item);
    //player_album_id = music_item.album_id;
    //track_index = album_playlist.indexOf(music_item);
    
    if(music_item.url === "") {
	music_item.url = currentAlbum.url;
    }
    $(document).bind("stream_fetched", function(event, music_item) {
	////makeActualPlayer(music_item);
	playTrack(music_item);
	displayPauseInPlaylist(currentAlbum.playlist.indexOf(music_item));
    });
    
    clean_url = music_item.url;
    
    

    
    //if(clean_url.indexOf("soundcloud") !== -1 && clean_url.indexOf("stream") === -1) {
	//alert("before sc: " + clean_url);
	get_stream_url(music_item);
    //}
    //else {
	//alert(clean_url);
	//$(document).trigger("stream_fetched", music_item);
    //}
    
    initializing = true;

    $(event_bound_to).bind(event_names['on_media_end'], function(player, data) {
	updateStatus("loading");
	
	loadNextTrack(true);
	
    });
}

function playTrack(track) {
    //if track in player's index is same as music_track_index...just click
    //track_to_be_played = album_playlist[music_track_index];
    //console.log(track_to_be_played);
	    
    //FIRST TIME A TRACK IS BEING PLAYED IN THE PLAYER...ONLY HAPPENS ONCE
    //if(master_player == null) {
	//$('.sc-trackslist li.active').click();
    //}
    //This track is already loaded in the player...pause it
    /*else */
    if(clickedSameTrack(track) || second) {
	 //alert("same");
	//master_player.jPlayer("pause");
	master_player.jPlayer("play");
	
	second = false;
    }
    //else load the new track then click.
    else {
	//console.log("player is already set up");
	//console.log(track);
	
	//If the current album is roadcase and the previous album was also roadcase...getNowPlayingAlbumType returns the previous album's type
	//because the gui hasn't been updated yet for the clicked item
	//basically, an item from the same roadcase has been clicked
	if(currentAlbum.type == "roadcase" && getNowPlayingAlbumType() === "roadcase" && currentAlbum.id === parseInt(getNowPlayingAlbumId())) {
	    //console.log("SEEKING TO: " + track.time);
	    master_player.jPlayer("play", track.time);
	}
	//New roadcase is selected
	else if(currentAlbum.type == "roadcase") {
//	    alert(percent_loaded);
//	    alert("new rc");
	    percent_loaded = -1;
//	    alert("loading " + currentAlbum.url);
//	    alert(percent_loaded);
///Move this stuff to some function which resets the rc playlist display when a new rc is selected.
	    resetRoadcasePlaylistDisplay();	    
	    
	    //master_player.api_load(currentAlbum.url);
	    
	    $(document).bind("stream_fetched", function(event, music_item) {
			    currentAlbum.url = music_item.url;
//			    alert("rc" + music_item.url);
			    master_player.jPlayer("setMedia", {"mp3":currentAlbum.url}).jPlayer("play");
	    });
	    get_stream_url(currentAlbum);	    
	}
	else {
	    //alert("loading " + track.url);
	    
	    $(document).bind("stream_fetched", function(event, music_item) {
	//	alert(music_item.url);
			    track.url = music_item.url;
			    //console.log()
			    master_player.jPlayer("setMedia", {
				"mp3":music_item.url
			    }).jPlayer("play");
			    
			    
			    /*if(is_mobile() && !second) {
				if(confirm("Enable player for mobile.")) {
			    
				    //$(player_id).jPlayer("play");
				    second = true;
				master_player.jPlayer("play");
			        
				}
			    }*/
	    });
	    get_stream_url(track);
	    
	    //master_player.jPlayer("play");
	}
    }
    //console.log(currentAlbum.playlist.indexOf(track));
    updateStatus("playing");
    //console.log("PLAYING TRACK: " + currentAlbum.playlist.indexOf(track));
    displayPauseInPlaylist(currentAlbum.playlist.indexOf(track));
    
//    setVolume(getPlayerVolume());
}

function pauseCurrentTrack() {
    //console.log("pausing");
    //alert("PAUSE PUSHED");
    
    //$('.sc-trackslist li.active').click();
    master_player.jPlayer("pause");
    
    updateStatus("paused");
	    
    displayPlayInPlaylist();
}

function is_mobile() {
    if(navigator.userAgent.match(/iPhone/i) ||
	        navigator.userAgent.match(/iPad/i) ||
	        navigator.userAgent.match(/iPod/i)) {
	return true;
    }
    else {return false;}
}

function displayPauseInPlaylist(track_index) {
    //alert(track_index);
   // console.log(track_index);
    var the_parent = "#playlist_" + currentAlbum.id;
    
    $(the_parent + " .playlist_item").removeClass("pp-pause");
    $(the_parent + " #track_" + track_index).addClass("pp-pause");
    
    $("#pp-play-pause").addClass("pp-pause");
}

function displayPlayInPlaylist() {
    var the_parent = "#playlist_" + currentAlbum.id;
    var track_index = currentAlbum.playlist.indexOf(currentTrack);
    
    $(the_parent + " #track_" + track_index).removeClass("pp-pause");
    
    $("#pp-play-pause").removeClass("pp-pause");
}

function resetRoadcasePlaylistDisplay() {
    //Skip the first track
    for (var i=1; i < currentAlbum.playlist.length; i++) {    
	//console.log("LOADED! " + "#playlist_" + album_key + " li.playlist_track" );
	var current_elem = "#playlist_" + currentAlbum.id;
	var playlist_li = $(current_elem + " li.playlist_track")[i];
	var playPauseBtn = $(current_elem + " .playlist_item")[i];
	var playlist_track_link = $(current_elem + " a")[i];
	
	if(!$(playlist_li).hasClass("rc_not_loaded")) {
	    //alert(i);
	    //console.log($(playlist_li).html());
	    $(playlist_li).addClass("rc_not_loaded");
	}
	if(!$(playlist_track_link).hasClass("rc_not_loaded")) {
	    $(playlist_track_link).addClass("rc_not_loaded");
	}
	if(!$(playPauseBtn).hasClass("rc_still_loading")) {
	    $(playPauseBtn).addClass("rc_still_loading");
	}
    }
}	

function loadNextTrack(forwards) {
    player_track_id = getNowPlayingTrackId();
    
    if(currentAlbum !== null) {
	
	var current_track_index = getNowPlayingTrackIndex();
    
	var next_track_index;
    
	if(forwards) {
	    next_track_index = current_track_index + 1;
	}
	else {
	    next_track_index = current_track_index - 1;
	}
    
	if(next_track_index >= 0 && next_track_index < currentAlbum.playlist.length) {
	
	    next_track = currentAlbum.playlist[next_track_index];

	    //console.log("CURRENT TRACK IS:::" + currentTrack.title);
	    //console.log("NEXT TRACK IS:::" + next_track.title);
	    var n = currentAlbum.playlist.indexOf(currentTrack);
	    //console.log("NOW PLAYING TRACK INDEX::" + n);
	    currentTrack = next_track;
    
	    playTrack(next_track);
	}
	
    }
}

//Returns true if the given track is already loaded into the player.
function clickedSameTrack(track) {
    //player_track_name = getNowPlayingTrackName();
    //player_album_name = getNowPlayingAlbumName();
    player_track_id = getNowPlayingTrackId();
    
    //console.log(player_track_id + " == " + track.id);
    if(player_track_id == track.id) {
	//console.log("clicked same track");    
	return true;
    }
    return false;
}

function getNowPlayingTrackName() {
    return $('#pp-title').html();
}
function getNowPlayingAlbumName() {
    return $('#pp-album').html();
}
function getNowPlayingTrackId() {
    return $('#pp-track-id').html();
}
function getNowPlayingTrackIndex() {
    return currentAlbum.playlist.indexOf(currentTrack);
}
function getPlayerVolume() {
    return $("#pp-volume").slider("option", "value");
}

function getNowPlayingAlbumType() {
    return $("#pp-album-type").html();
}

function getNowPlayingAlbumId() {
    return $("#pp-album-id").html();
}

function showLoading() {
    //$(".sc-player").hide();
    $("#player-gui").hide();
    if($("#sc-loading").length == 0) {
	$("#top-bar").prepend("<div id='sc-loading' class='f-right'><img src='http://wilco.prodlabs2.com/wp-content/themes/wilco/images/loading_sm.gif'/></div>"); 
    }
}
function removeLoading() {
    $("#player-gui").show();
    $("#sc-loading").remove();
}

function getAlbumThumbnail(the_album_id) {
    return master_album_playlist[the_album_id].thumbnail;
}

//Updates the gui and player status
function updateStatus(new_player_status) {
    player_status = new_player_status;       
    $(event_bound_to).trigger(event_names['track_changed']);
}
