function relative_time(time_value) {

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

     if(delta < 60) {
         return 'less than a minute ago';
     } else if(delta < 120) {
         return 'about a minute ago';
     } else if(delta < (45*60)) {
         return (parseInt(delta / 60)).toString() + ' minutes ago';
     } else if(delta < (90*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';
     }
  }


function twitterCallback(obj) {
  var html = '';
  
  for (var i = 0; i < 3; i++) 
  {
    
	rExp = /((http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(\/*)(:(\d+))?([A-Z0-9_\/.?~-]*))/gi
    text = new String(obj[i].text);
  	text = text.replace(rExp,'<a href="$1">$1</a>');
  	rExp = /((@([A-Z0-9_]+)) )/gi
  	text = text.replace(rExp,'<a href="http://twitter.com/$3">$2</a> ');
    html += '<li><a href="http://twitter.com/' + obj[i].user.screen_name +'">' + obj[i].user.screen_name + '</a>: '; 
    html += text + '<br>' + '<span style="font-style:italic;">' + relative_time(obj[i].created_at) + '</span>' + '</li>';
  }
  document.getElementById('twitter_list').innerHTML = html;
}