var FrontpageSlideshow = new Class({

	initialize: function (fadingDuration, pauseDuration) {
		this.fadingDuration = fadingDuration;
		this.pauseDuration = pauseDuration;		
		this.thumbnails = $$('.frontpageImageWrapper img');
		this.thumbnailsLength = this.thumbnails.length;
		this.maxThumbnails = Math.ceil(this.thumbnailsLength / 3);
		this.availableIndexes = new Array();
		this.previousIndexes = new Array();
		
		if (this.thumbnailsLength > 1) {
			//Set available indexes
			for (var i = 0; i < this.thumbnailsLength; i++) {
				this.availableIndexes.push(i);
			}
			
			this.showThumbnails.periodical(this.fadingDuration + this.pauseDuration, this);

			this.showThumbnails();
		}
	},
	
	showThumbnails: function () {
		var indexes = new Array();
		var index;
		var image;

		for (var i = 0; i < this.maxThumbnails; i++) {
			index = this.availableIndexes.getRandom();

			this.availableIndexes.erase(index);			

			indexes.push(index);
		}

		if (this.previousIndexes.length) {
			this.availableIndexes = this.availableIndexes.concat(this.previousIndexes);
		}

		this.previousIndexes = indexes;

		for (var i = 0; i < indexes.length; i++) {
			index = indexes[i];
			image = this.thumbnails[index];

			image.set('tween', {duration: this.fadingDuration});
			image.fade('hide');
			image.setStyle('display', 'inline');
			image.fade(1);

			this.hideThumbnail.delay(this.pauseDuration, this, image);
		}
	},
	
	hideThumbnail: function (image) {
		if (image) {
			image.fade(0);
		}
	}
});
