(function ($) {
  $.fn.fadeTransition = function(options) {
    var options = $.extend({pauseTime: 2000, transitionTime: 1000,  pauseNavigation: false}, options);
       var transitionObject;
      
    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");
      $(obj).css("display", "block");
      $(els[current]).css("display", "block");
      
      function transition(next) {
        if (next<0) next = $("> *", obj).length -1;
        if (next>= $("> *", obj).length) next = 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);
	if (!options.pauseNavigation) {
          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) {
      options.pauseNavigation = true;
      transitionObject.showItem(item);
    };
    return this.each(function() {
      transitionObject = new Trans(this);
    });
    
  }
})(jQuery);

var page = {
   tr: null,
   init: function() {
        page.tr = $(".featured").fadeTransition({pauseTime: 20000, transitionTime: 1000, pauseNavigation: false});
   }
};

$(document).ready(page.init);    
