// JavaScript Document

(function($){
	
	// Define o plugin
	$.fn.twitter = function(username,settings) {
		var $this = $(this);
		$this.empty();
		var defaults = {count:5,time:30000,style:{content:'tweet-content',text:'textotwitter',link:'tLink',date:'datatwitter',tags:'tTags',spacer:'tweet-space'}};
		settings = $.extend(defaults, settings);
		var url = 'http://search.twitter.com/search.json?callback=?&rpp='+ settings.count +'&q=from:'+ username;
		$this.append('<ul id="tweet-list"></ul>');
		
		var H = function (a) {
			var b = new Date();
			var c = new Date(a);
			if(navigator.userAgent.match(/MSIE\s([^;]*)/)){c = Date.parse(a.replace(/( \+)/,' UTC$1'))}
			var d = b - c;
			var e = 1000, minute = e * 60, hour = minute * 60, day = hour * 24, week = day * 7; 
			if(isNaN(d) || d < 0){return ""}
			if(d < e * 7){return "agora"}
			if(d < minute){return Math.floor(d / e) + " segundos atr&aacute;s"}
			if(d < minute * 2){return "1 minuto atr&aacute;s"}
			if(d < hour){return Math.floor(d / minute) + " minutos atr&aacute;s"}
			if(d < hour * 2){return "1 hora atr&aacute;s"}
			if(d < day){return Math.floor(d / hour) + " horas atr&aacute;s"}
			if(d > day && d < day * 2){return "ontem"}
			if(d < day * 365){return Math.floor(d / day) + " dias atr&aacute;s"} else {return "mais de um ano atr&aacute;s"}
		};

		function atualiza(){
			$.getJSON(url,function(data){
				$('#tweet-list').fadeOut('fast').empty();
				$.each(data.results,function(i,obj){
					text = obj.text.replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,'<a href="$&" target="_blank"><span class="'+settings.style.link+'">$&</span></a>');
					text = text.replace(/(@(\w*))((?=([^<])*?<a)|(?!.*?<\/a>))/g,'<a href="http://twitter.com/$2" target="_blank"><strong>@$2</strong></a>');
					text = text.replace(/#(.*?)(\s|$)/g,'<a href="http://twitter.com/search?q=%23$1" target="_blank"><span class="'+settings.style.tags+'">#$1</span></a>');
					$('#tweet-list').append('<li class="'+settings.style.content+'" id="tweet-content-' + i + '"></li>');
					$('#tweet-content-' + i).append('<span class="'+settings.style.text+'">' + text + '</span><br />',
													'<a href="http://twitter.com/'+username+'/statuses/'+this.id_str+'" target=_blank><span class="'+settings.style.date+'">' + H(obj.created_at) + '</span></a>');
					$('#tweet-list').append('<li class="'+settings.style.spacer+'"><br /></li>');
				});
				$('#tweet-list').fadeIn('fast');
				setTimeout(atualiza,settings.time);
			});
		}
		atualiza();
		
		return $this; // Retorna o objeto.
	}
	
})(jQuery);

