
var Slideshow =
{

	slides: [],
	current_index: 2,


	initialize: function()
	{

		// Let's loop through all the slides.
		for ( var i = 0; i < 16; i++ )
		{

			// Create a div for this slide.
			Slideshow.slides[i] = $$( 'slideshow' ).create( 'div', { id: ('slide' + i), className: 'slide' }, true, '<img src="' + SITE_URL + '/img/slide-' + (i + 1) + '.jpg" />' );
			var slide = $( Slideshow.slides[i] );

			slide.setStyle( 'opacity', 0.01 );

		}

		// Let's set up the first slide.
		Slideshow.setupSlide( Slideshow.current_index );

	},


	setupSlide: function( slide_id )
	{

		var slide = Slideshow.slides[slide_id];

		Slideshow.slides[0].setStyle( 'z-index', 4 );
		Slideshow.slides[1].setStyle( 'opacity', 0.01 );
		Slideshow.slides[1].setStyle( 'z-index', 5 );

		var anim_sequence = new Legato_Animation_Sequence();

		// Fade in.
		var anim = new Legato_Animation( Slideshow.slides[1], 500 );
		anim.controller.opacity.to = 1;
		anim.controller.delay = 2000;
		anim.onFinish = function()
		{
			Slideshow.slides[0].setStyle( 'z-index', 1 );
			Slideshow.slides[1].setStyle( 'z-index', 4 );
			slide.setStyle( 'opacity', 0.01 );
			slide.setStyle( 'z-index', 5 );
		};

		anim_sequence.addAnimation( anim );

		// Show message.
		var anim = new Legato_Animation( slide, 500 );
		anim.controller.opacity.to = 1;
		anim.controller.delay = 1000;
		anim.onFinish = function()
		{
			Slideshow.slides[1].setStyle( 'z-index', 0 );
			slide.setStyle( 'z-index', 4 );
			Slideshow.slides[15].setStyle( 'opacity', 0.01 );
			Slideshow.slides[15].setStyle( 'z-index', 5 );
		};

		anim_sequence.addAnimation( anim );

		// GP Logo.
		var anim = new Legato_Animation( Slideshow.slides[15], 500 );
		anim.controller.opacity.to = 1;
		anim.controller.delay = 2000;
		anim.onFinish = function()
		{
			slide.setStyle( 'z-index', 1 );
			Slideshow.slides[15].setStyle( 'z-index', 4 );
			Slideshow.slides[0].setStyle( 'opacity', 0.01 );
			Slideshow.slides[0].setStyle( 'z-index', 5 );
		};

		anim_sequence.addAnimation( anim );

		// Fade out.
		var anim = new Legato_Animation( Slideshow.slides[0], 500 );
		anim.controller.opacity.to = 1;
		anim.controller.delay = 2000;
		anim.onFinish = function()
		{
			Slideshow.slides[15].setStyle( 'z-index', 1 );
			Slideshow.nextSlide();
		};

		anim_sequence.addAnimation( anim );

		// Start the sequence.
		anim_sequence.start();

	},


	nextSlide: function()
	{

		// Get the next slide's ID.
		var next_slide = Slideshow.current_index + 1;

		// If this is the last slide in the slideshow, start over again.
		if ( next_slide >= (Slideshow.slides.length - 1) )
			next_slide = 2;

		// Set the current index to the next slide's ID.
		Slideshow.current_index = next_slide;

		// Now set up the slide to slide in.
		Slideshow.setupSlide( next_slide );

	}

};

Legato_Events_Handler.DOMReady( function(){ Slideshow.initialize(); } );
