url = "engine/BuShoppingCart/actions.php";


function removeFromCart(id) {
    window.status = "Please wait...";
    document.body.style.cursor = "wait";

    var pars = {action: "remove", id: id};

    var myAjax = new Ajax.Request(url, {
        method: "post",
        parameters: pars,
        encoding: "windows-1251",
        onComplete: function(response) {
            updateElement("sCart");
            updateElement("rightsideCart");
            window.status = "Done";
            document.body.style.cursor = "default";
        }
    });
}

function addToCart(id) {
    window.status = "Please wait...";
    document.body.style.cursor = "wait";

    var pars = {action: "add", id: id};

    var myAjax = new Ajax.Request(url, {
        method: "post",
        parameters: pars,
        encoding: "windows-1251",
        onComplete: function(response) {
            updateElement("sCart");
            updateElement("rightsideCart");
            window.status = "Done";
            document.body.style.cursor = "default";
        }
    });
}

function onCheckBoxClick(arg) {
    var id = arg.id;

    var pars = {action: "isInCart", id: id};

    var myAjax = new Ajax.Request(url, {
        method: "post",
        parameters: pars,
        encoding: "windows-1251",
        onComplete: function(response) {
            if(response.responseText.indexOf("isInCart_" + id) == -1) {
                addToCart(id);
            } else {
                removeFromCart(id);
            }
        }
    });
}

/**
 * запросить новое содержимое для элемента с id
 * @param element_id
 */
function updateElement(element_id) {
    var element = $(element_id)
    if(element == null) return;

    var pars = {action: element_id};
    var myAjax = new Ajax.Request(url, {
        method: "post",
        parameters: pars,
        encoding: "windows-1251",
        onComplete: function(response) {
            element.update(response.responseText);
        }
    });
}

function setCatrQuantity(id, qty) {
    var pars = {action: "setCatrQuantity", id: id, qty: qty};

    var myAjax = new Ajax.Request(url, {
        method: "post",
        parameters: pars,
        encoding: "windows-1251",
        onComplete: function(response) {
            // do nothing
        }
    });
}

var qtyFieldPref = "qtyField_"; // префикс id текстового поля количества конкретного плаката в корзине

function plusQuantity(id) {
    var eID = qtyFieldPref + id;
    var element = $(eID);

    if(isNaN(parseInt(element.value))) element.value = 1;

    element.value = parseInt(element.value) + 1;
    if(parseInt(element.value) > 999) element.value = 999;

    setCatrQuantity(id, element.value);
}

function minusQuantity(id) {
    var eID = qtyFieldPref + id;
    var element = $(eID);

    if(isNaN(parseInt(element.value))) element.value = 1;

    element.value = parseInt(element.value) - 1;
    if(parseInt(element.value) < 1) element.value = 1;

    setCatrQuantity(id, element.value);
}

function qtyFieldOnKeyUp(id) {
    var eID = qtyFieldPref + id;
    var element = $(eID);

    if(isNaN(parseInt(element.value))) element.value = 1;
    if(parseInt(element.value) < 1) element.value = 1;
    if(parseInt(element.value) > 999) element.value = 999;

    setCatrQuantity(id, element.value);
}
