var avScroll = new Class({

    options: {
		imgWidth: 0,
		scrollRange: 0,
		leftHandle: null,
		rightHandle: null,
		container: null,
		leftClicks: 0,
		rightClicks: 0,
		speed: 500		
	},
	
	initialize: function(options) {
	this.setOptions(options)
	
		this.imgWidth = options['imgWidth'];
		this.scrollRange = options['scrollRange'];
		this.leftHandle = options['leftHandle'];
		this.rightHandle = options['rightHandle'];	
		this.container = $(options['container']);

        // my complement
        this.imgWidth = $('innerScroller').getElement('img').width+2;
        var img = $('innerScroller').getElements('img');
        areaTotal = 0;
        tamAtual = 888;
        var areaFaltante = 0;
        img.each(function(item, index){
            areaTotal += item.width+2; // total of the width
        });

		if($(options['ff'])){
			this.ff = $(options['ff']);
			$(this.ff).addEvent('click',this.fastForward.bindWithEvent(this));
		}
		if($(options['rw'])){
			this.rw = $(options['rw']);
			$(this.rw).addEvent('click',this.speedReverse.bindWithEvent(this));
		}
		
		this.leftClicks = 0;
		this.rightClicks = 0;
		this.speed = options['speed'];		
		$(this.leftHandle).addEvent('click',this.leftClick.bindWithEvent(this));
		$(this.rightHandle).addEvent('click',this.rightClick.bindWithEvent(this));
	},
	leftClick: function() {
				if(this.leftClicks > 0){
					var start= this.leftClicks * this.imgWidth;
					var end = ( this.leftClicks - 1 ) * this.imgWidth;
                    tamAtual -= this.imgWidth;
                    //if(tamAtual > origTam) {tamAtual -= this.imgWidth;} else {tamAtual = origTam;}
					var myEffect = new Fx.Morph(this.container, {
                        duration: this.speed,
                        wait:true,
                        transition: Fx.Transitions.Back.easeIn
                        });
                    myEffect.start({
                        'right': [start,end]
                    });
					this.leftClicks--;
				}
	},	
	rightClick: function() {
				var start = this.leftClicks * this.imgWidth;
				var end = (this.leftClicks * this.imgWidth) + this.imgWidth;
                if(tamAtual < areaTotal) {
				    tamAtual += this.imgWidth;
                    var myEffect = new Fx.Morph(this.container, {
                        duration: this.speed,
                        wait:true,
                        transition: Fx.Transitions.Back.easeIn
                        });
                    myEffect.start({
                        'right': [start,end]
                    });
				    this.leftClicks++;
				}
	},
	fastForward: function() {
				// scroll 4 images to the right, calculate it on base of the clicks and the image width
				var start= (this.leftClicks) * this.imgWidth;			
				var end = (( this.leftClicks + 4 ) * this.imgWidth);
				if(end = 0){
                    var start= (this.leftClicks * this.imgWidth );
                    if(this.leftClicks < 4){
                        this.leftClicks = 4;
                    }
                    var end = ((this.leftClicks - 4 ) * this.imgWidth);
                    $(this.container).effect('right',{ duration: this.speed, wait:true, transition:Fx.Transitions.Back.easeIn }).start(start,end);
                    this.leftClicks-= 4;
                }
                /*$(this.container).effect('right',{ duration: this.speed, wait:true, transition:Fx.Transitions.Back.easeIn }).start(start,end);				
				this.leftClicks = this.leftClicks +  4;*/
	},
	speedReverse: function(){
				var start= (this.leftClicks *  this.imgWidth );
				var end = ((this.leftClicks  - 4 ) * this.imgWidth);
				$(this.container).effect('right',{ duration: this.speed, wait:true, transition: Fx.Transitions.Back.easeIn }).start(start,end);
				this.leftClicks-= 4;
	}
});
avScroll.implement(new Options, new Events);
