var ImageTextSlider = Class.create({
  initialize:function(container, options) {
    this.options = {
    	itemClass: 'slideritem',
    	interval: 8,
    	duration: 1
    };
    Object.extend(this.options, options || {});
    this.init(container);
  },
  
  init:function(container) {
		this.container = $(container);
		if (!this.container) throw("Slider container is missing!");
		this.items = this.container.select('.' + this.options.itemClass);
		this.itemCount = this.items.length;
		this.containerHeight = 0;
		
		for(i=0;i<this.itemCount;i++) {
			if (this.items[i].getHeight() > this.containerHeight) {
				this.containerHeight = this.items[i].getHeight();
			}
			this.items[i].setStyle({
				position: 'absolute',
				width:  this.items[i].getWidth() + 'px',
				height: this.items[i].getHeight() + 'px'
			});
			if (i > 0) {
				this.items[i].setStyle({
					display: 'none'
				});
			}
		}
		
		this.container.setStyle({height: this.containerHeight + 'px'});
		
		if (this.itemCount > 1)
		  this.start();
  },
  
	start:function() {
		this.current = 0;							
		this.pe = new PeriodicalExecuter(function(pe) {
      this.slide();
    }.bind(this), this.options.interval);
	},
	
	slide:function() {
		Effect.Fade(this.items[this.current], { duration: this.options.duration });
		if (this.current == this.itemCount-1) {
			this.current = 0;
		}
		else {
			this.current++;
		}
		Effect.Appear(this.items[this.current], { duration: this.options.duration });
	}
});
