/* 
 * Twitter Fader jQuery Plugin version 1.0
 * Chris Cook - chris@chris-cook.co.uk
 */

(function($) {
	$.fn.twitterFader = function(searchTerm, options) {

		var settings = {
			'display-rate'		: 3500,
			'fade-rate'			: 500,
			'return-num'		: 4,
			'return-type'		: 'recent',
			'return-language'	: 'en'
		};

		var $fader = $(this);

		if (!searchTerm) {
			$fader.html("Error! You need to enter a search term.");
		}
		else {		
			return this.each(function() {

				if (options) {
					$.extend(settings, options);
				}

				$fader.html("Loading&hellip;");
				update();
				setInterval(update, (settings['display-rate'] * settings['return-num']) + ((settings['fade-rate'] * 2) * settings['return-num']));
				function update() {
					$.getJSON(
						"http://search.twitter.com/search.json?callback=?",
						{
							q: searchTerm,
							rpp: settings['return-num'],
							lang: settings['return-language'],
							result_type: settings['return-type']
						},
						function(json) {
							$fader.html("");
							if (json.results.length > 0) {
								$.each(json.results, function(i, item) {
									$fader.append('<li style="display:none"><b>@' + item.from_user + ':</b> ' + item.text + '</li>');
									//$fader.append('<li style="display:none">' + item.text + '</li>');
								});
								setInterval(function(){ $fader.children("li").first().fadeIn(settings['fade-rate']).delay(settings['display-rate']).fadeOut(settings['fade-rate'], function() { $(this).remove() } ) }, 1);
							}
							else {
								$fader.append("Sorry, we haven't tweeted in a while.");
							}
						}
					);
				}
			});
		}

	};
})(jQuery);
