(function($) {
	$.fn.latest_tweets = function(options){
		
		return this.each(function(){
					   
			var defaults = {
				searchQuery: "from:",
				rpp: 3
			}
			
			var $t = $.extend(defaults, options);
			$t.obj = $(this);
			load_latests($t);
			
		});
		
		function load_latests($t){
			$t.index = -1;
			$($t.obj).empty();
			$.getJSON("http://search.twitter.com/search.json?q="+$t.searchQuery+"&rpp="+$t.rpp+"&callback=?", function(data) {
				if(data.results.length > 0){
					for(i=0;i<data.results.length;i++){
						parsedURL = data.results[i].text.parseURL();
						parsedURL = parsedURL.parseUsername();
						parsedURL = parsedURL.parseHashtag();
						
						//DEFAULT STRUCTURE - CHANGE AS YOU WISH
						/*
								<div class="tweet">
									<a href="http://twitter.com/{user}" class="user"><img src="{progile_image_url}" alt="{user}" /></a>
									{tweet message}<br />
									<span class="how_long_ago"></span>
								</div>
						*/
						//CHANGE THE STRUCTURE OF YOUR APP HERE------------------------------------------------------------
						
						$('<div class="tweet"><a href="http://twitter.com/'+data.results[i].from_user+'" class="avatar" target="_blank"><img src="'+data.results[i].profile_image_url+'" alt="@'+data.results[i].from_user+'" width="50" height="50" /></a>'+parsedURL+'<br /><span class="how_long_ago">'+twitterHora(data.results[i].created_at)+'</span></div>').appendTo($t.obj);
						
						//-------------------------------------------------------------------------------------------------
					}
					$t.total = data.results.length;
					switchTuite($t);
				}
				
			});
		}
		
		function switchTuite($t){
			$t.index++;
			if($t.index>=$t.total){
				$($t.obj).find(".tweet:visible").fadeOut(function(){
					load_latests($t);
				});
			}else{
				if($(".tweet:visible").length>0){
					$(".tweet:visible").fadeOut(function(){
						$(".tweet:eq("+$t.index+")").fadeIn();
					});
				}else{
					$(".tweet:eq("+$t.index+")").fadeIn();
				}
				setTimeout(function(){switchTuite($t);},5000);
			}
		}

		
		function twitterHora(k){
			//var j=k.split(" ");
			//k=j[1]+" "+j[2]+", "+j[5]+" "+j[3];
			var h=Date.parse(k);
			var l=(arguments.length>1)?arguments[1]:new Date();
			var m=parseInt((l.getTime()-h)/1000);
			//m=m+(l.getTimezoneOffset()*60);
			//alert("k:"+k+" - h:"+h+" - time:"+l.getTime()+" - sub:"+(l.getTime()-h)/1000+" - zona:"+l.getTimezoneOffset()*60+" - m:"+m);
			if(m<60){
				return"menos de 1 minuto atr&aacute;s"
			}else{
				if(m<120){
					return"1 minuto atr&aacute;s"
				}else{
					if(m<(60*60)){
						return(parseInt(m/60)).toString()+" minutos atr&aacute;s";
					}else{
						if(m<(120*60)){
							return"1h atr&aacute;s"
						}else{
							if(m<(24*60*60)){
								return""+(parseInt(m/3600)).toString()+" horas atr&aacute;s";
							}else{
								if(m<(48*60*60)){
									return"1 dia atrás"
								}else{
									return(parseInt(m/86400)).toString()+" dias atr&aacute;s";
								}
							}
						}
					}
				}
			}
		}
	};
})(jQuery);
		
String.prototype.parseURL = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(url) {
		//return url.link(url);
		return '<a href="'+url+'" target="_blank">'+url+'</a>';
	});
};
String.prototype.parseUsername = function() {
	return this.replace(/[@]+[A-Za-z0-9-_]+/, function(u) {
		var username = u.replace("@","")
		//return u.link("http://twitter.com/"+username);
		return '<a href="http://twitter.com/'+username+'" target="_blank">@'+username+'</a>';
	});
};
String.prototype.parseHashtag = function() {
	return this.replace(/[#]+[A-Za-z0-9-_]+/, function(t) {
		var tag = t.replace("#","")
		//return t.link("http://search.twitter.com/search?q="+tag);
		return '<a href="http://search.twitter.com/search?q='+tag+'" target="_blank">#'+tag+'</a>';
	});
};
