(function($) {
	/*
		jquery.twitter.js v1.0
		Last updated: 26 October 2008

		Created by Damien du Toit
		http://coda.co.za/blog/2008/10/26/jquery-plugin-for-twitter

		Licensed under a Creative Commons Attribution-Non-Commercial 3.0 Unported License
		http://creativecommons.org/licenses/by-nc/3.0/
		
		Animate one By one By Pote Interativo
	*/
	$.fn.twitter = function(options) {
		var options = $.extend({}, options, {
			timer: null,
			counter: 0
		});
		$.fn.twitter.defaults = $.extend({}, $.fn.twitter.defaults, options);
		var o = $.fn.twitter.defaults;
		// hide container element
		$(this).hide();

		// add twitter list to container element
		$(this).append('<ul id="twitter_update_list"><li></li></ul>');

		// hide twitter list
		$("ul#twitter_update_list").hide();

		// add preLoader to container element
		var pl = $('<p id="'+o.preloaderId+'">'+o.loaderText+'</p>');
		$(this).append(pl);

		// add Twitter profile link to container element
		if (o.showProfileLink) {
			$(this).append('<a id="profileLink" href="http://twitter.com/'+o.userName+'">http://twitter.com/'+o.userName+'</a>');
		}

		// show container element
		$(this).show();
	
		$.getScript("http://twitter.com/javascripts/blogger.js");
		$.getScript("http://twitter.com/statuses/user_timeline/"+o.userName+".json?callback=twitterCallback2&count="+o.numTweets, function() {
			// remove preLoader from container element
			$(pl).remove();
			
			// show twitter list
			if (!o.oneByOne){
				if (o.slideIn) {
					$("ul#twitter_update_list").slideDown(1000);
				}
				else {
					$("ul#twitter_update_list").show();
				}
			}else{
				//$("ul#twitter_update_list li").hide();
				$("ul#twitter_update_list li").animate({opacity: 0}, 0);
			}
			
			// give first list item a special class
			$("ul#twitter_update_list li:first").addClass("firstTweet");

			// give last list item a special class
			$("ul#twitter_update_list li:last").addClass("lastTweet");
			
			if (o.oneByOne){
				if(o.timer != null) clearTimeout(o.timer);
				$("ul#twitter_update_list").show();
				o.timer = setTimeout($(this).animateTwitter, 0);
			};
		});
	};
	
	//var teste = 0;
	$.fn.setTimeout = function(){
		var o = $.fn.twitter.defaults;
		if(o.timer != null) clearTimeout(o.timer);
		o.timer = setTimeout($(this).animateTwitter, o.delay);
	};
	
	$.fn.animateTwitter = function(){
		var o = $.fn.twitter.defaults;
		var total = $("ul#twitter_update_list li").size();
		var elem = $(this);
		
		if(o.counter <= total){
			var oldTwitter  = $("ul#twitter_update_list li").get((o.counter-1));
			var newTwitter  = $("ul#twitter_update_list li").get(o.counter);
			
			var opacity = 0;
			if (oldTwitter != undefined){
				$(oldTwitter).animate({'opacity': opacity, 'filter': 'alpha(opacity='+(opacity*100)+')'}, 500, function(){
					$(this).hide();
					var opacity = 1;
					if (newTwitter != undefined) $(newTwitter).show().animate({'opacity': opacity, 'filter': 'alpha(opacity='+(opacity*100)+')'}, o.delayAlpha, elem.setTimeout);
				});
			}else{
				var opacity = 1;
				if (newTwitter != undefined) $(newTwitter).show().animate({'opacity': opacity, 'filter': 'alpha(opacity='+(opacity*100)+')'}, o.delayAlpha, elem.setTimeout);
			}
			
			o.counter += 1;
			
			if($(newTwitter).hasClass('lastTweet')){ o.counter = 0; }
			
		};
		
		//teste = 1;
	};

	// plugin defaults
	$.fn.twitter.defaults = {
		userName: null,
		numTweets: 5,
		preloaderId: "preloader",
		loaderText: "Loading tweets...",
		slideIn: false,
		showHeading: true,
		headingText: "",
		showProfileLink: true,
		numDisplay: 1,
		oneByOne: false,
		delay: 5000,
		delayAlpha: 1000
	};
})(jQuery);
