jQuery.fn.rotator = function(options) {

  var el = this;

  settings = jQuery.extend({
    // control options
    previous_button: '#previous-button',
    next_button:     '#next-button',
    youtube_detect:  true,
    interval:        8000,

    // jquery.ui.tabs setting defaults
    fx:            { opacity: 'toggle' },
    navClass:      'ui-tabs-nav',
    selectedClass: 'ui-tabs-selected',
    unselectClass: 'ui-tabs-unselect',
    disabledClass: 'ui-tabs-disabled',
    panelClass:    'ui-tabs-panel',
    hideClass:     'ui-tabs-hide',
    loadingClass:  'ui-tabs-loading'
  }, options);

  $( el ).tabs(
    defaults = {
      fx:            settings.fx,
      navClass:      settings.navClass,
      selectedClass: settings.selectedClass,
      unselectClass: settings.unselectClass,
      disabledClass: settings.disabledClass,
      panelClass:    settings.panelClass,
      hideClass:     settings.hideClass,
      loadingClass:  settings.loadingClass
    }
  );

  var last_tab_index = $(el).tabs('length') -1;

  if ( settings.youtube_detect ){

    if( $('.' + settings.panelClass + ' object').length ){
      // youtube content found, do not enable rotation
    } else {
      // no youtube content found, enable rotations for every 8000ms
      $( el ).tabs('rotate', settings.interval, false );
    }

  } else {
    $( el ).tabs('rotate', settings.interval, false );
  }

  // attach event to back button to go back one pane and turn off animations
  $( settings.previous_button ).click(function() {
    var tabs = $(el);

    var current_tab = tabs.data('selected.tabs');
    current_tab--;
    if (current_tab <= -1) current_tab = last_tab_index;

    tabs.tabs('select', current_tab);
    tabs.tabs('rotate', 0, false );
    return false;
  });

  // attach event to next button to go forward one pane and turn off animations
  $( settings.next_button ).click(function() {
    var tabs = $(el);

    var current_tab = tabs.data('selected.tabs');
    current_tab++;
    if ( current_tab > last_tab_index ) current_tab = 0;

    tabs.tabs('select', current_tab);
    tabs.tabs('rotate', 0, false );
    return false;
  });

  $( '.' + settings.panelClass ).click(function(){
    $(el).tabs('rotate', 0, false );
    //return false;
  });

}
