(function ($) {
  $.fn.fadeTransition = function(options) {
    var options = $.extend({pauseTime: 5000, transitionTime: 2500}, options);
    
    Trans = function(obj) {
      var timer = null;
      var current = 0;
      var els = $('> *', obj).css('display', 'none').css('left', '0').css('top', '0').css('position', 'absolute');
      $(obj).css('position', 'relative');
      $(els[current]).css('display', 'block');
      
      function transition() {
        var next = (current + 1) % els.length | 0;
        $(els[current]).fadeOut(options.transitionTime);
        $(els[next]).fadeIn(options.transitionTime);
        current = next;
        cue();
      };
      
      function cue() {
        if ($('> *', obj).length < 2) return false;
        if (timer) clearTimeout(timer);
        timer = setTimeout(transition, options.pauseTime);
      };
  
      cue();
    }
	
    return this.each(function() {
      var t = new Trans(this);
    });
  }
})(jQuery);


