function rnd( a, b ) 
{
	return a + Math.floor( Math.random() * ( b - a + 1 ) );
}

var imageArray = new Array(); 
var displayTime = 5000;

var currentFrame1 = 1;
var currentFrame2 = 2;
var currentFrame3 = 3;

function initializeImageArray()
{
	//console.debug( "Starting initializeImageArray" );

	var image1 = new Image;
	image1.src = "photos/main-collage1.jpg";
	imageArray[1] = image1; 
	var image2 = new Image;
	image2.src = "photos/main-collage2.jpg";
	imageArray[2] = image2; 
	var image3 = new Image;
	image3.src = "photos/main-collage3.jpg";
	imageArray[3] = image3; 
	var image4 = new Image;
	image4.src = "photos/main-collage4.jpg";
	imageArray[4] = image4; 
	//var image5 = new Image;
	//image5.src = "photos/p5.jpg";
	//imageArray[5] = image5; 
}

function cycleImage1()
{
	//console.debug( "Starting cycleImage1" );
	//console.debug( "currentFrame1: " + currentFrame1 );

	var img = $('photoImage1');

	img.src = '';

	if( currentFrame1 < ( imageArray.length - 1 ) ) 
	{
		currentFrame1++;
	}
	else 
	{
		currentFrame1 = 1;
	}

	//console.debug( "currentFrame1: " + currentFrame1 );

	img.src = imageArray[ currentFrame1 ].src;

	//console.debug( "Image source: " + img.src );

	displayNextImage1();
}

function cycleImage2()
{
	//console.debug( "Starting cycleImage2" );
	//console.debug( "currentFrame2: " + currentFrame2 );

	var img = $('photoImage2');

	img.src = '';

	if( currentFrame2 < ( imageArray.length - 1 ) ) 
	{
		currentFrame2++;
	}
	else 
	{
		currentFrame2 = 1;
	}

	//console.debug( "currentFrame2: " + currentFrame2 );

	img.src = imageArray[ currentFrame2 ].src;

	//console.debug( "Image source: " + img.src );

	displayNextImage2();
}

function cycleImage3()
{
	//console.debug( "Starting cycleImage3" );
	//console.debug( "currentFrame3: " + currentFrame3 );

	var img = $('photoImage3');

	img.src = '';

	if( currentFrame3 < ( imageArray.length - 1 ) ) 
	{
		currentFrame3++;
	}
	else 
	{
		currentFrame3 = 1;
	}

	//console.debug( "currentFrame3: " + currentFrame3 );

	img.src = imageArray[ currentFrame3 ].src;

	//console.debug( "Image source: " + img.src );

	displayNextImage3();
}

function logBeginEffect()
{
	//console.debug( "Beginning effect" );
}

function displayNextImage1()
{
	doAppear1();
	window.setTimeout( "doFade1()", displayTime );
}

function displayNextImage2()
{
	doAppear2();
	window.setTimeout( "doFade2()", displayTime );
}

function displayNextImage3()
{
	doAppear3();
	window.setTimeout( "doFade3()", displayTime );
}

function doFade1()
{
	new Effect.Fade
	(
		'imageFrame1', 
		{
			queue: 
			{ 
				position: 'end', 
				scope: 'scope1'
			},
			duration: .75,
			afterFinish: cycleImage1
		} 
	);
}

function doFade2()
{
	new Effect.Fade
	(
		'imageFrame2', 
		{
			queue: 
			{ 
				position: 'end', 
				scope: 'scope2'
			},
			duration: .75,
			afterFinish: cycleImage2
		} 
	);
}

function doFade3()
{
	new Effect.Fade
	(
		'imageFrame3', 
		{
			queue: 
			{ 
				position: 'end', 
				scope: 'scope3'
			},
			duration: .75,
			afterFinish: cycleImage3
		} 
	);
}

function doAppear1()
{
	new Effect.Appear
	(
		'imageFrame1', 
		{
			queue: 
			{ 
				position: 'front', 
				scope: 'scope1' 
			},
			duration: .75,
			beforeStart: logBeginEffect
		} 
	);
}

function doAppear2()
{
	new Effect.Appear
	(
		'imageFrame2', 
		{
			queue: 
			{ 
				position: 'front', 
				scope: 'scope2' 
			},
			duration: .75,
			beforeStart: logBeginEffect
		} 
	);
}

function doAppear3()
{
	new Effect.Appear
	(
		'imageFrame3', 
		{
			queue: 
			{ 
				position: 'front', 
				scope: 'scope3' 
			},
			duration: .75,
			beforeStart: logBeginEffect
		} 
	);
}

function startSlideShow()
{
	initializeImageArray();

	//Element.hide('imageFrame1');
	//Element.hide('imageFrame2');
	//Element.hide('imageFrame3');

	doFade1();
	//doFade2();
	//doFade3();
}
