(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/
	*/

	$.fn.getTwitter = function(options) {
		var o = $.extend({}, $.fn.getTwitter.defaults, options);
	
		// hide container element
		$(this).hide();
	
		// add heading to container element
		if (o.showHeading) {
			$(this).append('<div id="header"></div><div class="twitter_spacer"></div>');
		}

		// add twitter list to container element
		$(this).append('<div id="headerBkg"></div><ul id="twitter_update_list"><li></li></ul>');

		// hide twitter list
		$("ul#twitter_update_list").hide();

		// add preLoader to container element
		var pl = $('<div id="'+o.preloaderId+'"></div>');
		$("#headerBkg").after(pl);
		
		// add footer & spacer
		$("ul#twitter_update_list").after("<div id='footerBkg'></div><div class='twitter_spacer'></div>");
		
		// add Twitter profile link to container element
		if (o.showProfileLink) {
			//add header (for rounded edges)
			$(this).append('<div id="bottom_header"></div>');
			$(this).append('<a id="profileLink" href="http://twitter.com/'+o.userName+'">twitter.com/'+o.userName+'</a>');
			//add footer (for rounded edges)
			$(this).append('<div id="bottom_footer"></div>');
		}

		// show container element
		$(this).show();
	
		$.getScript("http://twitter.com/javascripts/blogger.js");
		$.getScript("http://api.twitter.com/1/statuses/user_timeline/"+o.userName+".json?callback=twitterCallback2&include_rts=true&count="+o.numTweets, function() {
			// remove preLoader from container element
			$(pl).remove();

			// show twitter list
			if (o.slideIn) {
				$("ul#twitter_update_list").slideDown(100);
			}
			else {
				$("ul#twitter_update_list").show();
			}

			// 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");
		});
	};

	// plugin defaults
	$.fn.getTwitter.defaults = {
		userName: null,
		numTweets: 3,
		preloaderId: "preloader",
		loaderText: "",
		slideIn: false,
		showHeading: false,
		headingText: "",
		showProfileLink: true
	};
})(jQuery);
