var ImageSlideContainer = Class.create(
{
	initialize: function(imgClass, containerId, msDelay, nextBtnId)
	{
		var self = this;
		this.slidingArray = new Array();
		if($(containerId)) 
		{
			this.slidingArray = $$('#'+containerId+' .'+imgClass);
			this.slideDelay = msDelay;
			this.startIndex = 0;
			this.currentIndex = 0;
			this.endIndex = (document.getElementsByClassName(imgClass).length-1);
			if($(nextBtnId))
			{
				$(nextBtnId).observe('click', function()
				{
					self.runSlide();
				});
			}
			else
			{
				this.startSlider();
			}	
		}
	},
	
	startSlider: function()
	{
		var self = this;
		var delayRate = ((this.slideDelay+5)*1000);
		if(this.slidingArray.length <= 0) { return false; }
		var timedInterval = setInterval(function()
		{
			if(self.currentIndex == self.endIndex)
			{
				self.slideImages(self.currentIndex, self.startIndex);
				self.currentIndex = 0;	
			}
			else
			{
				self.slideImages(self.currentIndex, (self.currentIndex+1));
				self.currentIndex = (self.currentIndex+1);		
			}
		}, delayRate);
	},
	
	runSlide: function()
	{
		var self = this;
		if(this.currentIndex == this.endIndex)
		{
			this.slideImages(this.currentIndex, this.startIndex);
			this.currentIndex = 0;	
		}
		else
		{
			this.slideImages(this.currentIndex, (this.currentIndex+1));
			this.currentIndex = (this.currentIndex+1);		
		}			
	},
	
	slideImages: function(startIndex, endIndex)
	{
		var self = this;
		var startElem = this.slidingArray[startIndex];
		var endElem = this.slidingArray[endIndex];
		var delayRate = this.slideDelay;

		new Effect.Parallel([
			new Effect.Fade(startElem, { delay: delayRate }),
			new Effect.Appear(endElem, { delay: delayRate })
		], { delay: delayRate });
	}
});
Event.observe(window, 'load', function()
{
	var imgSlider = new ImageSlideContainer('boks', 'sliderHolder', 0.4, 'sliderNeste');
});