/* Things to touch */

var	flipemTotal	= 0; // This should be done better - like automatically - but it's not for now.
var displaytime	= 5.5; // Time in seconds before switching
var startRotating	= true; // false if not starting automatically 
var useControls	= true; // false if not using controls
var currentClass	= 'currentLink';
var fadeDuration	= 0.6;	// in seconds
var appearDuration	= 0.6;	// in seconds
var appearDelay		= 0.7;	// in seconds
var changeToLink	= true;
var flipemPauseHTML	= '<img style="vertical-align:middle;border:0;" src="./images/pause.png" alt="Pause" />';
var flipemPlayHTML	= '<img style="vertical-align:middle;border:0;" src="./images/play.png" alt="Play" />';
var flipemNoLoadwait	= false; // load images if not loaded.
/* Things not to touch */
var flipemCurrent	= 1;
var flipemNumber	= 1;
var flipemPause	= false;
var flipemLoadedIm	= Array();
var olddisplaytime	= displaytime;
flipemSetNum = function(setflipemNumber)
{
	flipemTotal	= setflipemNumber;
}

flipemstop	= function()
{
	flipemPause	= true;
	flipemCurrent	= 1;
	flipemNumber	= 1;
}

flipemstart = function()
{
	flipemPause	= false;
	var flipemElements = $$('.flipem');
	if(flipemElements != '')
	{
		new PeriodicalExecuter(function(pe) {
			if(flipemPause == true)
			{
				pe.stop();
			}
			else if(flipemLoadedIm[flipemCurrent+1] == true || flipemNoLoadwait == true)
			{
				displaytime = olddisplaytime;
				flipemauto();
			}
			else
			{
				displaytime = 1;
			}
		}, displaytime);
	}
}

flipemNext	= function()
{
	flipemPause = true;
	flipemplay('pause');
	if(flipemCurrent >= flipemTotal)
	{
		flipemNumber = 1;
	}
	else
	{
		flipemNumber = flipemCurrent + 1;
	}
	if(flipemNumber != flipemCurrent)
	{
		flipemprocess(flipemNumber, flipemCurrent);
		flipemCurrent = flipemNumber;
	}
	return false;
}

flipemPrev	= function()
{
	flipemPause = true;
	flipemplay('pause');
	if(flipemCurrent == 1)
	{
		flipemNumber = flipemTotal;
	}
	else
	{
		flipemNumber = flipemCurrent - 1;
	}
	if(flipemNumber != flipemCurrent)
	{
		flipemprocess(flipemNumber, flipemCurrent);
		flipemCurrent = flipemNumber;
	}
	return false;
}

flipemnotstart = function()
{
	flipemPause	= true;
	
	$('flipem-control').update(flipemPlayHTML);
}

flipemLoaded = function(number)
{
	flipemLoadedIm[number]	= true;
}

flipemprocess = function(next, current)
{
	Effect.Fade('flipem-'+current, { duration:  fadeDuration });
	Effect.Appear('flipem-'+next, { duration: appearDuration, delay: appearDelay });
	if(useControls == true)
	{
		$('flipem-control-'+next).addClassName(currentClass);
		$('flipem-control-'+current).removeClassName(currentClass);
	}
}
flipem = function(flipemNumber, link)
{
	if(flipemNumber != flipemCurrent)
	{
		flipemprocess(flipemNumber, flipemCurrent);
		flipemCurrent = flipemNumber;
		flipemPause = true;
		if(useControls == true)
		{
			$('flipem-control').update(flipemPlayHTML);
		}
		return false;
	}
	else if(flipemNumber == flipemCurrent && changeToLink == true)
	{
		return true;
	}
}
flipemplay = function(force)
{
	if (force == 'play')
	{
		flipemPause = true;
	}
	else if(force == 'pause')
	{
		flipemPause = false;
	}
	if (flipemPause == true)
	{
		flipemPause = false;
		flipemstart();
		if(useControls == true)
		{
			$('flipem-control').update(flipemPauseHTML);
		}
	}
	else if (flipemPause == false)
	{
		flipemPause = true;
		if(useControls == true)
		{
			$('flipem-control').update(flipemPlayHTML);
		}
	}
}
flipemauto = function()
{
	if(flipemPause != true)
	{
		if(flipemCurrent >= flipemTotal)
		{
			flipemNumber = 1;
		}
		else
		{
			flipemNumber = flipemCurrent + 1;
		}
		if(flipemNumber != flipemCurrent)
		{
			flipemprocess(flipemNumber, flipemCurrent);
			flipemCurrent = flipemNumber;
		}
	}
}

if(startRotating == true)
{
	Event.observe(window, 'load', flipemstart, false);
}
else
{
	Event.observe(window, 'load', flipemnotstart, false);
}
