(function($) {

	$.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 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();
			$('ul#twitter_update_list li').each(function(){

			$(this).find('a').each(function(){
				linkHRef=$(this).attr('href');
				if (linkHRef.indexOf('twitter.com') > 0) $(this).addClass('tweet-friend');
				$('.tweet-friend').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");

      $("ul#twitter_update_list li").hover(
        function () {
          nMsg = "RT @" + o.userName + ": " + $(this).find('span').text();
          nMsg = nMsg.replace('#','');
          nURL = "http://twitter.com/home?status=" + nMsg;
          $(this).append($("<div id='retwittar'><a href=\"" + encodeURI(nURL) + "\" target='_blank'>Retwittar</a></div>"));
          $(this).addClass("selTweet");
        },
        function () {
          $(this).find("div:last").remove();
          $(this).removeClass("selTweet");
        }
      );

		});
	};

	// plugin defaults
	$.fn.getTwitter.defaults = {
		userName: null,
		numTweets: 5,
		preloaderId: "preloader",
		loaderText: "Loading tweets...",
		slideIn: false,
		showHeading: true,
		headingText: "Latest Tweets",
		showProfileLink: true
	};
})(jQuery);


