init_slide();
etape1();

// toutes les miniatures sont déselectionnées
function etape0()
{
	unSelect();
	etape1();
}

// apparition de l'image
function etape1()
{
	stop = 0;
	i = (i+1 < j) ? i+1 : 0;
	min_div = "min_image_"+i;
	text_div = "texte_"+i;
	current_div = tab_div[i];
	t_effet = new Array();
	t_effet[0] = new Effect.Opacity(min_div, {duration:0.3, from:0.7, to:1});
	t_effet[1] = new Effect.Appear(current_div, {duration:0.3});
	t_effet[2] = new Effect.Appear(text_div, {duration:0.3});
	new Effect.Parallel(t_effet,{duration:0.3, afterFinish:etape2});
}
// l'image est statique
function etape2()
{
	stop = 1;
	duree = setTimeout("etape3()",(time*1000));
}
// disparition de l'image
function etape3()
{
	stop = 0;
	t_effet = new Array();
	t_effet[0] = new Effect.Opacity(min_div, {duration:0.3, from:1, to:0.7});
	t_effet[1] = new Effect.Fade(current_div, {duration:0.3});
	t_effet[2] = new Effect.Fade(text_div, {duration:0.3});
	new Effect.Parallel(t_effet,{duration:0.3, afterFinish:etape1});
}

function minMouseOver(indice)
{
	if (stop == 1)
	{
		// stoppe le slideshow
		if (pauseSlide == 0)
		{
			bt_play();
		}
		
		// vérifie sur quelle image on se trouve, et quel est son état
		if ((indice != i) || ((indice == i) && (stop == 0)))
		{
			stop = 0;
			// toutes les miniatures sont déselectionnées
			unSelect();
			// l'image en cours disparait
			t_effet = new Array();
			t_effet[0] = new Effect.Fade(current_div, {duration:0.3});
			t_effet[1] = new Effect.Fade(text_div, {duration:0});
			new Effect.Parallel(t_effet,{duration:0.3});
			// on change d'image
			i = indice;
			changePicture();
		}
	}
}

function bt_pause()
{
	pauseSlide = 0;
	etape2();
	new Effect.Fade('bt_pause', {queue:'front',duration:0.3});
	new Effect.Appear('bt_play', {queue:'end',duration:0.3});
}

function bt_play()
{
	pauseSlide = 1;
	clearTimeout(duree);
	new Effect.Fade('bt_play', {queue:'front',duration:0.3});
	new Effect.Appear('bt_pause', {queue:'end',duration:0.3});
}

function nextSlide()
{
	// stoppe le slideshow
	if (pauseSlide == 0)
	{
		bt_play();
	}
	slide_state = 1;
	
	// toutes les miniatures sont déselectionnées
	unSelect();
	// l'image en cours disparait
	t_effet = new Array();
	t_effet[0] = new Effect.Fade(current_div, {duration:0.3});
	t_effet[1] = new Effect.Fade(text_div, {duration:0});
	new Effect.Parallel(t_effet,{duration:0.3});
	// on change d'image
	nextPicture();
}

function previousSlide()
{
	// stoppe le slideshow
	if (pauseSlide == 0)
	{
		bt_play();
	}
	slide_state = 1;

	// toutes les miniatures sont déselectionnées
	unSelect();
	// l'image en cours disparait
	t_effet = new Array();
	t_effet[0] = new Effect.Fade(current_div, {duration:0.3});
	t_effet[1] = new Effect.Fade(text_div, {duration:0});
	new Effect.Parallel(t_effet,{duration:0.3});
	// on change d'image
	previousPicture();
}

function init_slide()
{
	unSelect();
	new Effect.Appear('bt_play', {duration:0});
}

function unSelect()
{
	var h = 0;
	while (h < j)
	{
		min_div = "min_image_"+h;
		new Effect.Opacity(min_div, {duration:0, from:0.7, to:0.7});
		h = h+1;
	}
}

function nextPicture()
{
	i = (i+1 < j) ? i+1 : 0;
	changePicture();
}

function previousPicture()
{
	i = (i-1 > -1) ? i-1 : j-1;
	changePicture();
}

function changePicture()
{
	current_div = tab_div[i];
	min_div = "min_image_"+i;
	text_div = "texte_"+i;
	t_effet = new Array();
	t_effet[0] = new Effect.Opacity(min_div, {duration:0.3, from:0.7, to:1});
	t_effet[1] = new Effect.Appear(current_div, {duration:0.3});
	t_effet[2] = new Effect.Appear(text_div, {duration:0.3});
	new Effect.Parallel(t_effet,{duration:0.3, afterFinish:endMove});
	
	function endMove()
	{
		slide_state = 0;
		stop = 1;
	}
}
