PageSourceSearch

https://top-calendar.ru/bitrix/templates/.default/components/bitri…/cart/script.js?17713967735671

js top-calendar.ru collected 2026-10-08 23:08:44 UTC 5,671 bytes, 148 lines download raw bytes

1$(document).ready(function() {
2    var body = $("body");
3
4    body.on("click", ".js-delete-item", function(e) {
5        e.preventDefault();
6
7        $(this).parents('tr').addClass('load');
8
9        var id = $(this).data("id");
10        cartProcessor({method: "delete", cartItemId: id});
11    });
12
13    body.on("click", ".js-lineFrom-plus", function(e) {
14        e.preventDefault();
15
16        $(this).parents('tr').addClass('load');
17
18        var parent = $(this).parents(".js-lineFrom");
19        var id = parent.data("productid");
20        var cartId = $(this).parents(".js-lineFrom").attr("data-id");
21        var block = parent.data("block");
22        var pack = parent.data("pack");
23
24        var blockHalf = block / 2;
25        if(pack > 0) {
26            blockHalf = pack;
27        }
28
29        cartProcessor({method: "add", productId: id, productCount: blockHalf, cartItemId: cartId});
30    });
31
32    body.on("click", ".js-lineFrom-minus", function(e) {
33        e.preventDefault();
34
35        $(this).parents('tr').addClass('load');
36
37        var parent = $(this).parents(".js-lineFrom");
38        var id = parent.data("id");
39        var block = parent.data("block");
40        var pack = parent.data("pack");
41
42        var blockHalf = block / 2;
43        if(pack > 0) {
44            blockHalf = pack;
45        }
46
47        var quantity = parent.find(".js-quantity").val();
48        quantity = quantity - blockHalf;
49        cartProcessor({method: "update", cartItemId: id, productCount: quantity});
50    });
51
52    body.on("change", ".js-quantity", function(e) {
53        e.preventDefault();
54
55        $(this).parents('tr').addClass('load');
56
57        var parent = $(this).parents(".js-lineFrom");
58        var id = parent.data("id");
59        var pack = parent.data("pack");
60
61        var quantity = $(this).val();
62        if(pack > 0) {
63            if(quantity < pack && quantity != 0) {
64                quantity = pack;
65            }
66            else if(quantity % pack > 0) {
67                quantity = Math.round(quantity / pack) * pack;
68            }
69        }
70
71        cartProcessor({method: "update", cartItemId: id, productCount: quantity});
72    });
73
74    body.on("click", ".js-clean-cart", function(e) {
75        e.preventDefault();
76
77        cartProcessor({method: "deleteAll"});
78    });
79
80    body.on('click', '.cartFooter-btn', function (){
81        $('.js-loadPopup .js-loadText').html('<strong>Пожалуйста, подождите.</strong><br>Осуществляется переход к оформлению заказа...');
82        $('.js-loadPopup').show();
83    });
84});
85
86function updateCartTotal(sum, weight) {
87    $('.js-cartTotalWeight').html(weight + ' кг.');
88    $('.js-cartTotalPrice').html(sum);
89}
90
91function cartProcessor(params) {
92    params.updateHeaderCart = "Y";
93    params.updateCart = "Y";
94
95    if (params.method == 'deleteAll') {
96        $('.cartBlock, .cartFooter').addClass('load');
97
98        $('.js-loadPopup .js-loadText').html('<strong>Пожалуйста, подождите.</strong><br>Идет удаление товаров из корзины...');
99        $('.js-loadPopup').show();
100    }
101
102    $.ajax({
103        type: "POST",
104        url: "/ajax/cartProcessor.php",
105        data: params,
106        beforeSend: function() {},
107        success: function(data) {
108            var data = jQuery.parseJSON(data);
109            if(data.status == "success") {
110                // updateHeaderCart();
111                // updateCart();
112                //$(".js-cart").html(data.data.cart);
113                $(".navCart").html(data.data.header_cart);
114
115                if (data.method == 'delete') {
116                    $('.js-delete-item[data-id="' + data.id + '"]').parents('tr').hide();
117                    updateCartTotal(data.data.cart.PRICE, data.data.cart.WEIGHT);
118                } else if (data.method == 'deleteAll') {
119                    $('.js-loadPopup').hide();
120                    $(".js-cart").html('<h1 class="pageTitle">Корзина</h1>Ваша корзина пуста');
121                } else if (data.method == 'add') {
122                    var tr = $('.js-delete-item[data-id="' + data.data.cart.PRODUCT.OLD_ID + '"]').parents('tr');
123
124                    tr.removeClass('load');
125
126                    tr.find('.js-quantity').val( parseInt(data.data.cart.PRODUCT.QUANTITY) );
127                    tr.find('.js-itemTotalSum').html(data.data.cart.PRODUCT.PRICE);
128
129                    tr.find('.js-lineFrom').attr('data-id', data.data.cart.PRODUCT.ID);
130                    tr.find('.js-lineFrom input').attr('name', 'item-'+data.data.cart.PRODUCT.ID);
131                    tr.find('.js-delete-item').attr('data-id', data.data.cart.PRODUCT.ID);
132                    tr.find('.js-w-' + data.data.cart.PRODUCT.ID).html(data.data.cart.PRODUCT.WEIGHT);
133
134                    updateCartTotal(data.data.cart.PRICE, data.data.cart.WEIGHT);
135                } else if (data.method == 'update') {
136                    var tr = $('.js-delete-item[data-id="' + data.data.cart.PRODUCT.ID + '"]').parents('tr');
137                    tr.removeClass('load');
138                    tr.find('.js-quantity').val( parseInt(data.data.cart.PRODUCT.QUANTITY) );
139                    tr.find('.js-itemTotalSum').html(data.data.cart.PRODUCT.PRICE);
140                    
141                    tr.find('.js-w-' + data.data.cart.PRODUCT.ID).html(data.data.cart.PRODUCT.WEIGHT);
142                    updateCartTotal(data.data.cart.PRICE, data.data.cart.WEIGHT);
143                }
144            }
145        },
146        error: function(error) {}
147    });
148}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.