/* jquery.twitter.js - v1.5
 *
 * 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/
 */

(function($) {

	$.fn.getTwitter = function(options) {

		$.fn.getTwitter.defaults = {
			userName:		'alexnelsonmusic',
			numTweets:		10,
			loaderText:		'Retrieving tweets, please wait.',
			slideIn:		true,
			showTimestamp:	false
		};

		var o = $.extend({}, $.fn.getTwitter.defaults, options);

		return this.each(function() {
			var c = $(this);

			// hide container element, remove alternative content, and add class
			c.hide().addClass('twitted');

			// add twitter list to container element
			var twitterListHTML = '<ul id="twitter_update_list"><li></li></ul>';
			c.append(twitterListHTML);

			var tl = $('#twitter_update_list');

			// hide twitter list
			tl.hide();

			// add preLoader to container element
			var preLoaderHTML = $('<p id="tweetPreLoader">' + o.loaderText + '</p>');
			c.append(preLoaderHTML);

			// show container element
			c.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
				$(preLoaderHTML).remove();

				// remove timestamp and move to title of list item
				if (!o.showTimestamp) {
					tl.find("li").each(function() {
						var timestampHTML = $(this).children("a");
						var timestamp = timestampHTML.html();
						timestampHTML.remove();
						$(this).attr("title", timestamp);
					});
				}

				// show twitter list
				tl.show();

			});
		});
	};
})(jQuery);
