window.addEvent('domready', function()
{
	var a_images = new Array();
	
	// Get image URLs
	$('images_list').getElements('li').getElement('img').each(function(o_image)
	{
		a_images.push(o_image);
	});
	
	// Start slideshow
	var i_totalImages = a_images.length;

	if(i_totalImages > 1)
	{				
		// Hide second div by default		
		var o_visible = $('slideshow_image_1');
		var i_interval = 5000;
		var i_imageIterator = 0;
	
		// Initiate first and second image
		$('slideshow_image_1').getElement('img').set('src', a_images[0].get('src'));
		$('slideshow_image_2').setStyle('opacity', '0');
	
		// Periodical Tween
		var timerSlideshow = function()
		{		
			// Reset the imageIterator to minus 1. The next iteration will then get the 0 image from the array
			if(getImage(a_images, i_imageIterator + 1) == false)
			{
				i_imageIterator = -1;
			}
			
			// First div visible
			if(o_visible == $('slideshow_image_1'))
			{								
				// Set image src
				$('slideshow_image_2').getElement('img').set('src', a_images[i_imageIterator + 1].get('src'));
					
				// create tweens
				var o_Tween1 = new Fx.Tween($('slideshow_image_1'), {duration: 2000});
				var o_Tween2 = new Fx.Tween($('slideshow_image_2'), {duration: 2000});
				
				// Start tweens
				o_Tween1.start('opacity', 1, 0);
				o_Tween2.start('opacity', 0, 1);
					
				// Reset visible div
				o_visible = $('slideshow_image_2');
			}
			else // Second div visible. See comments above, it's the same - only in reverse
			{				
				$('slideshow_image_1').getElement('img').set('src', a_images[i_imageIterator + 1].get('src'));
												
				var o_Tween1 = new Fx.Tween($('slideshow_image_1'), {duration: 2000});
				var o_Tween2 = new Fx.Tween($('slideshow_image_2'), {duration: 2000});
				
				o_Tween1.start('opacity', 0, 1);
				o_Tween2.start('opacity', 1, 0);
					
				o_visible = $('slideshow_image_1');
			}	
			i_imageIterator++;
		};
		// Periodical function from mootools
		timerSlideshow.periodical(i_interval);

	}
	
	// Returns true if the array index is not null
	function getImage(a_images, iterator)
	{
		if(a_images[iterator] != null)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
});
