(function ($) {
	$.fn.lead = function(options) {
		var options = $.extend({pauseTime: 5000, transitionTime: 2000, leadClass: 'rotator', navContainer: 'div.navigation', bulletPrefix: 'b'}, options);
		var transitionObject;
		
		Trans = function(obj) {
			var timer = null;
			var current = 0;
			var els = $("> *." + options.leadClass, obj).css("display", "none").css("left", "0").css("top", "0").css("position", "absolute");
			var bullets = new Array();
			var cls = null;
			var e = 0;
//			els.each(function(){
//				cls = $(this).attr("class").split(' ')[1];
//				if (cls.indexOf("b") == 0){
//					bullets[e] = cls.substring(1);
//					$(options.navContainer + " a#" + options.bulletPrefix + bullets[e] + " img").css({opacity: 0.5});
//					e++;
//				}				
//			});			
//			$(options.navContainer + " a#" + options.bulletPrefix + bullets[0] + " img").css({opacity: 1});
			
			$(obj).css("position", "relative");
			$(els[current]).css("display", "block");
			
			function transition(next) {
				$(els[current]).fadeOut(options.transitionTime);
				$(els[next]).fadeIn(options.transitionTime);				
//				selectBullet(next);
				current = next;
				cue();
			};
			
			function selectBullet(next){				
				if (bullets[current] != bullets[next]){
					$(options.navContainer + " a#" + options.bulletPrefix + bullets[current] + " img").animate({opacity: 0.5}, options.transitionTime);
					$(options.navContainer + " a#" + options.bulletPrefix + bullets[next] + " img").animate({opacity: 1}, options.transitionTime);
				}
			};
			
			function cue() {
				if ($("> *", obj).length < 2) return false;
				if (timer) clearTimeout(timer);
				timer = setTimeout(function() { transition((current + 1) % els.length | 0)} , options.pauseTime);
			};
			
			this.showItem = function(item) {
				if (timer) clearTimeout(timer);
				transition(item);
			};
			
			cue();
		}
		
		this.showItem = function(item) {
			transitionObject.showItem(item);
		};
		
		return this.each(function() {
			transitionObject = new Trans(this);
		});
	}
})(jQuery);
