$(document).ready(function() {
    $(".arrow_left a").click(function() {
        $(".logos_block, .icons_block").scrollTo('-=230px', 500, {axis: 'x'});
        return false;
    });

    $(".arrow_right a").click(function() {
        $(".logos_block, .icons_block").scrollTo('+=230px', 500, {axis: 'x'});
        return false;
    });

    distance_curr = 0;
	distance = 200;
	distance_fast = 120;
	distance_very_fast = 50;
    init();
	$(".logos_block, .icons_block").mousemove(function (event) { scroll(event); });
	$(".logos_block, .icons_block").mouseleave(function () { scrollStop(); });
});

function init() {
    if($(".logos_block").length > 0) {
        var listOffset = $(".logos_block").offset();
        listRightX = listOffset.left + $(".logos_block").width();
        photosListHeight = $(".logos_container").width();
        photoBlock = $(".logos_block");
        listLeftX = listOffset.left;
    } else if($(".icons_block").length > 0) {
        var listOffset = $(".icons_block").offset();
        listRightX = listOffset.left + $(".icons_block").width();
        photosListHeight = $(".icons_container").width();
        photoBlock = $(".icons_block");
        listLeftX = listOffset.left;
    }
	
}

function scroll(e) {
	cursorPosition = getCursorPosition(e);

	if (cursorPosition.x <= listLeftX + distance && cursorPosition.x >= listLeftX) { // To top
		if (distance_curr != distance) {
			$(photoBlock).stop(true);
			distance_curr = distance;
		}
		speed = ($(photoBlock).scrollLeft()*300)/104;
		$(photoBlock).animate({scrollLeft: '0'}, speed);
	}
	else if (cursorPosition.x <= listRightX && cursorPosition.x >= listRightX - distance) { // To bottom
		if (distance_curr != distance) {
			$(photoBlock).stop(true);
			distance_curr = distance;
		}
		speed = ((photosListHeight - $(photoBlock).scrollLeft())*300)/104;
		$(photoBlock).animate({scrollLeft: photosListHeight}, speed);
	}
	else {
		$(photoBlock).stop(true);
	}
}

function scrollStop () {
	$(photoBlock).stop(true);
}

function getCursorPosition(e) {
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    }
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX +
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY +
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    return cursor;
}
