var Slider = new Class({

    Implements: [Options, Events],

    initialize : function(options) {
        this.options = $extend({
            slider: 'slider',
            item_left: 'slider-left',
            item_right: 'slider-right',
            block_width: 221,
            block_selector: '.gallery_item',
            number: 1,
            items_visible : 4
        }, options || {});

        this.slider = $(this.options.slider);
        this.tween = new Fx.Tween(this.slider);

        this.item_left  = $(this.options.item_left);
        this.item_right = $(this.options.item_right);

        var scrollLeftBound = this.scrollLeft.bindWithEvent(this);
        var scrollRightBound = this.scrollRight.bindWithEvent(this);
        this.item_left.addEvent('click',scrollLeftBound);
        this.item_right.addEvent('click',scrollRightBound);

        this.block_count = this.slider.getElements(this.options.block_selector).length;
        this.items_visible = this.options.items_visible;

        if (this.options.number > this.block_count || this.options.number < 2) {
            this.left_number = 1;
        } else {
            this.left_number = this.options.number;
            this.tween.set('left',(-1)*(this.left_number - 1)*this.options.block_width);
        }
    },

    scrollLeft: function(evt) {
        evt.stop();
        if (this.left_number <= 1) {
            return false;
        } else {
            this.left_number--;
            this.tween.start('left',(-1)*(this.left_number - 1)*this.options.block_width)
        }
    },

    scrollRight: function(evt) {
        evt.stop();
        if (this.left_number > this.block_count - this.items_visible ) {
            return false;
        } else {
            this.left_number++;
            this.tween.start('left',(-1)*(this.left_number - 1)*this.options.block_width);
        }
    }

});