ClipScroller = new Class.create();
ClipScroller.prototype = {
	element: null,
	numClips: null,
	clipWidth: null,
	numToShift: null,
	totalWidth: null,
	shiftWidth: null,
	move: null,
	options: {},
	
	initialize: function(element, numClips, clipWidth, numToShift, options) {
		this.element = $(element);
		this.clipWidth = clipWidth;
		this.numToShift = numToShift;

		this.setNumClips(numClips);
		
		if (!options.transition) options.transition = Fx.Transitions.quartOut;
		if (!options.duration) options.duration = 700;
		if (options) this.options = options;
		
		this.options.stopAtEnd = true;
		
		// intialize slide effect
		this.move = new Fx.Style(element, 'left', {transition: options.transition, duration: options.duration});
	},
	
	getCurPos: function() {
		//alert(this.element.style.left);
		var curPos = this.element.style.left;

		if (!curPos) { curPos = 0; }
		return parseInt(curPos);
	},
	
	setNumClips: function(num) {
		this.numClips = num;
		this.totalWidth = (this.numClips*this.clipWidth);
		this.shiftWidth = this.numToShift*this.clipWidth;
	
		this.element.style.left = '0';
		
		var setWidth = new Fx.Style(this.element, 'width').set(this.totalWidth);
	},
	
	moveLeft: function() {
		if(mijnTimer == 0)
		{
			
			if (this.numClips < this.numToShift) return;
			var num = this.numToShift;
			var curPos = this.getCurPos();
			do {
				amount = -curPos + num * (this.clipWidth);
				num--;
			} while ((this.totalWidth - amount) < this.shiftWidth);
			
			var moveTo = -amount;
			
			if (moveTo == curPos) {
				
				if (!this.options.stopAtEnd) 
				{
					moveTo = 0;		
				}
				else if (this.options.stopFunction) {				
					this.options.stopFunction('left');
				}
			}	
			//alert(this.curPos);
			this.move.custom(curPos, -window.clipwidth);
			//alert(this.curPos);
		}
		
	},
	
	moveRight: function() {
		if(mijnTimer == 0)
		{
			if (this.numClips < this.numToShift) return;
			var num = this.numToShift;
			var curPos = this.getCurPos();
			do {
				amount = -curPos - num * (this.clipWidth);
				num--;
			} while (amount < 0);
			//alert(amount);
			var moveTo = -amount;
		
			if (moveTo == curPos) {
				if (!this.options.stopAtEnd){
					moveTo = this.shiftWidth - this.totalWidth;
				}
				else if (this.options.stopFunction) {
					this.options.stopFunction('right');
				}
			}

			this.move.custom(curPos, moveTo);

		}
	},
	
	gotoCurrentMatch: function() {
		var initShift = parseInt(curPosNu * this.clipWidth);
		this.move.custom(0, -initShift);
		this.options.duration = duur;
	},
	
	increaseContent: function(type) {
		//alert(this.numClips);
		this.numClips += 1;
		this.setNumClips(this.numClips);
		//alert(this.numClips);
	}
	
	
}
