$(function() {

    var totalPanels = $(".scrollContainer").children().size();

    var $panels = $('.slider .scrollContainer > div');
    var $container = $('.slider .scrollContainer');

    var total_width = 0;
    for (j = 0; j < $panels.length; j++) {
        total_width += $panels[j].offsetWidth;
    }

    $panels.css({
        'float': 'left',
        'position': 'relative'
    });

    $(".slider").data("currentlyMoving", false);

    $container
		.css('width', total_width + 100)
		.css('left', "0px");

    var scroll = $('.slider .scroll').css('overflow', 'hidden');

    function change(direction) {

        if ((direction && !(curPanel < totalPanels)) || (!direction && (curPanel <= 1))) { return false; }

        if (($(".slider").data("currentlyMoving") == false)) {

            $(".slider").data("currentlyMoving", true);

            var next = direction ? curPanel + 1 : curPanel - 1;
            var c_panel = next >= $panels.length ? $panels.length - 1 : next < 0 ? 0 : next;
            var leftValue = $(".scrollContainer").css("left");
            var movement = direction ? parseFloat(leftValue, 10) - $panels[c_panel].clientWidth : parseFloat(leftValue, 10) + $panels[c_panel].clientWidth;

            $(".scrollContainer")
				.stop()
				.animate({
				    "left": movement
				}, function() {
				    $(".slider").data("currentlyMoving", false);
				});

            curPanel = next;
            $("#panel_" + (curPanel + 1)).unbind();
            $("#panel_" + (curPanel + 1)).click(function() { change(true); });
            $("#panel_" + (curPanel - 1)).unbind();
            $("#panel_" + (curPanel - 1)).click(function() { change(false); });
            $("#panel_" + curPanel).unbind();
        }
    }

    var curPanel = 3;

    $("#panel_" + (curPanel + 1)).click(function() { change(true); });
    $("#panel_" + (curPanel - 1)).click(function() { change(false); });
    $(".right").click(function() { change(true); });
    $(".left").click(function() { change(false); });

});