var url = "http://twitter.com/status/user_timeline/objects.json?count=20&callback=?";
var rtimg = "/site/images/rt.png";
var pause = 8000;
var speed = 'slow';

var $j = jQuery.noConflict();
$j(document).ready(function() {
	
	$j.getJSON(url, function(data){ 
		$j.each(data, function(i, item) {
			if (item.text.indexOf('@')!=0) {
	//			$j("img#profile").attr("src", item.user["profile_image_url"]);  
				$j("div.tweets ul").append("<li>"  
					+ item.text.linkify()  
					+ " <br/><span class='created_at'>"  
					+ relative_time(item.created_at)  
					+ "</span></li>");
			}
		}); 
	}); 
	
	interval = setInterval(scroll, pause);

});

String.prototype.linkify = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
		return m.link(m);
	}).replace(/@[A-Za-z0-9_]+/g, function(m) {
		return m.link('http://twitter.com/'+m.substring(1));
	}).replace(/#[A-Za-z0-9]+/g, function(m) {
		return m.link('http://twitter.com/search?q=%23'+m.substring(1));
	}).replace(/RT /, '<img src="'+rtimg+'" alt="retweet" class="noborder"/> ');
};

function scroll() {
	last = $j('div#tweets ul li:last').hide().remove();
	$j('div.tweets ul').prepend(last);
	//$j('div#tweets ul li:first').show();
	$j('div.tweets ul li:first').slideDown(speed);
}
	

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';
   }
}

