/*
 * CBImageSlider.js
 *
 * Copyright (c) 2010 David Scourfield.  All rights reserved.
 *
 */

var CBImageSlider = Class.create({

	DEFAULT_OPTIONS: {
		effectDuration: 1,
		interval: 8,
		firstInterval: 3,
		imgDims: {
			width: 728,
			height: 248
		}
	},

	initialize: function(containerElement, imgSrcs, opts) {

		this.options = Object.extend(this.DEFAULT_OPTIONS, opts || {});
		containerElement = $(containerElement);

		this.listWidth = this.options.imgDims.width * imgSrcs.length;

		this.imageList = new Element('ul').setStyle({
			height: this.options.imgDims.height + "px",
			width: this.listWidth + "px"
		});

		for (i = 0; i < imgSrcs.length; i++) {
			this.imageList.appendChild(
				new Element('li')
			).appendChild(
				new Element('img', {src: imgSrcs[i]})
			);
		}

		containerElement.innerHTML = "";

		containerElement.appendChild(this.imageList).setStyle({
			left: "-" + (this.listWidth - this.options.imgDims.width) + "px"
		});

		setTimeout( this.rotate.bind(this), this.options.firstInterval * 1000);

	},

	rotate: function() {

		new Effect.Move( this.imageList , {
			mode: 'relative',
			x: this.options.imgDims.width,
			afterFinish: function() {
				this.imageList.setStyle({
					left: "-" + (this.listWidth - this.options.imgDims.width) + "px"
				}).appendChild(this.imageList.down('li'));
			}.bind(this)
		} );

		setTimeout( this.rotate.bind(this), this.options.interval * 1000);
	}

});

