$(document).ready(function(){
  var fileref = document.createElement('script');
  fileref.setAttribute("type","text/javascript");
  fileref.setAttribute("src", "http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&format=json&callback=lastfm.ticker&user=fringley&api_key=b25b959554ed76058ac220b7b2e0a026");
  document.getElementsByTagName("head")[0].appendChild(fileref);
});

lastfm = {
  tracks : [],
  counter : 0,
  container : null,
  
  ticker : function(ob) {
    this.container = $('#lastfm-feed');
    this.tracks = ob.recenttracks.track;
    this.container.innerHtml = '';
    this.nextTrack();
    setInterval("lastfm.nextTrack()", 5500);
  },

  nextTrack : function() {
    var track = this.tracks[this.counter];
    this.container.append(this.createTrackDiv(track));
    $('#track-'+this.divId(track)).fadeIn('slow');
    if (this.container.children().length > 1) {
      // $(this.container.children()[0]).animate({ 
      //   opacity: 0.0,
      //   marginLeft: "400px",
      // }, 'fast', 'linear', function() {
      //   $(this).remove();
      // });

      $(this.container.children()[0]).fadeOut('slow', function() {
        $(this).remove();
      });
    }
    this.counter++;
    if (this.tracks[this.counter] === undefined) { this.counter = 0; }
  },
  
  divId : function(track) {
    return (track.date !== undefined) ? track.date.uts : 'now';
  },

  createTrackDiv : function(track) {
    var str = '<div class="track" style="display: none;" id="track-' + this.divId(track) + '">'
    str += '<img src="'+track.image[2]["#text"]+'" />';
    str += '<span class="name"><a href="' +track.url + '" target="_new">'+track.name+'</a></span><br/>';
    str += track.artist["#text"]+'<br />';
    if (track.album["#text"] !== '') {
      str += 'On '+track.album["#text"]+'<br />';
    }
    str += '<span class="time">'+ ((track.date !== undefined) ? 'Played ' + utilities.relativeTime(track.date["#text"]) : 'Playing now') +'</span>';
    str += '</div>';
    
    return str;
  }  
}

