$(function() {
  
  String.prototype.linkify = function() {
    return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
      return m.link(m);
    });
  };
  
  function relative_time(time_value) {
    var values = time_value.split(" ");
    time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
    var parsed_date = Date.parse(time_value);
    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
    delta = delta + (relative_to.getTimezoneOffset() * 60);

    var r = '';
    if (delta < 60) {
      r = 'a minute ago';
    } else if(delta < 120) {
      r = 'couple of minutes ago';
    } else if(delta < (45*60)) {
      r = (parseInt(delta / 60)).toString() + ' minutes ago';
    } else if(delta < (90*60)) {
      r = 'an hour ago';
    } else if(delta < (24*60*60)) {
      r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
    } else if(delta < (48*60*60)) {
      r = '1 day ago';
    } else {
      r = (parseInt(delta / 86400)).toString() + ' days ago';
    }

    return r;
  }  
  
  // See http://apiwiki.twitter.com/Twitter-API-Documentation for docs
  ////var url = "http://twitter.com/favorites/8437552.json?count=3&callback=?";
  var url = "http://twitter.com/status/user_timeline/alucinari.json?count=4&callback=?"; 
  $.getJSON(url,
    function(data){ 
      $.each(data, function(i, item) {
        
        ////$("img#profile").attr("src", item.user["profile_image_url"]);
        
        $("#tweets ul").append(
          '<li>' +
          ' <span class="text">' + item.text.linkify() + '</span>' +
          ' <span class="created">' +
          relative_time(item.created_at) +
          //// ' from ' + item.source +
          '</span>' +
          '</li>');
          
      });
      
      $('#tweets #loading').hide();
      $('#tweets ul').show();
      $('#tweets #link').show();
      
      
    });
});