
v11_getFeed = function(feed,container){
	new Ajax.Request(feed, {
	  method:'get',
	  onSuccess: function(transport){
	     var json = transport.responseText.evalJSON();
		v11_twitter(json,container);
	   }
	});
	
};


v11_setupEvents = function(){
	$$('.twitter').each(function(e_tweet){
		document.t_updater = new v11_getFeed('/cache/twitter.php', e_tweet);
	});
};	

v11_twitter = function(r,container) {	
//console.log(r);
	this.container = container;
	r.results.reverse().each(function(b) { 
				
		var timeSince = v11_twitter_timeSinceEvents(b.created_at, this.now);
		this.tweet = '<div class="image"><a href="http://twitter.com/' + b.from_user  + '"  title="' + b.from_user  + '"><img src="' + b.profile_image_url  + '" width="24" height="24" alt="' + b.from_user  + '"></a></div><div class="content"><p>' + v11_twitter_parseString(b.text)  + '</p><p class="timesince"><a href="http://twitter.com/' + b.from_user  + '" title="' + b.from_user  + '">' + b.from_user  + '</a> - ' + timeSince  + '</p></div>';
		li = new Element('li',{'class':'item'}).update(this.tweet);
		this.container.insert ({ 'top'  :  li  } );
		
	});
	if (r.results == ''){
		$('twitter').style.display = 'none';
	}
};

v11_twitter_parseString = function(string){
	var newString = string.replace(/(http\:\/\/[a-z0-9\_\.\-\/\$\&\+\,\=\;\?]*)/gi,"<a href='$1'>$1</a>");
	newString = newString.replace(/\@([a-z0-9_]+)/gi,"<a href='http://twitter.com/$1'>@$1</a>");
	return newString;
};

v11_twitter_timeSinceEvents = function(pastEvent,currentTime){
	var now = new Date();
	now = Date.parse(now);
	var date = Date.parse(pastEvent);
	var GMT = 0;
	var minutes = 1000;	
	var timesince = now - date;
	
	return (v11_twitter_distance_of_time_in_words(timesince/minutes));
};

v11_twitter_distance_of_time_in_words = function(time){
	var seconds = parseInt(time,10);
	var minutes = Math.round(seconds/60);
	var hours = Math.round(seconds/3600);
	
	switch(true){
		case(seconds<20):
			return(' less than 20 seconds ago'); 
		case(seconds<40):
			return(' half a minute ago');
		case(seconds<90):
			return(' 1 minute ago');
		case(minutes<50):
			return(minutes + ' minutes ago');
		case(minutes<95):
			return('about 1 hour ago');
		case(minutes<1080):
			return(hours + ' hours ago');
		case(minutes<1440):
			return('one day ago');
		case(minutes<2880):
			return('about one day ago');
		default:
		 	return(Math.round(hours/24) + ' days ago');
	}
};
	
Event.observe(window,'load',v11_setupEvents);