/*
 * file: diaporama.js
 * -
 * What: Modulex diaporama handler
 * When: On page load
 * Why: Initiate Modulex diaporama
 */

/* Global variables */
var gDiaporamaConfig = {
	speed: 0.4,
	delay: 7,
	images: [
		"img/content/02_main/02.jpg",
		"img/content/02_main/03.jpg",
		"img/content/02_main/04.jpg",
		"img/content/02_main/01.jpg"
	]
};

/* Initialization */
Event.observe(window, "load", function() {

		/* Initiate Diaporama */
		new Diaporama.load();
		
}, false);

/*
 * object: Promo
 * -
 * What: 
 * When: 
 * Why: 
 */
 
var Diaporama = {

	/*
	 * function: Diaporama.load()
	 * -
	 * What: 
	 * When: 
	 * Why: 
	 */
	 
	load: function() {

		/* Preload Images */
		var loadedElements = 0;
		for(var i=0;i<gDiaporamaConfig.images.length;i++) {
			
			var preloadElement = Builder.node('img', {src: gDiaporamaConfig.images[i]});
			$(preloadElement).hide();
			document.body.appendChild(preloadElement);
			
			$(preloadElement).observe('load', function(event) {
				
				loadedElements++;
				
			}, false);
		}
		
		/* Diaporama */
		var imageElement = $('centralImage');
		var i = 0;
		
		var checkPreloaded = setInterval( function() {
			if(loadedElements == gDiaporamaConfig.images.length) {
			
			clearInterval(checkPreloaded);
		
		var diaporamaInterval = setInterval( function() {
		
			new Effect.Opacity(imageElement, {
				to: 0.0,
				from: 1.0,
				duration: gDiaporamaConfig.speed,
				queue: 'front',
				afterFinish: function(effect) {
					if (i == gDiaporamaConfig.images.length) {
						effect.element.src = gDiaporamaConfig.images[0];
						i = 0;
					} else {
						effect.element.src = gDiaporamaConfig.images[i++];
					}
		 
		   			new Effect.Opacity(effect.element, {
		   				to: 1.0,
		   				from: 0.0,
		   				duration: gDiaporamaConfig.speed,
		   				queue: 'end'
		   			});
				}
			});
			
		}, (gDiaporamaConfig.delay)*1000);
		
			}
		}, 100);
		
		return true;
	}
}
