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 < (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(tweets) {
    if (tweets == 'undefined' || tweets.length == 0) {
        return
    }

	if(document.getElementById('my_twitter_status'))
	{
    	var tweet = tweets[0]
    	var status = tweet.text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
    		return '<a href="' + url + '" target="_blank" class="url">' + url + '</a>'
    	}).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
    		return reply.charAt(0) + '<a href="http://twitter.com/' + reply.substring(1) + '" target="_blank" class="reply">' + reply.substring(1) + '</a>'
    	}).replace(/\B#([_a-z0-9]+)/ig, function(hashtag) {
    		return '<a href="http://twitter.com/search?q=%23' + hashtag.substring(1) + '" target="_blank" class="search">' + hashtag + '</a>'
    	})

    	document.getElementById('my_twitter_status').innerHTML = status
    	document.getElementById('my_twitter_status_time').innerHTML = '<a href="http://twitter.com/' + tweet.user.screen_name + '/statuses/' + tweet.id_str + '" target="_blank">' + relative_time(tweet.created_at) + '</a>'
	}
}
