﻿$shop = {
    _shopHandler: '/Handlers/Basket.ashx',

    setShopHandler: function (newShopHandler) {
        $shop._shopHandler = newShopHandler;
    },

    addToBasket: function (basketType, basketDom, data) {
        //data - {param:value, param2:value}
        $server.Send($shop._shopHandler + "?basketType=" + basketType + "&cmdType=addToBasket", $shop.endAddToBasket.bind({ basketDom: basketDom }), null, data, true);
    },
    endAddToBasket: function (res) {
        this.basketDom.innerHTML = res.responseText;
        $utils.delivery.refill();
    },
    changeCountInCart: function (basketType, basketDom, cartDom, data) {
        //data - {param:value, param2:value}
        $server.Send($shop._shopHandler + "?basketType=" + basketType + "&cmdType=changeCountInCart", $shop.endChangeInCart.bind({ basketDom: basketDom, cartDom: cartDom }), null, data, true);
    },
    clearCart: function (basketType, basketDom, cartDom, data) {
        //data - {param:value, param2:value}
        $server.Send($shop._shopHandler + "?basketType=" + basketType + "&cmdType=clearBasket", $shop.endChangeInCart.bind({ basketDom: basketDom, cartDom: cartDom }), null, data, true);
    },
    removeFromBasket: function (basketType, basketDom, cartDom, data) {
        //data - {param:value, param2:value}
        $server.Send($shop._shopHandler + "?basketType=" + basketType + "&cmdType=removeFromBasket", $shop.endChangeInCart.bind({ basketDom: basketDom, cartDom: cartDom }), null, data, true);
    },
    endChangeInCart: function (res) {
        var result = res.responseText.split("<{@|@}>");
        if (this.basketDom && this.basketDom.innerHTML)
            this.basketDom.innerHTML = result[0];
        if (this.cartDom && this.cartDom.innerHTML)
            this.cartDom.innerHTML = result[1];
        $utils.delivery.refill();
    }

}
