function get_dtweets(num) {
  var url = "http://twitter.com/statuses/user_timeline/";
  url += "thompsonpoole.json?callback=display_dtweets&count=" + num;
  jQuery.getScript(url);
}
function display_dtweets(tweets) {
  jQuery("#tw_denise").html(tweets2html(tweets));
}

function get_wtweets(num) {
  var url = "http://twitter.com/statuses/user_timeline/";
  url += "wendipoole.json?callback=display_wtweets&count=" + num;
  jQuery.getScript(url);
}
function display_wtweets(tweets) {
  jQuery("#tw_wendi").html(tweets2html(tweets));
}

function tweets2html(tweets) {
  var html_of_tweets = "";

  for (var i=0; i<tweets.length; i++) {
    if (i != 0) html_of_tweets += "<br>";
    var username = tweets[i].user.screen_name;
    var tweet_text = "<span class='twitter-user'>" + username + ": </span>";
    tweet_text += filter_tweet(tweets[i].text);
    var tweet_time = get_tweet_time(tweets[i].created_at);
    html_of_tweets += "<span class='tweet-text'>" + tweet_text + "</span>";
    html_of_tweets += "<br><span class='tweet-time'>" + tweet_time + "</span>";
  }

  return html_of_tweets;
}

function filter_tweet(tweet_text) {
  var ttt = tweet_text.replace(
    /((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g,
    function(url) { return '<a href="'+url+'">'+url+'</a>'; });
  ttt = ttt.replace(
    /\B@([_a-z0-9]+)/ig,
    function(r) {
      var n = r.substring(1);
      var ret = '<a href="http://twitter.com/' + n + '">' + r + '</a>';
      return ret;
    });
  return ttt;
}

function get_tweet_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);

  if (delta < 60) return 'less than a minute ago';
  else if (delta < 120) return 'about a minute ago';
  else if (delta < (60*60))
    return (parseInt(delta / 60)).toString() + ' minutes ago';
  else if (delta < (120*60)) return 'about an hour ago';
  else if (delta < (24*60*60))
    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  else if (delta < (48*60*60)) return '1 day ago';
  else return (parseInt(delta / 86400)).toString() + ' days ago';
}
