(function($){
	$.fn.goodRotator = function(options){
		var o = $.extend($.fn.goodRotator.options, options||{});
		this.each(function(){
			var cont = $('.pane-content',this).css('postion', 'relative');
			var es = cont.children().each(function(i){
				// assing known z-indexes
				$(this).css({
					position: 'absolute', 
					top: parseInt($(this).parents('.pane-rotator').css('padding-top')) > 0 ? $(this).parents('.pane-rotator').css('padding-top') : 0 , 
					left: 0,
					'z-index': i+1
				});

				if((i+1) == cont.children().length){
					$(this).hide();
				}
			});
			setTimeout(function(){
				setInterval(function(){
					var e = $('.pane-rotator .pane-content').children();
					if(typeof o.callback == 'function' || o.callback == null){
						e.toggle(o.speed, function(){
							if(o.callback != null){
								o.callback(this);
							}
						});
					} else if(typeof o.callback == 'object'){
						var cb = $.extend({'beforeToggle': null, 'afterToggle': null}, o.callback);
						if(cb.beforeToggle != null){
							cb.beforeToggle(e);
						}
						
						e.toggle(o.speed, function(){
							if(cb.afterToggle != null){
								cb.afterToggle(this);
							}
						});
					}
					
				}, o.interval);
				clearTimeout(this);
			}, o.delay);
		});
	};
	
	$.fn.goodRotator.options = {
			delay: 2500,
			interval: 6500,
			speed: 1000,
			callback: null
	}
})(jQuery);