$(document).ready(function () {
	$.jTwitter("thebluee", 3, TwitterHandler);
	$.getFeed({
		url: 'handlers/getblog.ashx',
		success: function (feed) {
			var html = "<span>";
			for (var i = 0; i < feed.items.length && i < 4; i++)
			{

				var item = feed.items[i];

				html += '<span><a href="'
                + item.link
                + '">'
                + item.title
                + '</a>'
                + '<br/>';

				html += item.description + "<br/></span>";
			}
			html += '</span>';

			$('#rss').append(html.linkTarget("_blank"));
		}
	});


});

function TwitterHandler(data) {
	$(data).each(function (i, element) {
		$("#twitter").append(("<span><span>"
		 + (element.text).parseURL().parseUsername().parseHashtag()
		 + "<br /><b>"
		 + GetElapsedTime(Date.parse(element.created_at.substring(0, element.created_at.indexOf(" +"))))
		 + " from "
		 + element.source
		 + "</b></span></span>").linkTarget("_blank"));
	});
}

function GetElapsedTime($time) {
    var $gap = new Date().getTime() - $time.getTime();
    if ($gap < 5) {
        return 'less than 5 seconds ago';
    } else if ($gap < 10) {
        return 'less than 10 seconds ago';
    } else if ($gap < 20) {
        return 'less than 20 seconds ago';
    } else if ($gap < 40) {
        return 'half a minute ago';
    } else if ($gap < 60) {
        return 'less than a minute ago';
    }
    $gap = Math.round($gap / 60);
    if ($gap < 60)  { 
        return $gap + ' minute' + ($gap > 1 ? 's' : '') + ' ago';
    }
    $gap = Math.round($gap / 60);
    if ($gap < 24)  { 
        return 'about ' + $gap + ' hour' + ($gap > 1 ? 's' : '') + ' ago';
    }
    return $time.toString('d MMM, yyyy');
}


String.prototype.parseUsername = function ()
{
	return this.replace(/[@]+[A-Za-z0-9-_]+/, function (u)
	{
		var username = u.replace("@", "")
		return u.link("http://twitter.com/" + username);
	});
};

String.prototype.parseHashtag = function ()
{
	return this.replace(/[#]+[A-Za-z0-9-_]+/, function (t)
	{
		var tag = t.replace( "#", "%23" )
		return t.link( "http://search.twitter.com/search?q=" + tag );
	});
};
String.prototype.parseURL = function ()
{
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function (url)
	{
		return url.link(url);
	});
};
String.prototype.linkTarget = function (target)
{
	var html = $(this.toString());
	html.find("a").each(function (i, el)
	{
		el.target = target;
	});
	return html.html();
}