var ImageMarquee = Class.create();
ImageMarquee.prototype = {

    initialize: function(width, containerwidth, timeout){
    
        this.loaded_images = 0;
        this.right_slides = 0;
        this.left_slides = 0;
        this.is_sliding_now = false;
        this.slider = 'slider';
        this.autoplay = 1;
        this.stop = 0;
        this.slider_width = width;
        this.slide_width = 50;
		this.width = width;
        this.containerwidth = (containerwidth) ? containerwidth : 0;
		this.timeout = timeout;
        
        this.slides = $$(this.slider + ' span');
        this.slides.each(function(){
            loaded_images++;
        })
        this.right_slides = this.width;
        this.slidePlay();
    },
    
    slideLeft: function(){
        if (!this.is_sliding_now) {
          //  this.is_sliding_now = true;
            this.current_position = parseInt($(this.slider).getStyle('left'));
			//alert(this.current_position + " l:" +this.left_slides + " r:" + this.right_slides);
            if (parseInt(this.left_slides) > parseInt(this.containerwidth)) {
				this.currentEffect = new Effect.Morph(this.slider, {
				  style: 'left:' + (this.current_position + this.slide_width) + 'px;',
				  duration: ((this.timeout-5)/1000),
				  transition: Effect.Transitions.linear,
				  fps: 50  
				});
                this.right_slides += this.slide_width;
                this.left_slides -= this.slide_width;
            }
            else {
				this.currentEffect = new Effect.Morph(this.slider, {
				  style: 'left:0px;',
				  duration: 0,
				  transition: Effect.Transitions.linear 
				});
                this.right_slides = this.slider_width;
                this.left_slides = 0;
                this.autoplay = 1;
                this.is_sliding_now = false;
            }
        }
    },
    
    slideRight: function(){
        if (!this.is_sliding_now) {
           //\\ this.is_sliding_now = true;
            this.current_position = parseInt($(this.slider).getStyle('left'));
			//alert(this.current_position + " l:" +this.left_slides + " r:" + this.right_slides);
			if (parseInt(this.right_slides) >  parseInt(this.containerwidth)) {
				this.currentEffect = new Effect.Morph(this.slider, {
				  style: 'left:' + (this.current_position - this.slide_width) + 'px;',
				  duration: ((this.timeout-5)/1000),
				  transition: Effect.Transitions.linear,
				  fps: 50 
				});
                this.right_slides -= this.slide_width;
                this.left_slides += this.slide_width;
            }
            else {
                this.left_slides = this.slider_width;
                this.right_slides = 0;
                this.autoplay = -1;
                this.is_sliding_now = false;
            }
        }
    },
    
    slidePlay: function(){
        setTimeout(function(){
            if (this.autoplay == 1 && !this.stop) {
                this.slideRight();
            }
            else 
                if (this.autoplay == -1 && !this.stop) {
                    this.slideLeft();
                }
            this.slidePlay();
        }.bind(this), this.timeout);
    }
    
};

