(function($){
	$.fn.getTweets = function(user, options){
		
		var API_URL = 'http://api.twitter.com/1/statuses/user_timeline.json?callback=?',
			box		= this,
			d 		= new Date(),
			now 	= d.getTime(),
			html;
		
		settings = jQuery.extend({
			tweets : 2,
			months : ['Jan', 'Feb', 'Mar', 'Apr', 'May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
		}, options);
		
		return this.each(function(){				
			$.getJSON(API_URL, { screen_name: user, count:settings.tweets }, function(data){
				display(data);
			});						
		});
		
		function display(data){		
			var html = '';	
			for(var i in data){
				html += '<div class="tweetfeed">';
				html += '<p class="tweet">'+_parseTweets(data[i].text);
				
				var created_at 	= data[i].created_at,
					post_time	= new Date(created_at).getTime(),					
					diff_ms 	= Math.abs(now - post_time),
					one_hour 	= 1000 * 60 * 60,
					milli		= Math.floor(diff_ms/one_hour),
					date_display= milli > 1 ? milli+' hour'+(milli >=2 ? 's' : '')+' ago' : milli+' minutes ago';
				
				html += '<br /><span class="tweetdate">'+date_display+' | '+'<a href="http://twitter.com/home?status=RT+@'+user+' '+data[i].text+'" class="retweet">retweet</a></span></p>';		
				html += '</div>';
			}
			var btns = '<a class="latestbtn" href="http://twitter.com/#!/'+user+'"></a>';

			box.append(html);			
			$('.tweetbtn').append(btns);
		}
		
		function _parseTweets( str ) {
			
			// Parses for links
			str = str.replace( /[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(url) {
				return url.link(url);
			});
			
			// Parses for @twitter_users
			str = str.replace( /[@]+[A-Za-z0-9-_]+/, function(u) {
				var username = u.replace('@','');
				return u.link('http://www.twitter.com/#!/' + username);
			});
			
			// Parses for hashtags
			str = str.replace( /[#]+[A-Za-z0-9-_]+/, function(t) {
				var tag = t.replace('#','%23');
				return t.link('http://search.twitter.com/search?q=' + tag);
			});
			
			return str;
			
		}
		
		
		
	}
})(jQuery);
