/*	Carousel */

var Carousel=new Class({
					  
	'Implements':Options,
	
	'options':{
	
		'data':[],
		'id':null,
		'viewWidth':0,
		'itemsPerView':1,
		'maxMargin':0,
		'animation':null,
		'items':null,
		'autoStart':true,
		'periodical':0,
		'nextBtn':null,
		'previousBtn':null,
		'itemClass':'li'
				
	},
	
	'initialize':function(options){
		
		this.setOptions(options);
		this.setup();
		
	}

});

Carousel.implement({setup:function(){

	var o=this.options;
	o.items=o.target.getElements(o.itemClass);
	o.maxMargin=Math.ceil(o.items.length/o.itemsPerView)*o.viewWidth-o.viewWidth;
	o.animation=new Fx.Tween(this.options.target,{'duration':500});
	
	if(o.nextBtn) o.nextBtn.addEvent('click',this.nextItem.bind(this));
	if(o.previousBtn) o.previousBtn.addEvent('click',this.previousItem.bind(this));
	if(this.options.periodical>0) this.nextItem.periodical(o.periodical,this);
	this.toggleButtons(0);

}});

Carousel.implement({nextItem:function(){

	var o=this.options,pos=parseInt(o.target.getStyle('margin-left')),newPos=pos==-o.maxMargin?0:pos-o.viewWidth;	
	o.animation.start('margin-left',newPos);
	this.toggleButtons(newPos);

}});

Carousel.implement({previousItem:function(){

	var o=this.options,pos=parseInt(o.target.getStyle('margin-left')),newPos=pos==0?-o.maxMargin:pos+o.viewWidth;	
	o.animation.start('margin-left',newPos);
	this.toggleButtons(newPos);

}});
//||$('galleryPage'
Carousel.implement({toggleButtons:function(A){

	var o=this.options,maxItems=$('shopPage')?14:6;
	
	if(o.items.length>maxItems){
		o.previousBtn.setStyle('display',A==0&&o.previousBtn?'none':'');
		o.nextBtn.setStyle('display',A==-o.maxMargin&&o.nextBtn?'none':'');
	}
	else{
		o.previousBtn.setStyle('display','none');
		o.nextBtn.setStyle('display','none');
	}

}});
