/**
* @author chris.smith@thboom.com
* jquery plugin that displays child elements in a rotation with fade effect
*/

var hiddenDivs = [];

jQuery.fn.fadeRotate = function(options) {
  settings = jQuery.extend( {
     hold : 3000,
     fade : 3000
  }, options);

  start(settings, this);

  function start(settings, container) {

      var divs = container.children();

      while (divs.length > 1) {
          var removedDiv = $(divs[divs.length - 1]).remove();
          hiddenDivs.push(removedDiv);
          divs = container.children();
      }

      setTimeout( function() {
          transition(settings, container)
      }, settings.hold);

  };

  function transition(settings, container) {

      $(container.children()[0]).fadeOut(settings.fade);

      setTimeout( function() {

           hiddenDivs.unshift(container.children()[0]);
           $(container.children()[0]).remove();

             container.prepend(hiddenDivs.pop());

              $(container.children()[0]).hide();
             $(container.children()[0]).fadeIn(settings.fade);

              //Repeat
              setTimeout( function() {
                 transition(settings, container)
              }, settings.hold + settings.fade);

       }, settings.fade);


  }
}
