var timeUnits = new Array;
timeUnits['minute'] = 60;
timeUnits['hour'] = timeUnits['minute'] * 60;
timeUnits['day'] = timeUnits['hour'] * 24;
timeUnits['month'] = timeUnits['day'] * 30;
timeUnits['year'] = timeUnits['day'] * 364;
var timeUnitOrder = ['year', 'month', 'day', 'hour', 'minute'];

function relativeDate(date) {
    var now = new Date();
    var offset = date.getTime() - now.getTime();
    var seconds = Math.round(Math.abs(offset) / 1000);
    
    var ret = "";
    var shown = 0;
    for (i = 0; i < timeUnitOrder.length; i++) {
	   var unit = timeUnitOrder[i];
	   if (seconds >= timeUnits[unit]) {
            var num = Math.floor(seconds / timeUnits[unit]);
            seconds -= num * timeUnits[unit];
            if (ret)
			 ret += "and ";
            ret += num + " " + unit + (num > 1 ? "s" : "") + " ";
		  
            if (++shown == 2)
			 break;
	   }
	   else if (shown)
        break;
    }
    
    if (! ret) ret = "less than a minute "
    return ret + (offset < 0 ? "ago" : "from now");
}

function twitterCallback(tw) {
    status = tw.status.text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    reldate = relativeDate(new Date(tw.status.created_at)) ;
    document.getElementById('twitter_status').innerHTML = '<span class="mb_title">' + status + '</span> <span class="mb_date"><a href="http://twitter.com/' + tw.screen_name + '/status/'+ tw.status.id + '">' + reldate + "</a></span>" ;
}
