var dragElement = null;
var minLeft = 0;
var maxLeft = 928;
var startX = null;
var mouseShift = 0;
var wheelStep = 50;
var clickStep = 150;
var mouseStartX = null;
var mouseStartY = null;
var brickStart = null;
var id;
var maxYShift = 150;

var wrapWidth = 0;
var contWidth = 0;
var minBrickLeft = 50;
var maxBrickLeft = 0;
var edaShift = 10;

function bakeScroll(){
    wrapWidth = $(".b-body").width();
    contWidth = $(".b-body table").width();
    maxBrickLeft = wrapWidth - 150;
    $(".b-body, .bar").bind('mousewheel', function(event, delta){
        stepScroll(-delta * wheelStep);
        return false;
    });
    renderScroll($(".b-body").scrollLeft());
    $(".brick").bind('mousedown', function(event){
        this.blur();
        mouseStartX = event.clientX;
        mouseStartY = event.clientY;
        posStart = $(".b-body").scrollLeft();
        brickStart = (posStart / (contWidth - wrapWidth)) * (maxBrickLeft - minBrickLeft) + minBrickLeft;
        $(document).bind('mousemove', function(event){
            var mouseX = event.clientX - mouseStartX;
            var mouseY = event.clientY - mouseStartY;
            if (Math.abs(mouseY) > maxYShift) {
            }
            //renderScroll(posStart);
            else 
                if (-mouseX > brickStart - minBrickLeft) 
                    renderScroll(0);
                else 
                    if (mouseX + brickStart > maxBrickLeft) 
                        renderScroll(contWidth - wrapWidth);
                    else 
                        renderScroll(((brickStart - minBrickLeft + mouseX) / (maxBrickLeft - minBrickLeft)) * (contWidth - wrapWidth));
        }).bind('selectstart', function(){
            return false;
        }).find("body").css({
            cursor: 'pointer'
        });
        return false;
    });
    $(document).bind('mouseup', function(){
        $(document).unbind('mousemove').find("body").css({
            cursor: 'auto'
        });
        return false;
    });
}

function stepScroll(potpos){
    $b_body = $(".b-body");
    if ($b_body.scrollLeft() + potpos < 0) 
        renderScroll(0);
    else 
        if ($b_body.scrollLeft() + potpos > contWidth - wrapWidth) 
            renderScroll(contWidth - wrapWidth);
        else 
            renderScroll($b_body.scrollLeft() + potpos);
}

function renderScroll(position){
    $b_body = $(".b-body");
    $b_body.scrollLeft(position);
    var brickShift = (position / (contWidth - wrapWidth)) * (maxBrickLeft - minBrickLeft) + minBrickLeft;
    $(".brick").css({
        marginLeft: brickShift
    });
}

