(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('<h2>'+o.headingText+'</h2>');
          }

          // 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.slideIn) {
                    $("ul#twitter_update_list").slideDown(1000);
               }
               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: 5,
          preloaderId: "preloader",
          loaderText: "Loading tweets...",
          slideIn: false,
          showHeading: true,
          headingText: "Latest Tweets",
          showProfileLink: true
     };
})(jQuery);

