(function($){
  $.fn.extend({
    lastfm: function(username){
      var el = $(this);

      var apikey = '8e49acf97ceff1e7622aa646c090a6e6';
      var url = 'http://lastfm-api-ext.appspot.com/2.0/?api_key='+apikey+
                '&user='+username+'&method=user.getrecenttracks&limit=1'+
                '&outtype=js&callback=?';

      $.getJSON(url, function(data, textStatus){
        if (data.status == 'failed') return false;

        var track = data.recenttracks[0];

        var id = $(el).attr('id');
        $('#'+id+' h2 a').html('last.fm/user/' + data.user)
                         .attr('href', 'http://last.fm/user/' + data.user);

        $(el).append($('<div/>').html((track.image_large)
          ? $('<img/>').attr('src', track.image_large).attr('alt', '')
          : 'no image'));

        $(el).append(
          $('<p/>').append(
            $('<a/>').attr('href', track.url)
                     .html(track.name)
          ).append(
            $('<br/>')
          ).append(
            $('<a/>').attr('href', track.url.split('/').slice(0,5).join('/'))
                     .html(track.artist.name)
          )
        );

        $(el).append($('<p/>').html(track.date.text));

        return true;
      });
    }
  });
})(jQuery);
