var active = 0;

var imagefadertimeout = 3000;

var carrouselfader = false;

function switchcarrousel(n)
{
  clearTimeout(carrouseltimer);
  if (carrouselfader) {
    carrouselfader.cancel();
  }
  for (var i = 0; i < 3; i++) {
    $('carrouselimage' + i).setOpacity(1);
    $('carrouseltext' + i).setOpacity(1);
    if (n == i) {
      $('carrouselimage' + i).show();
      $('carrouseltext' + i).show();
      $('carrouselmenu' + i).addClassName('active-item');
    } 
    else {
      $('carrouselimage' + i).hide();
      $('carrouseltext' + i).hide();
      $('carrouselmenu' + i).removeClassName('active-item');
    }
    active = n;
  }
  carrouseltimer = setTimeout('switchnextcarrousel()', imagefadertimeout)
}

function fadecarrousel(n) {
  clearTimeout(carrouseltimer);
  
  $('carrouselmenu' + active).removeClassName('active-item');
  $('carrouselmenu' + n).addClassName('active-item');
  if (active == n) {
    carrouseltimer = setTimeout('switchnextcarrousel()', imagefadertimeout)
  }
  else {
    if (active > n) {
      $('carrouselimage' + n).show();
      //$('carrouseltext' + n).show();
      carrouselfader = new Effect.Parallel([
        new Effect.Fade('carrouselimage' + active, { sync: true }),
        new Effect.Fade('carrouseltext' + active, { sync: true }),
        new Effect.Appear('carrouseltext' + n, { sync: true })
      ], {
        afterFinish: function() {
          active = n;
          carrouseltimer = setTimeout('switchnextcarrousel()', imagefadertimeout)
          carrouselfader = false;
        }
      });
    }
    else {
      carrouselfader = new Effect.Parallel([
        new Effect.Appear('carrouselimage' + n, { sync: true }),
        new Effect.Appear('carrouseltext' + n, { sync: true }),
        new Effect.Fade('carrouseltext' + active, { sync: true })
      ], {
        afterFinish: function() {
          $('carrouselimage' + active).hide();
          //$('carrouseltext' + active).hide();
          active = n;
          carrouseltimer = setTimeout('switchnextcarrousel()', imagefadertimeout)
          carrouselfader = false;
        }
      });
    }
  }
}

function switchnextcarrousel()
{
  var n = active;
  n++;
  n = n % 3;
  fadecarrousel(n);
}

var carrouseltimer = setTimeout('switchnextcarrousel()', 3000);
