var ContentSlider = new Class({
	
	//options
	options: {
		duration:6000
	},
	//implements
	Implements: [Options,Events],

	//initialization
	initialize: function(container, elements, options) {

		//set options
		this.setOptions(options);
		
		this.container = $(container);
		this.elements = $$(elements); 
		this.currentIndex = 0;
		this.open = true;
		
		
		this.topLevelPos = [];

		this.mover = new Fx.Tween(container, { transition: Fx.Transitions.Quart.easeOut, duration: this.options.duration});
		
		this.update();
		this.container.fade('in');
	},
	slide: function(key) {
		this.mover.pause().start('left', this.position(key));
		this.currentIndex = key;
	},
	stop: function() {

	},
	set: function(key){
		this.mover.pause().set('left', this.position(key));
	},
	isShow: function() {
		return !!(this.container.getStyle('opacity') == 1);
	},
	update: function() {

		var width 	= 0;
		var leftpos = 0;
		var padding = 0;
		
		this.elements.each(function(element, i) {
			width += element.getWidth();
			if(i == 0)
			{
				padding += (window.getWidth()-element.getWidth())/2;
				element.setStyle('left', leftpos += padding);
				if($('panel-collector')) $('panel-collector').setStyle('left', leftpos);
				if($('panel-images')) $('panel-images').setStyle('left', leftpos);
			} else 
			{
				element.setStyle('left', (leftpos += ((padding*2)+element.getWidth())));
			}
			this.topLevelPos[i] = (window.getWidth()*-1)*i;
		}.bind(this));
		
		this.container.setStyle('width', width);

	},
	position: function(key){
		return this.topLevelPos[key];
	},
	fader: function(amount) {
		this.mover.pause().start('opacity', amount);
	},
	setter: function(parent){
		this.container.setStyle('left', this.position(parent));
		this.currentIndex = parent;
		//console.debug('this.currentIndex: ' + this.currentIndex);
	}, 
	getkey: function(){
		return this.currentIndex;
	}
});