/*
 * tweetable 1.2 - jQuery twitter feed generator plugin
 *
 * Copyright (c) 2009 Philip Beel (http://www.theodin.co.uk/)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Revision: $Id: jquery.tweetable.js 2009-08-20 $ 
 *
 */
(function($){$.fn.tweetable=function(options){var defaults={limit:5,username:'philipbeel',time:false};var options=$.extend(defaults,options);return this.each(function(options){var act=$(this);var api="http://twitter.com/statuses/user_timeline/";var count="?count=";$.getJSON(api+defaults.username+".json"+count+defaults.limit+"&callback=?",act,function(data){$.each(data,function(i,item){if(i==0){$(act).prepend('<ul class="tweetList"><li class="tweet_content_'+i+'">')}else{$('.tweetList').append('<li class="tweet_content_'+i+'">')}$('.tweet_content_'+i+'').append('<span class="tweet_link_'+i+'">'+item.text.replace(/#(.*?)(\s|$)/g,'<span class="hash">#$1 </span>').replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,'<a href="$&">$&</a> ').replace(/@(.*?)(\s|\(|\)|$)/g,'<a href="http://twitter.com/$1">@$1 </a>$2'));if(defaults.time==true){$('.tweet_content_'+i).append('<br><small> '+relative_time(item.created_at)+'</small>')}})})})}})(jQuery);

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

  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';
  }
}
