/**
 * jquery.scrollbuttons 1.0 - A basic button scroller
 * 
 * Copyright (c) 2009 Swipht Technologies
 * http://www.swipht.com
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 *
 * Launch  : April 2009
 * Version : 1.0
 */

jQuery.fn.scrollbuttons = function(viewportHeight) {
    
    var scroller = this;
    var initScrollerTopMargin = parseInt(scroller.css('margin-top'));
    var scrollInterval = 70;

    //show scroll buttons if scroller is larger than viewport
    if(scroller.height() > viewportHeight) {
        $('.scroll_up').css('display', 'block');
        $('.scroll_down').css('display', 'block');
    }
    
    var scrollUp = function() {
        var topMargin = parseInt(scroller.css('margin-top'));

        if(topMargin >= initScrollerTopMargin) {
            scroller.css('margin-top', initScrollerTopMargin);
            return;
        }
        
        var newTopMargin = (topMargin + scrollInterval) + "px";
        
        $('.scroll_up').unbind();
        
        scroller.animate({marginTop: newTopMargin}, 250, '', function() {
            $('.scroll_up').bind("click", scrollUp);
        });
    }
    
    var scrollDown = function() {
        
        var topMargin = parseInt(scroller.css('margin-top'));
        
        if(Math.abs(topMargin - initScrollerTopMargin) >= (scroller.height() - viewportHeight+20)) {
            return;
        }
        
        var newTopMargin = (topMargin - scrollInterval) + "px";
        
        $('.scroll_down').unbind();
        
        scroller.animate({marginTop: newTopMargin}, 250, '', function() {
            $('.scroll_down').bind("click", scrollDown);
        });
    }
    
    $('.scroll_up').bind("click", scrollUp);
    $('.scroll_down').bind("click", scrollDown);
}
