var twitterurl = "http://twitter.com/status/user_timeline/furniturespotuk.json?count=3&callback=?"; 
$.getJSON(twitterurl, 
function(data)
{
	$.each(data, function(i, item)
	{
		$("img#profile").attr("src", item.user["profile_image_url"]);  
        $("#tweets ul").append("<li><span class='twittertime'>"
							   + relative_time(item.created_at)
							   + "</span><p>"
							   + item.text.linkify().atify()
							   + "<span class='twitterfrom'> via "
							   + item.source
							   + "</span></p></li>");
	}); 
});

String.prototype.linkify = function(){
    if (this) {
        return this.replace(
            /((https?\:\/\/)|(www\.))(\S+)(\w{2,4})(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/gi,
            function(url){
                var full_url = url;
                if (!full_url.match('^https?:\/\/')) {
                    full_url = 'http://' + full_url;
                }
                return '<a href="' + full_url + '">' + url + '</a>';
            }
        );
    }
    return this;
}


String.prototype.atify = function()
{
	return this.replace(/@[\w]+/g, function(m) { return "<a href='http://www.twitter.com/"+m.replace('@','')+"'>"+m+"</a>"; });
}; 
	   
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);
	  
	  var r = '';
	  if (delta < 60) {
	    r = 'a minute ago';
	  } else if(delta < 120) {
	    r = 'couple of minutes ago';
	  } else if(delta < (45*60)) {
	    r = (parseInt(delta / 60)).toString() + ' minutes ago';
	  } else if(delta < (90*60)) {
	    r = 'an hour ago';
	  } else if(delta < (24*60*60)) {
	    r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
	  } else if(delta < (48*60*60)) {
	    r = '1 day ago';
	  } else {
	    r = (parseInt(delta / 86400)).toString() + ' days ago';
	  }
	  
	  return r;
}

function twitter_callback ()
{
	return true;
}
