jQuery.ajaxSetup({ 
  'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")} 
})

var view_port_position = 0;

function openDrawer(product_id, column_id) {
    if ($('#info_' + column_id).css('display') != 'none') { 
        $('#info_' + column_id).blindLeft(1000);
        window.setTimeout("getProductInfo(" + product_id + "," + column_id + ")", 1000);
    } else {
        getProductInfo(product_id, column_id);
    }
    $('#view_port_controls').hide();
}

function closeDrawer(column_id) {
    $('#info_' + column_id).blindLeft(1000);
    window.setTimeout("$('#products').animate({marginLeft:-" + view_port_position +"'px'},'slow')", 1000);
    $('#view_port_controls').show();
}

function getProductInfo(product_id, column_id) {
    if (column_id > 0) {
        var shift = column_id * 300;
        $('#products').animate({marginLeft:-shift + "px"}, 0);
        if (shift != view_port_position) {
            view_port_position = shift;
        }
    }
    $.ajax({
        url: "/products/show/" + product_id + "?col=" + column_id,
        dataType: "script",
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Accept", "text/javascript");
        }, 
        complete: function(xhr) {
            $('#info_' + column_id).blindRight(1000);
        },
        cache: false
    });
}

function shiftViewPortRight(product_count) {
    var max = product_count * 300 - 300;
    if (view_port_position >= 0 && view_port_position < max) {
        view_port_position = view_port_position + 300;
        $('#products').animate({marginLeft:-view_port_position + "px"}, 0);
    }
}

function shiftViewPortLeft() {
    if (view_port_position > 0) {
        view_port_position = view_port_position - 300;
        $('#products').animate({marginLeft:-view_port_position + "px"}, 0);
    }
}