var SwScrollControl2 = new Class({
    Implements: Options,
    options: {
        speed: 400,
        scrollStep: 80,
        buttonSize: 17,
        scrollUpButtonClass: 'swScrollUp',
        scrollDownButtonClass: 'swScrollDown',
		marginRight: 0,
		marginBottom: 0
    },
    initialize: function(swScrollId, options){
        this.setOptions(options);
        var scrollDiv = $(swScrollId);
		if (!scrollDiv) {return;}
        var posX = scrollDiv.getSize().x + scrollDiv.getParent().getStyle('padding-left').toInt() + scrollDiv.getStyle('margin-left').toInt() - this.options.buttonSize - this.options.marginRight - 1;
        var posY = scrollDiv.getSize().y + scrollDiv.getParent().getStyle('padding-top').toInt() - this.options.buttonSize - this.options.marginBottom - 2;
        var wrap = new Element('div', {'styles': {'position':'relative'}});
        wrap.wraps(scrollDiv);
		if (scrollDiv.getScrollSize().y <= (wrap.getSize().y + 5)) {
			return;
		}
        var scrollUpEl = new Element('div', {
            'class': this.options.scrollUpButtonClass,
            'styles': {
                'cursor': 'pointer',
                'display': 'block',
                'position': 'absolute',
                'top': posY - this.options.buttonSize,
                'left': posX,
                'width': this.options.buttonSize,
                'height': this.options.buttonSize
            }
        });
        var scrollDownEl = new Element('div', {
            'class': this.options.scrollDownButtonClass,
            'styles': {
                'cursor': 'pointer',
                'display': 'block',
                'position': 'absolute',
                'top': posY,
                'left': posX,
                'width': this.options.buttonSize,
                'height': this.options.buttonSize
            }
        });
        wrap.grab(scrollUpEl);
        wrap.grab(scrollDownEl);
        
        this.myFxDown = new Fx.Scroll(scrollDiv, {
            duration: this.options.speed,
            offset: {
                'x': 0,
                'y': this.options.scrollStep
            }
        });
        scrollDownEl.addEvent('click', function(){
            this.myFxDown.start();
        }.bind(this));
        
        this.myFxUp = new Fx.Scroll(scrollDiv, {
            duration: this.options.speed,
            offset: {
                'x': 0,
                'y': -this.options.scrollStep
            }
        });
        scrollUpEl.addEvent('click', function(){
            this.myFxUp.start();
        }.bind(this));
    }
});

