// JavaScript Document

// Slightly customised version by Elliot Jay Stocks to get rid of their crap inline styling
// Last modified: 13.09.2007

$(function() {
    var url = 'http://twitter.com/statuses/user_timeline/leveronline.json?callback=twitterCallback2&count=1';
		
	var script = $('<script>').attr('src',url).appendTo('<body>');
});

function linkify(s) {
        var entities = {
            '"' : '&quot;',
            '&' : '&amp;',
            '<' : '&lt;',
            '>' : '&gt;'
        };
        
        return s.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g, function(m) {
            return m.link(m);
        }).replace(/(^|[^\w])(@[\d\w\-]+)/g, function(d, m1, m2) {
            return m1 + '@<a href="http://twitter.com/' + m2.substr(1) + '">' + m2.substr(1) + '</a>';
        }).replace(/"&<>/, function (m) {
            return entities[m];
        });
}


function twitterCallback2(obj) {
var twitters = obj;
var statusHTML = "";
var username = "";
for (var i=0; i<twitters.length; i++){
var text = linkify(twitters[i].text);
username = twitters[i].user.screen_name
statusHTML += ('<li>'+text+'<br /><span class="twitter-sub-2">Updated '+relative_time(twitters[i].created_at)+'.</span></li>')
}
$('#twitter_update_list').html(statusHTML).find('a').attr('rel','nofollow');
}

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';
}
}