var Vn_Slider = new Class({
	stage: 0,
	itemsList: 0,
	
	initialize: function(domNode){
		// setup totInc
		var totInc = 0;
		// get our stage
		this.domNode = domNode;
		this.stage = this.domNode.getElement('.vn_slider_stage');
		// get the node that contains our items:
		this.itemsList = this.stage.getElement('.vn_slider_list');
		// our handle-buttons:
		this.prevButton = this.domNode.getElement('.vn_slider_prev');
		this.nextButton = this.domNode.getElement('.vn_slider_next');
		// get width of the slider stage
		var stageW = this.stage.getStyle('width').toInt();
	 	// Breite eines Sliderelements ermitteln
	 	var itemW = this.itemsList.getElement('div.vn_slider_item').getStyle('width').toInt();
	  	// Anzahl der Sliderelemente
	  	var sumEl = this.itemsList.getElements('div.vn_slider_item').length;
		// Maximale Breite des zu floatenden Containers ermitteln (Anzahl der Elemente * Breite der Elemente)
		// und dem entsprechendem Div zuweisen
		var maxW = itemW*(sumEl);
		this.itemsList.setStyle('width', maxW); 
		// Versatz zuweisen (itemW slidet um Breite eines Elementes; stageW slidet um Breite der Bühne)
		var inc = itemW;
		// Berechnung des maximalen Versatzes
		// Formel abhängig von gewählter inc.
		// bei inc = itemW: (Anzahl der Sliderelemente - abgerundet(Breite Sliderbühne / Breite Sliderelement))*Versatz
		if(inc==itemW){
			var maxInc = -(sumEl - (stageW/itemW).floor())*inc;
		}
		// bei inc = stageW: abgerundet(Anzahl der Sliderelemente / (abgerundet(Breite Sliderbühne / Breite Sliderelement)))*Versatz
		if(inc==stageW){
			var maxInc = -(sumEl/(stageW/itemW).floor()).floor()*inc;
		}
		// Bewegung dem floatendem Container zuweisen
		var myFx = new Fx.Tween(this.itemsList, {
			duration: 1000,
			transition: Fx.Transitions.Bounce.easeOut,
			wait: true
		});
		
		//Die Buttons verstecken
		this.prevButton.addClass('disabled');
		if(maxInc==0){
	 		this.nextButton.addClass('disabled');
		}
		var _that = this;
		//-------------------------------------
		// EVENTS for the button "vn_slider_prev"
		_that.prevButton.addEvents({ 
			'click' : function(event){ 
				if(totInc<0){
					totInc = totInc+inc;
					event.stop();
					myFx.start('margin-left', totInc);
					_that.prevButton.removeClass('disabled');
					_that.nextButton.removeClass('disabled');
				}
				if(totInc==0){
					_that.prevButton.addClass('disabled');
				}
			}  	  
		}); 
		//-------------------------------------
		// EVENTS for the button "vn_slider_next"
		_that.nextButton.addEvents({ 
			'click' : function(event){
				if(totInc>maxInc){
					totInc = totInc-inc;
					event.stop();
					myFx.start('margin-left', totInc);
					_that.nextButton.removeClass('disabled');
					_that.prevButton.removeClass('disabled');
				}
				if(totInc == maxInc){
					_that.nextButton.addClass('disabled');
				}
			}		  		  
		});
	}
});
window.addEvent('domready', function() {
	$(document.body).getElements('.vn_slider').each(function(element){
		new Vn_Slider(element);
	});
});
