var TwitterFeed = function(wrapper, options){
	$.extend(this.options, options);
	this.wrapper = $(wrapper);
	this.get();
};
TwitterFeed.prototype = {
	options: {
		element: "ul",
		cssClass: "feed clearfix",
		type: "json",
		limit: 5
	},
	get: function(){
		$.getJSON("http://twitter.com/statuses/user_timeline."
			+ this.options.type 
			+ "?screen_name=" + this.options.user 
			+ "&count=" + this.options.limit 
			+ "&callback=?", $.fnbind(this.complete, this)
		);
	},
	complete: function(data){
		var el = $("<" + this.options.element + " class=\"" + this.options.cssClass + "\" />");
		$(data).loop(function(obj, i){
			el.append($("<li" + (i == 0 ? " class=\"first\"" : "") + "><span class=\"date\">" + this.date(obj) + "</span><span class=\"tweet\"><span>&quot;" + this.parse(obj.text) + "&quot;</span></span></li>"));
		}, this);
		this.wrapper.html(el);
	},
	date: function(obj){
		var arr = obj.created_at.split(" ");
		var t = arr[3].split(":");
		var test = arr[1] + " " + arr[2] + ", " + arr[5] + " " + t[0] + ":" + t[1];
		var a = new Date(test);
		var diff = Math.floor((((new Date()).getTime() - a.getTime()) / 86400000));
		t = t[0] + ":" +t[1];
		if(diff == 0) return "Idag " + t;
		if(diff == 1) return "Igår " + t;
		
		var d = a.getDate();
		d = d < 10 ? "0" + d : d;
		var m = a.getMonth() + 1;
		m  = m  < 10 ? "0" + m : m;
		var y = a.getFullYear();
		
		return y + "-" + m + "-" + d;
		return "hej";
	},
	parse: function(str){
		return str.parseURL().parseUsername().parseHashtag();
	}
};
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.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-ZåäöÅÄÖa-z0-9-_]+/, function(t) {
		var tag = t.replace("#","%23")
		return t.link("http://search.twitter.com/search?q="+tag);
	});
};
$(document).ready(function(){
	$("div.twitter-feed").each(function(){
		new TwitterFeed(this, { user: "vincentboiardt" });
	});
});
