var active = 1;

var imagefadertimeout = 6000;

var carrouselfader = false;

function switchimagecarrousel(n)
{
  clearTimeout(imagecarrouseltimer);
  if (carrouselfader) {
    carrouselfader.cancel();
  }
  for (var i = 1; i <= amount; i++) {
    $('imagecarrouselimage' + i).setOpacity(1);
    if (n == i) {
      $('imagecarrouselimage' + i).show();
      $('imagecarrouselmenu' + i).addClassName('active-item');
    } 
    else {
      $('imagecarrouselimage' + i).hide();
      $('imagecarrouselmenu' + i).removeClassName('active-item');
    }
    active = n;
  }
  imagecarrouseltimer = setTimeout('switchnextimagecarrousel()', imagefadertimeout);
}

function fadeimagecarrousel(n) {
  clearTimeout(imagecarrouseltimer);
  
  $('imagecarrouselmenu' + active).removeClassName('active-item');
  $('imagecarrouselmenu' + n).addClassName('active-item');
  if (active == n) {
    imagecarrouseltimer = setTimeout('switchnextimagecarrousel()', imagefadertimeout);
  }
  else {
    if (active > n) {
      $('imagecarrouselimage' + n).show();

      carrouselfader = new Effect.Parallel([
        new Effect.Fade('imagecarrouselimage' + active, { sync: true })
      ], {
        afterFinish: function() {
          active = n;
          imagecarrouseltimer = setTimeout('switchnextimagecarrousel()', imagefadertimeout);
          carrouselfader = false;
        }
      });
    }
    else {
      carrouselfader = new Effect.Parallel([
        new Effect.Appear('imagecarrouselimage' + n, { sync: true })
      ], {
        afterFinish: function() {
          $('imagecarrouselimage' + active).hide();

          active = n;
          imagecarrouseltimer = setTimeout('switchnextimagecarrousel()', imagefadertimeout);
          carrouselfader = false;
        }
      });
    }
  }
}

function switchnextimagecarrousel()
{
  var n = active;
  n++;
  n = ((n - 1) % amount) + 1;
  fadeimagecarrousel(n);
}

var imagecarrouseltimer = setTimeout('switchnextimagecarrousel()', imagefadertimeout);
