/*
	Slide - Image slider
	(c) 05-02-2009
*/
var SliderJC = new Class({
	options: {
		totalImages:0,
		images: [],
		currentImage: 0,
		autoSlide:2500,
		slideContainer: 'slide',
		slideElements: 'img',
		stopSlide: false
	},
	initialize: function(options){
		$extend(this.options, options);
		var opt = this.options;	
		
		if ( !$(opt.slideContainer) )
			return false;
		
		opt.images = $(opt.slideContainer).getElements(opt.slideElements);
		opt.totalImages = opt.images.length;
		if ( opt.totalImages <= 0 )
			return false;
		
		opt.images.each(function(img, index){
			img.setStyle('opacity', '0');
			img.set('morph', { duration: 'long' });
		});
		opt.images[0].morph({ opacity: 1 });
		this.autoSlide = this.next.periodical(opt.autoSlide, this);
		if ( opt.stopSlide )
			opt.images.addEvents({
				'mouseover':function(){
					$clear(this.autoSlide);
				}.bind(this),
				'mouseout':function(){
					this.autoSlide = this.next.periodical(opt.autoSlide, this);
				}.bind(this)
			})
	},
	next: function() {
		var opt = this.options;
		var prev = opt.currentImage;
		opt.currentImage++;
		if( opt.currentImage == opt.totalImages ) opt.currentImage = 0;
		opt.images[prev].morph({ opacity: 0 });
		opt.images[opt.currentImage].morph({ opacity: 1 });
	},
	
	prev: function(){
		var opt = this.options;
		var prev = opt.currentImage;
		opt.currentImage--;
		if( opt.currentImage < 0 ) opt.currentImage = opt.totalImages - 1;
		opt.images[prev].morph({ opacity: 0 });
		opt.images[opt.currentImage].morph({ opacity: 1 });
	}
});