var sandvenFade = Class.create(
{
	initialize: function(obj)
	{
		var self = this;
		this.obj = obj;
		
		this.imageContainerElms = $$('#'+this.obj.imageContainer+' .'+this.obj.image);
		this.buttonElms = $$('#'+this.obj.buttons+' .'+this.obj.image);
		
		this.currentImage = 0;//this.imageContainerElms[0];
		this.isAni = false;
		
		this.buttonElms.each(function(elm,i){
			$(elm).observe('click',function(){
				self.onClick(/*self.imageContainerElms[i]*/i);
			})
		});
		
		$(this.obj.nextButton).observe('click', function(ev){
			Event.stop(ev);
			self.nextImg();
		});
		
		$(this.obj.prevButton).observe('click', function(ev){
			Event.stop(ev);
			self.prevImg();
		});
		
	},
	
	onClick: function(elemToView){
		var self = this;

		if(self.currentImage != elemToView){
			if(!self.isAni){
				
				self.isAni = true;
				
				new Effect.Parallel([
					Effect.Fade($(self.imageContainerElms[self.currentImage]/*self.currentImage*/), { duration: self.obj.delay }),
					new Effect.Appear($(self.imageContainerElms[elemToView]/*self.currentImage*//*elemToView*/),
					{
						afterFinish: function(){self.isAni = false;},
						duration: self.obj.delay
					})
		
				], { 
			    	duration: self.obj.delay
			    	
				});
			}
		}
		self.currentImage = elemToView;
	},
	
	nextImg: function()
	{
		var self = this;
		var nextImg;
		var lengde = this.buttonElms.length;
		
		if((self.currentImage + 1) >= lengde)
		{
			nextImg = 0;
		}
		else
		{
			nextImg = self.currentImage + 1;
		}

		self.onClick(nextImg); 
	},
	
	prevImg: function()
	{
		var self = this;
		var nextImg;
		var lengde = this.buttonElms.length;
		
		if((self.currentImage - 1) < 0)
		{
			nextImg = lengde - 1;
		}
		else
		{
			nextImg = self.currentImage - 1;
		}

		self.onClick(nextImg); 
	}

});

Event.observe(window, 'load', function()
{
	if($('imageContainer')){
		var newSandvenFade = new sandvenFade(
		{
			imageContainer : 'imageContainer', //Id
			buttons : 'buttons', //Id
			image: 'image',
			delay: 0.8,
			prevButton: 'prev',
			nextButton: 'next'
		});
	}
	
});
