// Copyright (c) 2007 Joel Arvidsson (http://above.se)

var above = {};

above.slideshow = Class.create();

above.slideshow.prototype = {
	element:		null, 
	position:		0, 
	images:			null, 
	firstImage:		null, 
	secondImage:	null,
	interval:		null,
	
	initialize:		function(element, images) {
		this.element = $(element);
		this.firstImage = $(this.element.getElementsByTagName('img').item(0));
		this.secondImage = $(this.firstImage.cloneNode(false));
		
		Element.addClassName(this.firstImage, 'first-image');
		Element.addClassName(this.secondImage, 'second-image');
		
		this.element.insertBefore(this.secondImage, this.firstImage);
		this.images = images;
		for(var i = 0; i < this.images.length; i++) {
			this.preload(this.images[i]);
		}
		this.timer = setInterval(this.next.bind(this), 8000);
	},
	
	preload: function(imageUrl) {
		var img = new Image();
		img.src = imageUrl;
	}, 
	
	next: function() {
		this.position++;
		if(this.position == this.images.length) {
			this.position = 0;
		}
		this.firstImage.src = this.secondImage.src;
		Element.setOpacity(this.firstImage, 1.0);
		setTimeout(this.fadeNew.bind(this), 10);
	}, 
	
	fadeNew: function() {
		var effect = new Effect.Opacity(this.firstImage, {duration:3.0, from:1.0, to:0.0});
		this.secondImage.src = this.images[this.position];
	}
}

var slideshow;

Event.observe(window, 'load', function () {
	slideshow = new above.slideshow(
		'introduction-image', 
		new Array(
			//'images/header/top/01.jpg', 
			'/images/header/top/02.jpg', 
			'/images/header/top/03.jpg', 
			'/images/header/top/04.jpg', 
			'/images/header/top/05.jpg', 
			'/images/header/top/06.jpg', 
			'/images/header/top/07.jpg', 
			'/images/header/top/08.jpg', 
			'/images/header/top/09.jpg', 
			'/images/header/top/10.jpg', 
			'/images/header/top/11.jpg', 
			'/images/header/top/12.jpg', 
			'/images/header/top/13.jpg', 
			'/images/header/top/14.jpg', 
			'/images/header/top/15.jpg', 
			'/images/header/top/16.jpg'
		)
	);
}, false);