$(document).ready(function(){
    twitterupdate();
});

function twitterupdate()
{
    $.getJSON(url, function(data){
        $.each(data, function(i, item) {
            var HTML = '';
            if((i < 5)) 
            {
                HTML = '<li id="id_' + item.id + '">' + item.text.linkify().parseUsername().parseHashtag() + ' <a class="time" href="' + twitterprofile + item.id + '">' + relative_time(item.created_at) + '</a></li>'; 
                $(".twitter_update_list").append( HTML );
            }
            $(".loading_tweets").hide();
        });
    });
}

String.prototype.linkify = function() 
{
    return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) 
    {
        //return m.link(m);
		return '<a target="_blank" href="'+m+'">'+m+'</a>';        
    });
};

String.prototype.parseUsername = function() {
	return this.replace(/[@]+[A-Za-z0-9-_]+/g, function(u) {
		var username = u.replace("@","")
		//return u.link("http://twitter.com/"+username);
		return '@<a target="_blank" href="http://twitter.com/'+username+'" class="profile">'+username+'</a>';
	});
};
 
String.prototype.parseHashtag = function() {
	return this.replace(/[#]+[A-Za-z0-9-_]+/g, function(t) {
		var tag = t.replace("#","%23")
		//return t.link("http://search.twitter.com/search?q="+tag);
		return '<a target="_blank" href="http://search.twitter.com/search?q='+tag+'">'+t+'</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 = 'about 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;
}
