var SimpleDivSlide = new Class({

        options: {
                slides: [],
                startIndex: 0,
                onShow: Class.empty, 
                txtid: 'fdsUP',
                wrap: true
        },
        
        initialize: function(options){
                this.setOptions(options)
                this.slides = [];
                this.effects = [];
                this.addSlides(this.options.slides);
                $(''+this.options.txtid+'goleft').addEvent('click', this.cycleBack.bind(this));
                $(''+this.options.txtid+'goright').addEvent('click', this.cycleForward.bind(this));
                if(this.slides.length) this.showSlide(this.options.startIndex);
        },
        
        addSlides: function(slides){
                $$(slides).each(function(slide){
                		slide.setStyle('left', '274');
                		slide.setStyle('top', this.slides.length*-240);
                        this.slides.include($(slide));
                        this.effects[this.slides.indexOf(slide)] = new Fx.Style(slide, 'left');
                        slide.addEvent('click', this.cycleForward.bind(this));
                }, this);
        },
        
        addSlide: function(slide){
                this.addSlides([slide]);
        },
        
        amMoving: function(){
        		var ret = false;
        		this.slides.each(function(slide){
        			if (slide.getStyle('left').toInt() != 0 && slide.getStyle('left').toInt() != 274 && slide.getStyle('left').toInt() != -274){
        				ret = true;
        			}
        			if (this.movingSlide.getStyle('left').toInt() != 0){
        				ret = true;
        			}
        		}, this);
        		return ret;
        },
        
        cycleForward: function(){
        		if (!this.amMoving()){
                	if($chk(this.now) && this.now < this.slides.length-1) this.showSlide(this.now+1);
                	else if (this.now && this.options.wrap) this.showSlide(0);
                	else if(!$defined(this.now)) this.showSlide(this.options.startIndex);
                	}
        },
        
        cycleBack: function(){
        		if (!this.amMoving()){
                	if(this.now > 0) this.showSlide(this.now-1);
                	else if(this.options.wrap) this.showSlide(this.slides.length-1);
                	}
        },
        
        showSlide: function(iToShow){
                var now = this.now;          
                var currentSlide = this.slides[now];
                var slide = this.slides[iToShow];
                this.movingSlide = this.slides[iToShow];
                if(slide) {
                        if($chk(now) && now != iToShow && ((now<iToShow && now==iToShow-1) || (iToShow==0 && now!=1))){
                                this.effects[now].start(-274);
                                slide.setStyle('left', '274');
                                this.effects[iToShow].start(0);
                                
                        } else if($chk(now) && now != iToShow){
                                this.effects[now].start(274);
                                slide.setStyle('left', '-274');
                                this.effects[iToShow].start(0);
                        } else {
                        	slide.setStyle('left', '274');
                        	this.effects[this.slides.indexOf(slide)].start(0);
                        }
                        this.now = iToShow;
                }
        }
        
});


SimpleDivSlide.implement(new Options);
SimpleDivSlide.implement(new Events);

