PageSourceSearch

https://www.mirkrasok.ru/local/templates/mirkrasok_2026v2/componen…/template2026/script.js?178150526313282

js mirkrasok.ru collected 2026-10-03 20:58:40 UTC 13,282 bytes, 420 lines download raw bytes

1const notificationProduct = {
2    show: function () {
3        const notificationProductAdd = document.querySelector('[data-js="show-added-product"]');
4
5        notificationProductAdd.classList.add('show-added');
6        setTimeout(() => {
7            notificationProductAdd.classList.remove('show-added');
8        }, 3000);
9    },
10};
11
12$(document).ready(function () {
13        $(document).on('click', '.complect.ajax .cet_brends-button', function () {
14            $(this).toggleClass('--open');
15            $(this).parent().toggleClass('--open');
16        });
17        
18		$(document).on('click', '.filter-tag', function () {
19            console.log(123);
20			var $block = $(this).closest('.slider-section"');
21			
22			
23			var catId = $(this).data('cat-id');
24			console.log(catId);
25			$block.find('.card-wrapper').each(function() {
26				if (catId == 0) {
27					$(this).removeClass('hidden');
28				} else {
29					var sectionIds = $(this).data('section-id');
30					// Используем регулярное выражение для поиска ID
31					var regex = new RegExp('\\b' + catId + '\\b');
32					var isVisible = regex.test(sectionIds);
33					$(this).toggleClass('hidden', !isVisible);
34				}
35			});
36			
37			if (catId == 0) {
38				$block.find('.c-favorite-box').removeClass('--open');
39				$block.find('.cet_brends-button').removeClass('--open');
40			} else {
41				$block.find('.c-favorite-box').addClass('--open');
42				$block.find('.cet_brends-button').addClass('--open');
43			}
44		});
45    
46});
47
48$(window).scroll(function(){
49        if($(this).scrollTop()>=100){
50			if($('#similar_block.ajax').length){
51				$('#similar_block.ajax').removeClass('ajax');
52                		var allData = $('#similar_block').data();
53				$.ajax({ type: 'POST', url: "/local/ajax_new/similar.php", data: {allData: allData},
54					error: function(data){
55					},
56					success:function(data){
57						$("#similar_block").html(data).fadeIn(0);
58					},
59					timeout: 5000
60				});
61			}
62			if($('#topsale_block.ajax').length){
63				$('#topsale_block.ajax').removeClass('ajax');
64                		var allData = $('#topsale_block').data();
65				$.ajax({ type: 'POST', url: "/local/ajax_new/topsale.php", data: {allData: allData},
66					error: function(data){
67					},
68					success:function(data){
69						$("#topsale_block").html(data).fadeIn(0);
70					},
71					timeout: 5000
72				});
73			}
74			if($('#by_now_block.ajax').length){
75				$('#by_now_block.ajax').removeClass('ajax');
76                		var allData = $('#by_now_block').data();
77				$.ajax({ type: 'POST', url: "/local/ajax_new/topsale.php", data: {allData: allData},
78					error: function(data){
79					},
80					success:function(data){
81						$("#by_now_block").html(data).fadeIn(0);
82					},
83					timeout: 5000
84				});
85			}
86			if($('#main_popular.ajax').length){
87				$('#main_popular.ajax').removeClass('ajax');
88                		var allData = $('#main_popular').data();
89				$.ajax({ type: 'POST', url: "/local/ajax_new/main_popular.php", data: {allData: allData},
90					error: function(data){
91					},
92					success:function(data){
93						$("#main_popular").html(data).fadeIn(0);
94    if (window.updateSlidersAfterAjax) {
95      window.updateSlidersAfterAjax();
96    }
97					},
98					timeout: 5000
99				});
100			}
101			if($('#upsale_block.ajax').length){
102				$('#upsale_block.ajax').removeClass('ajax');
103                		var allData = $('#upsale_block').data();
104				$.ajax({ type: 'POST', url: "/local/ajax_new/upsale.php", data: {allData: allData},
105					error: function(data){
106					},
107					success:function(data){
108						$("#upsale_block").html(data).fadeIn(0);
109					},
110					timeout: 5000
111				});
112			}
113
114
115			if($('#cross_block.ajax').length){
116				$('#cross_block.ajax').removeClass('ajax');
117                		var allData = $('#cross_block').data();
118				$.ajax({ type: 'POST', url: "/local/ajax_new/cross.php", data: {allData: allData},
119					error: function(data){
120					},
121					success:function(data){
122						$("#cross_block").html(data).fadeIn(0);
123					},
124					timeout: 5000
125				});
126			}
127
128			if($('#autocross_block.ajax').length){
129				$('#autocross_block.ajax').removeClass('ajax');
130                		var allData = $('#autocross_block').data();
131				$.ajax({ type: 'POST', url: "/local/ajax_new/autocross.php", data: {allData: allData},
132					error: function(data){
133					},
134					success:function(data){
135						$("#autocross_block").html(data).fadeIn(0);
136					},
137					timeout: 5000
138				});
139			}
140
141			if($('#viewed_block.ajax').length){
142				$('#viewed_block.ajax').removeClass('ajax');
143                		var allData = $('#viewed_block').data();
144console.log('viewed_block');
145console.log(allData);
146				$.ajax({ type: 'POST', url: "/local/ajax_new/ajax_viewed.php ", data: {allData: allData},
147					error: function(data){
148					},
149					success:function(data){
150						$("#viewed_block").html(data).fadeIn(0);
151					},
152					timeout: 5000
153				});
154			}
155
156	}
157});
158
159
160			if($('#cross_block.ajax').length){
161				$('#cross_block.ajax').removeClass('ajax');
162                		var allData = $('#cross_block').data();
163				$.ajax({ type: 'POST', url: "/local/ajax_new/cross.php", data: {allData: allData},
164					error: function(data){
165					},
166					success:function(data){
167						$("#cross_block").html(data).fadeIn(0);
168					},
169					timeout: 5000
170				});
171			}
172			if($('#autocross_block.ajax').length){
173				$('#autocross_block.ajax').removeClass('ajax');
174                		var allData = $('#autocross_block').data();
175				$.ajax({ type: 'POST', url: "/local/ajax_new/autocross_block.php", data: {allData: allData},
176					error: function(data){
177					},
178					success:function(data){
179						$("#autocross_block").html(data).fadeIn(0);
180					},
181					timeout: 5000
182				});
183			}
184
185
186var obBasket = {
187
188    setPriceType: function () {
189
190        var iPriceID = $("[data-small-basket] [data-price-type]").data("price-type");
191        var iPriceTotal = $("[data-small-basket] [data-rrc-price]").data("rrc-price");
192
193        var $items = $("[data-price-id]").removeClass("price_active").addClass("price_hidden");
194        $("[data-price-id='" + iPriceID + "']").addClass("price_active").removeClass("price_hidden");
195
196        $("[data-price-id]").each(function (index, el) {
197            if ($(el).find(".new_price, .price").hasClass('set-price-cancel')) {
198                $(el).removeClass("price_active").addClass("price_hidden");
199                $(el).parent().find("[data-price-id]:first").addClass("price_active").removeClass("price_hidden");
200            }
201        });
202
203        if (typeof obDetailProduct != "undefined") {
204            obDetailProduct.setSlider(iPriceTotal);
205        }
206        if (typeof obPriceList != "undefined") {
207            obPriceList.recount();
208        }
209        var $prices = $("[data-prices]");
210        if ($prices.length) {
211            $prices.find("[data-list-price-id]").removeClass("active");
212            $prices.find("[data-list-price-id='" + iPriceID + "']").addClass("active");
213
214        }
215    },
216
217    updateProperties: function (iBasketID, iColorID) {
218        if (!(iBasketID && iColorID)) return;
219        var data = {
220            BASKET_ID: iBasketID,
221            COLOR_ID: iColorID,
222            action: "update_properties"
223        };
224
225        var bBigBasket = $("[data-big-basket]").length ? 1 : 0;
226        if (bBigBasket) {
227            data.BIG_BASKET = 1;
228        }
229        var obBaskets = $("[data-small-basket],[data-big-basket]");
230
231        $.ajax({
232            type: "POST",
233            url: "/local/components/art-fresh/sale.basket/ajax.php",
234            data: data,
235            timeout: 15000,
236
237            beforeSend: function () {
238                obBaskets.addClass("loading");
239            },
240            success: function (data) {
241                var BoxBasket = $("[data-box-basket]");
242                if(!BoxBasket.hasClass("active"))
243                {
244                    BoxBasket.addClass("active");
245                }
246                var $clone = $("[data-basket-item='" + iBasketID + "'] [data-clone-item]");
247                if ($clone.length) {
248                    $clone.removeClass("disabled");
249                }
250                obBaskets.removeClass("loading");
251                $(self).removeClass("loading");
252                obBasket.changeBasket(data);
253            },
254            error: function () {
255                obBaskets.removeClass("loading");
256            }
257        });
258    },
259
260    refreshBasket: function (self, sAction) {
261        'use strict';
262
263        var $obQuantity = $(self);
264
265        if ($obQuantity.length) {
266            var obData = $obQuantity.data();
267            if (!!obData.quantity) {
268                if (!IntVal($(self).val())) {
269                    return;
270                }
271            }
272
273        }
274
275        if (self != null && self.tagName == "FORM") {
276            var Form = $(self);
277        } else {
278            if ($(self).hasClass("loading")) return false;
279            $(self).addClass("loading");
280            var Form = $(self).parents("form");
281        }
282
283        var Data = Form.serializeArray();
284        console.log(Data)
285        var bBigBasket = $("[data-big-basket]").length ? 1 : 0;
286        var bBigBasketNew = $("[data-big-basket-new]").length ? 1 : 0;
287        var dFixedBasket = $("[data-fixed-basket]").length ? 1 : 0;
288        var dPopupBasket = $("[data-popup-basket]").length ? 1 : 0;
289
290        if (bBigBasket) {
291            Data[Data.length] = {"name": "BIG_BASKET", "value": 1};
292        } else if (bBigBasketNew) {
293            Data[Data.length] = {"name": "BIG_BASKET", "value": 1};
294            Data[Data.length] = {"name": "COLORATE_USE", "value": 1};
295            Data[Data.length] = {"name": "basket_new", "value": "Y"};
296        }
297        if (dFixedBasket) {
298            Data[Data.length] = {"name": "FIXED_BASKET", "value": 1};
299        }
300        if (dPopupBasket) {
301            Data[Data.length] = {"name": "POPUP_BASKET", "value": 1};
302        }
303
304        if (!sAction) sAction = "refresh";
305        Data[Data.length] = {"name": "action", "value": sAction};
306        var obBaskets = $("[data-small-basket],[data-big-basket]");
307
308        $.ajax({
309            type: "POST",
310            url: "/local/components/art-fresh/sale.basket/ajax.php",
311            data: Data,
312            timeout: 15000,
313            beforeSend: function () {
314                if (bBigBasket) {
315                    //Form.block({center:true})
316                }
317                obBaskets.addClass("loading");
318            },
319            success: function (data) {
320                obBaskets.removeClass("loading");
321                $(self).removeClass("loading");
322                obBasket.changeBasket(data);
323                if (typeof obBigBasket !== 'undefined') {
324                    obBigBasket.changeBasket(data);
325                }
326            },
327            error: function () {
328                obBaskets.removeClass("loading");
329            }
330        });
331        return false;
332    },
333
334    changeBasket: function (data) {
335        'use strict';
336
337        var arBaskets = [
338            "[data-basket-xs]",
339            "[data-fixed-basket]",
340            "[data-black-friday]",
341            "[data-popup-basket]",
342            "[data-comparsion-parent]",
343            "[data-small-basket-droppable] [data-price]",
344            "[data-small-basket-nodroppable]",
345            "[data-big-basket] [data-price]",
346            "[data-big-basket] [data-bonuses]",
347            "[data-big-basket] [data-next-price-type]",
348            "[data-big-basket] [data-previleges]",
349            ".sub_tovar2[data-item-id]",
350        ];
351
352        var arCountResponse = [
353            "[data-small-basket-droppable]",
354            "[data-big-basket]",
355            "[data-fixed-basket]"
356
357        ];
358
359        var arPrices = [
360            '[data-basket-price]',
361            '[data-rrc-price]',
362            '[data-bonus-price]'
363        ];
364        for (var i in arBaskets) {
365            var sKey = arBaskets[i];
366
367            var $obFrom = $(sKey);
368            var $obTo = $(data).find(sKey);
369            if ($obFrom.length && $obTo.length) {
370                $obFrom[0].innerHTML = $obTo[0].innerHTML;
371                $obFrom.attr("class", $obTo.attr("class"));
372            }
373        }
374
375        for (var i in arPrices) {
376
377            var sKey = arPrices[i];
378
379            var $obFrom = $(sKey);
380
381
382            $obFrom.each(function () {
383                var $this = $(this);
384                var itemId = $this.data("item-id");
385                var $obTo = $(data).find(sKey + "[data-item-id='" + itemId + "']");
386
387                if ($this.length && $obTo.length && itemId) {
388                    $this[0].innerHTML = $obTo[0].innerHTML;
389                }
390
391
392            });
393
394
395        }
396
397        for (var i in arCountResponse) {
398            var sKey = arCountResponse[i];
399
400            var $obFrom = $(sKey);
401            var $obTo = $(data).find(sKey);
402            if ($obFrom.length && $obTo.length) {
403                if (IntVal($obFrom.find("[data-count]").data("count")) != IntVal($obTo.find("[data-count]").data("count"))) {
404                    $obFrom[0].innerHTML = $obTo[0].innerHTML;
405                }
406            }
407
408        }
409        obDroppable.bind();
410        obBasket.setPriceType();
411        obComparsion.bind();
412
413        if (typeof obBigBasket != "undefined") {
414            const bigBasket = '[data-big-basket-new]';
415
416            $(document).find(bigBasket).replaceWith($(data).find(bigBasket))
417        }
418    },
419
420};

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.