// Inicializace.
function init_rotator() {

  // Existuje element?
  if (!$('#rotator').length) {

    // Pokud neexistuje, končíme.
    return;
  }

  // Rychlost otáčení.
  var speed = 2000;

  // Stav pozastavení.
  var pause = false;

  // Funkce pro otáčení.
  function rotate(element) {

    // Zastavíme, jestliže uživatel komunikoval.
    if (pause) {
      return;
    }

    // Vybereme buď následující, nebo první element li.
    var $next_li = $(element).next('li').length ?
      $(element).next('li') :
      $('#rotator li:first');

    // Vybereme buď následující, nebo první řídicí odkaz.
    var $next_a =
      $('#rotator_controls a.current').parent('li').next('li').length ?
      $('#rotator_controls a.current').parent('li').next('li').find('a') :
      $('#rotator_controls a:first');

    // Zahájíme animaci.
    $('#rotator_controls a.current').removeClass('current');
    $next_a.addClass('current');

    // Pokračujeme.
    function doIt() {
      rotate($next_li);
    }

    // Schováme element li.
    $(element).fadeOut(speed);

    // Zibrazíme následující element li.
    $($next_li).fadeIn(speed, function() {

      // Mírná prodleva.
      setTimeout(doIt, speed);
    });
  }

  // Ovládacím prvkům přidáme obsluhující funkce události click.
  $('#rotator_controls a').click(function() {

    // Změníme text tlačítka.
    $('#rotator_play_pause').html('Spustit');

    // Zobrazíme cílový element a ostatní elementy li schováme.
    $($(this).attr('href')).show().siblings('li').hide();

    // Přidáme třídu current a ze všech ostatních ji odstraníme.
    $(this).addClass('current').parent('li').siblings('li')
      .find('a').removeClass('current');

    // Pozastavíme animaci.
    pause = true;

    // Žádný přechod.
    this.blur();
    return false;
  });

  // Pozastavíme nebo spustíme animaci.
  $('#rotator_play_pause').click(function() {

    // Co toto tlačítko říká?
    if ($(this).html() === 'Pozastavit') {

      // Zastavíme otáčení.
      pause = true;

      // Změníme text.
      $(this).html('Spustit');

    } else {

      // Odstraníme třídu pause.
      pause = false;

      // Zahájíme otáčení.
      rotate('#rotator li:visible:first');

      // Změníme text.
      $(this).html('Pozastavit');
    }

    // Žádný přechod.
    this.blur();
    return false;
  });

  // Schováme vše kromě prvního elementu li.
  $('#rotator li:first').siblings('li').hide();

  // Čekáme na načtení stránky.
  $(window).load(function() {

    // Zahájíme otáčení.
    rotate($('#rotator li:visible:first'));
  });
}

// Uvedeme věci do pohybu.
$(document).ready(function() {
  init_rotator();
});
