var FlipObjects = Array();
var FlipCurrent = 0;
var FlipPlaying = true;
var FlipDisplayTime = 5;
var FlipFadeDuration = 0.6;
var FlipAppearDuration = 0.6;
var FlipAppearDelay		= 0.7;
var flipemPauseHTML	= '<img style="vertical-align:middle;" src="./images/pause.png" alt="Pause" \/>';
var flipemPlayHTML	= '<img style="vertical-align:middle;" src="./images/play.png" alt="Play" \/>';
var FlipAFadeActive = false;

FlipStart = function()
{
	FlipPlaying = true;
	FlipObjects = $$('.flipem-ojb');
	FlipCurrent = FlipObjects[0];
	FlipInterval = window.setInterval('FlipSter()', FlipDisplayTime*1000);
	$('flipem-control').update(flipemPlayHTML);
}

FlipNotStart = function()
{
	FlipPlaying = false;
	FlipObjects = $$('.flipem-ojb');
	FlipCurrent = FlipObjects[0];
	$('flipem-control').update(flipemPauseHTML);
}

FlipSter = function(force)
{	
	if (FlipAFadeActive == false)
	{
		FlipAFadeActive = true;
		Effect.Fade(FlipCurrent, {
			duration: FlipFadeDuration,
			queue: { position: 'end', scope: 'galleryPhotos', limit: 1 },
			afterFinish: function() {
				FlipCurrent.removeClassName('CurrentItem');
				if (force == 'prev' || force == 'previous')
				{
					FlipCurrent = FlipCurrent.previous();
					if (FlipCurrent == null)
					{
						FlipCurrent = FlipObjects[FlipObjects.length-1];
					}
				}
				else if (force != undefined)
				{
					FlipCurrent = force;
				}
				else
				{
					FlipCurrent = FlipCurrent.next();
					if (FlipCurrent == null)
					{
						FlipCurrent = FlipObjects[0];
					}
				}
				FlipCurrent.addClassName('CurrentItem');
				Effect.Appear(FlipCurrent,{
					queue: { position: 'end', scope: 'galleryPhotos', limit: 1 },
					duration: FlipAppearDuration,
					delay: FlipAppearDelay,
					afterFinish: function() { FlipAFadeActive = false; }
				});
			}
		});
	}
}

FlipTo = function(id, selector)
{
	flipemplay('pause');
	FlipCurrent = $$('.CurrentItem'); // Just to insure we are going to the correct one.
	FlipCurrent = FlipCurrent[0];
	id = FlipObjects[id]
	FlipSter(id);
}

flipemNext = function()
{
	flipemplay('pause');
	FlipSter();
	return false;
}

flipemPrev = function()
{
	flipemplay('pause');
	FlipSter('prev');
	return false;
}

flipemplay = function(force, noupdates)
{
	if (force == 'play' || (FlipPlaying == false && force != 'pause'))
	{
		FlipPlaying = true;
		FlipInterval = window.setInterval('FlipSter()', FlipDisplayTime*1000);
		if (noupdates != true)
		{
			$('flipem-control').update(flipemPlayHTML);
		}
	}
	else
	{
		FlipPlaying = false;
		if (window.FlipInterval != undefined)
		{
			clearInterval(FlipInterval);
		}
		if (noupdates != true)
		{
			$('flipem-control').update(flipemPauseHTML);
		}
	}
	return false;
}