/**
* @author dgarvich
*/
var tweetsToShow = 4;
var url = "http://www.laggaming.com/LaGBar/tweets.json";

$(document).ready( function() {
	loadTweets();
	setInterval("resetTweets()", 300000);
});

function killOldTweets() {
	$(".tweetContainer").fadeOut("fast");
	$("#lb_tweets").empty();
}

function showNewTweets() {
	$(".tweetContainer").fadeIn("slow");
}

function makeTweet(id, avatar, uname, ttext, created, source) {
	var t = "";
	t += "<div id=\"t" + id + "\" class=\"tweetContainer\" style=\"background-image: url(" + avatar + "); display: none;\">";
	t += "<div class=\"tweet\">";
	t += "<div class=\"header\">" + uname + "</div>";
	t += "<div class=\"content\">" + ttext + "</div>";
	t += "<div class=\"meta\">:. About " + relative_time(created) + " from " + source + "</div>";
	t += "</div></div>";
	return t;
}

function resetTweets() {
	killOldTweets();
	loadTweets();
	showNewTweets();
}

function loadTweets() {
	$.getJSON(url,
	function(data){
		$.each(data, function(i, item) {
			$("#lb_tweets").append(makeTweet(item.id, item.user["profile_image_url"], item.user["name"], item.text, item.created_at, item.source));
			if (i == (tweetsToShow-1)) {
				return false;
			}
		});
		$(".tweetContainer").fadeIn("slow");
	});
}

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;
}