PageSourceSearch

https://lider35.ru/local/templates/ia_pegas_lider_desktop/js/script.js?176251494148768

js lider35.ru collected 2026-10-09 00:03:30 UTC 48,768 bytes, 1,247 lines download raw bytes

1// fancy callbacks
2function RSAL_FancyCloseAfterRequest(delay) {
3    if (delay < 1)
4        delay = RSAL_FancyCloseDelay;
5    setTimeout(function () {
6        $.fancybox.close();
7    }, delay);
8}
9
10function RSAL_HandlerFancyOnBeforeShow() {
11    if ($('.fancybox-inner').find('.errortext').length > 0)
12        $('.fancybox-inner').find('.errortext').hide();
13    if ($('.fancybox-inner').find('.notetext').length > 0)
14        $('.fancybox-inner').find('.notetext').hide();
15    if ($('.fancybox-inner').find('.reviews-note-error').length > 0)
16        $('.fancybox-inner').find('.reviews-note-error').hide();
17}
18
19function RSAL_HandlerFancyOnAfterClose() {
20    if (RSAL_FancyReloadPageAfterClose) {
21        window.location.reload();
22    }
23}
24
25// /fancy callbacks
26
27// Area2Darken
28function RSAL_ShowHideModueLoadingIcon() {
29    if ($('#mouse_loading_icon').css('display') == "block") {
30        $('#mouse_loading_icon').css('display', 'none');
31    } else {
32        $('#mouse_loading_icon').css('display', 'block');
33    }
34}
35
36// Area2Darken
37function RSAL_Area2Darken(areaObj) {
38    if (!areaObj.hasClass('areadarken')) {
39        areaObj.addClass('areadarken').css({"position": "relative"}).append('<div class="area_darken"></div>');
40    } else {
41        areaObj.removeClass('areadarken').removeAttr('style').find('.area_darken').remove();
42    }
43}
44
45// slider
46function RSAL_SliderClickPrev($btn) {
47    if (!$btn.parents('.main_slider').hasClass('sliding')) {
48        $btn.parents('.main_slider').addClass('sliding');
49        var delay = 400;
50        var itemW = parseInt($btn.parents('.main_slider').data('itemw'));
51        var slideOn = parseInt($btn.parents('.main_slider').data('slideon'));
52        slideOn = (slideOn > 0 ? slideOn : 1);
53        var showInTime = parseInt($btn.parents('.main_slider').data('showintime'));
54        var $slider = $btn.parents('.main_slider').find('.main_slider-slider_inner');
55        var elementsCount = parseInt($slider.css('width')) / itemW;
56        var hidedLeftCount = Math.abs(parseInt($slider.css('left')) / itemW);
57        var hidedRightCount = elementsCount - showInTime - hidedLeftCount;
58        if (hidedLeftCount < slideOn)
59            slideOn = hidedLeftCount;
60        $slider.animate({left: "+=" + (itemW * slideOn)}, delay);
61        hidedLeftCount = Math.abs(parseInt($slider.css('left')) / itemW);
62        hidedRightCount = elementsCount - showInTime - hidedLeftCount;
63        if (hidedRightCount == 0)
64            $btn.parents('.main_slider').find('.main_slider-arrow_next').removeClass('disabled');
65        if (hidedLeftCount == 0 || hidedLeftCount == slideOn)
66            $btn.addClass('disabled');
67        setTimeout(function () {
68            $btn.parents('.main_slider').removeClass('sliding');
69        }, 400);
70    }
71}
72
73function RSAL_SliderClickNext($btn) {
74    if (!$btn.parents('.main_slider').hasClass('sliding')) {
75        $btn.parents('.main_slider').addClass('sliding');
76        var delay = 400;
77        var itemW = parseInt($btn.parents('.main_slider').data('itemw'));
78        var slideOn = parseInt($btn.parents('.main_slider').data('slideon'));
79        slideOn = (slideOn > 0 ? slideOn : 1);
80        var showInTime = parseInt($btn.parents('.main_slider').data('showintime'));
81        var $slider = $btn.parents('.main_slider').find('.main_slider-slider_inner');
82        var elementsCount = parseInt($slider.css('width')) / itemW;
83        var hidedLeftCount = Math.abs(parseInt($slider.css('left')) / itemW);
84        var hidedRightCount = elementsCount - showInTime - hidedLeftCount;
85        if (hidedRightCount < slideOn)
86            slideOn = hidedRightCount;
87        $slider.animate({left: "-=" + (itemW * slideOn)}, delay);
88        hidedLeftCount = Math.abs(parseInt($slider.css('left')) / itemW);
89        hidedRightCount = elementsCount - showInTime - hidedLeftCount;
90        if (hidedLeftCount == 0)
91            $btn.parents('.main_slider').find('.main_slider-arrow_prev').removeClass('disabled');
92        if (hidedRightCount == 0 || hidedRightCount == slideOn)
93            $btn.addClass('disabled');
94        setTimeout(function () {
95            $btn.parents('.main_slider').removeClass('sliding');
96        }, 400);
97    }
98}
99
100// /slider
101
102// set liked
103function RSAL_SetLiked() {
104    //for (element_id in RSAL_LIKES) {
105    for (element_id of RSAL_LIKES) {
106        // console.log(element_id)
107        if (/*RSAL_LIKES[element_id] == element_id && */$('.js-element-id' + element_id).find('.js_likes_link').length > 0)
108            $('.js-element-id' + element_id).find('.js_likes_link').addClass('liked liked-2');
109
110    }
111    $('.h-fav .count').html(RSAL_LIKES.length);
112}
113
114// set compared
115function RSAL_SetCompared() {
116    for (element_id in RSAL_COMPARE) {
117        if (RSAL_COMPARE[element_id] == "Y" && $('.js-element-id' + element_id).find('.js_add2compare').length > 0)
118            $('.js-element-id' + element_id).find('.js_add2compare').addClass('compared');
119    }
120}
121
122// set in basket
123function RSAL_SetInBasket() {
124    $('.js-buyform').removeClass('inbasket');
125    for (element_id in RSAL_INBASKET) {
126        if (RSAL_INBASKET[element_id]['IN_BASKET'] == "Y" && $(".js-buyproductid[value='" + element_id + "']").length > 0) {
127            let $byForm = $('.js-buyproductid[value="' + element_id + '"]').parents('.js-buyform').addClass('inbasket');
128            // $('.js-buyproductid[value="' + element_id + '"]').parents('.js-buyform').addClass('inbasket');
129
130
131            //$byForm.val(RSAL_INBASKET[element_id]['QUANTITY']);
132            // console.log($byForm);
133            $('[data-prod-quantity]', $byForm).val(parseInt(RSAL_INBASKET[element_id]['QUANTITY']));
134        }
135    }
136}
137
138$(document).ready(function () {
139    $.jGrowl.defaults.life = 5000;
140    $.jGrowl.defaults.closerTemplate = '<div>скрыть все уведомления</div>';
141
142    var $ajaxLoader = BX('ajax-preloader-wrap');
143    BX.showWait = function (node, msg) {
144        BX.style($ajaxLoader, 'display', 'block');
145        BX.addClass($ajaxLoader, 'ajax-preloader--animated');
146    };
147    BX.closeWait = function (node, obMsg) {
148        BX.style($ajaxLoader, 'display', 'none');
149        BX.removeClass($ajaxLoader, 'ajax-preloader--animated');
150    };
151
152    var productsSlider = $('.main_slider-slider_inner:not(.ajax-process)');
153    if (productsSlider.length) {
154        productsSlider.owlCarousel({
155            loop: false,
156            margin: 10,
157            items: 4,
158            nav: true,
159            dots: false,
160            navText: ["", ""],
161            //autoplay:true,
162            // autoplayTimeout:3000,
163            //autoplayHoverPause:true
164        });
165    }
166
167
168    // fancybox windows
169    /* $('.js_fancy_window').fancybox({
170       openEffect: 'fade',
171       closeEffect: 'fade',
172       maxWidth: 800,
173       maxHeight: 800,
174       autoSize: true,
175       closeClick: false,
176       title: null,
177       padding: 0,
178       beforeShow: function () {RSAL_HandlerFancyOnBeforeShow();},
179       afterShow: function () {
180         if (typeof Recaptchafree != "undefined") Recaptchafree.reset();
181       },
182       afterClose: function () {RSAL_HandlerFancyOnAfterClose();}
183     });*/
184    // /fancybox windows
185
186    // Click protection
187    $(document).on('click', '.click_protection', function (e) {
188        e.stopImmediatePropagation();
189        console.warn('Click protection');
190        //alert( BX.message("RSAL_JS_TO_MACH_CLICK_LIKES") );
191        return false;
192    });
193    // /Click protection
194
195    // likes
196    var favPopup = $("#fav-popup"), favPopupClose = $("#fav-popup-close");
197    favPopupClose.on('click', function () {
198        favPopup.removeClass('show');
199        return false;
200    });
201    $(document).on('click', '.js_likes_link', function (e) {
202        var $linkObj = $(this);
203        $linkObj.addClass('click_protection');
204        var element_id = $linkObj.parents('.js-element').data('elementid');
205        var url = RSAL_SITE_DIR + 'ajax/ajax.php?action=likes&element_id=' + element_id;
206        if (element_id > 0) {
207            $.getJSON(url, {}, function (json) {
208                if (json.TYPE == "OK") {
209                    if (json.MESSAGE == "added") {
210                        //RSAL_LIKES[element_id] = element_id;
211                        RSAL_LIKES.push(element_id);
212                        $('.js-element-id' + element_id).find('.js_likes_link').addClass('liked').find('.likes_count').html(json.COUNT);
213                    } else {
214                        //delete RSAL_LIKES[element_id];
215                        if (RSAL_LIKES.indexOf(element_id)) {
216                            RSAL_LIKES.splice(RSAL_LIKES.indexOf(element_id), 1);
217                        }
218                        $('.js-element-id' + element_id).find('.js_likes_link').removeClass('liked').find('.likes_count').html(json.COUNT);
219                    }
220                    if (!json.FAV_COUNT) json.FAV_COUNT = 0;
221                    console.log(json.FAV_COUNT);
222                    $('.h-fav .count').html(json.FAV_COUNT);
223                } else {
224                    console.warn(json.MESSAGE);
225                }
226                if (json.FAV_COUNT > 0) {
227                    favPopup.addClass('show').find('.count').text(json.FAV_COUNT);
228                } else {
229                    favPopup.removeClass('show').find('.count').text('0');
230                }
231                setTimeout(function () {
232                    $linkObj.removeClass('click_protection');
233                }, RSAL_ClickProtectionDelay);
234            }).fail(function () {
235                console.warn('can\'t load json likes');
236                setTimeout(function () {
237                    $linkObj.removeClass('click_protection');
238                }, RSAL_ClickProtectionDelay);
239            });
240        } else {
241            console.warn('empty param element_id');
242            setTimeout(function () {
243                $linkObj.removeClass('click_protection');
244            }, RSAL_ClickProtectionDelay);
245        }
246        return false;
247    });
248    // /likes
249
250    // a -> submit form
251    $(document).on('click', 'form a.submit', function () {
252        $(this).parents('form').find('input[type="submit"]').trigger('click');
253        return false;
254    });
255    // /a -> submit form
256
257    // ajax links in fancy
258    $(document).on('click', '.js_ajax_link', function () {
259        //console.log( 'ajax links in fancy' );
260        var href = $(this).attr('href');
261        var parentselector = $(this).data('parentselector');
262        if (href != "" && $(parentselector).length > 0 && $(parentselector).parents('.fancybox-inner').length > 0) {
263            $.ajax({
264                type: "GET",
265                url: href,
266                data: "js_ajax_call=Y"
267            }).done(function (msg) {
268                $(parentselector).html(msg);
269                $.fancybox.reposition();
270                if (typeof Recaptchafree != "undefined") Recaptchafree.reset();
271            });
272        } else if (href != "") {
273            $.ajax({
274                type: "GET",
275                url: href,
276                data: "js_ajax_call=Y"
277            }).done(function (msg) {
278                $('.fancybox-inner').html(msg);
279                $.fancybox.reposition();
280                if (typeof Recaptchafree != "undefined") Recaptchafree.reset();
281            });
282        } else {
283            console.warn('can\'t load ajax link');
284        }
285        return false;
286    });
287
288    // /ajax links in fancy
289
290
291    function ajaxUpdateCart() {
292        $.ajax({
293            type: "GET",
294            url: "/ajax/2020/ajax-update-basket.php",
295            dataType: "json",
296            success: function (data, textStatus) {
297                $('#basket_top_panel-info .count').text(data.summProdQuantity);
298            },
299            complete: function (data, textStatus) {
300            }
301        })
302    }
303
304    // AJAX -> add2basket
305    $(document).on('submit', '.js-buyform', function () {
306        var $formObj = $(this);
307        var seriData = $(this).serialize();
308        var id = $formObj.find('.js-buyproductid').val();
309        var $prodQuantity = $('.prod-detail-quantity').val();
310        if ($prodQuantity > 0) {
311            seriData += '&quantity=' + $prodQuantity;
312        }
313        if ($("#mobile-manager").length) var url = RSAL_SITE_DIR + 'catalog/?new=Y&' + seriData + '&ajax_action=add2basket&pid=' + id + '&mm=' + $("#mobile-manager input:checked").val();
314        else if ($(".catalog-buyform").length) var url = RSAL_SITE_DIR + 'catalog/?new=Y&' + seriData + '&ajax_action=add2basket&pid=' + id + '&mm=1';
315        else var url = RSAL_SITE_DIR + 'catalog/?new=Y&' + seriData + '&ajax_action=add2basket&pid=' + id;
316        RSAL_Area2Darken($formObj);
317        RSAL_Area2Darken($('#h-cart'));
318
319        RSAL_ShowHideModueLoadingIcon();
320
321        $.ajax({
322            url: url,
323            dataType: "json",
324            type: "POST",
325            data: {},
326            cache: false,
327            success: function (data, textStatus, jqXHR) {
328                ajaxUpdateCart();
329                $formObj.addClass('inbasket');
330                $.jGrowl("Товар добавлен<br>в <a href='/personal/cart/'>корзину</a>", {theme: 'status'});
331            }
332        });
333
334        /*RSAL_ShowHideModueLoadingIcon();
335        $.colorbox({
336            inline: false,
337            href: url,
338            className: 'c-form add-to-cart c-form-' + id,
339            onComplete: function () {
340                ajaxUpdateCart();
341                $formObj.addClass('inbasket');
342                $.jGrowl("Товар добавлен в <a href='/personal/cart/'>корзину</a>", {theme: 'status'});
343                $.colorbox.resize();
344            }
345        });*/
346
347
348        //  RSAL_OffersExt_timeout_id = setTimeout(function () {
349
350
351        // $.get(url, {}, function (data) {//console.log(data);
352        //   RSAL_INBASKET[id] = "Y";
353        //   $formObj.addClass('inbasket');
354        //   if ($('#header').find('.js_basket_empty').length > 0) {
355        //     $('#header').find('.js_basket_empty').addClass('none2');
356        //     $('#header').find('.js_basket_nums_and_summ').removeClass('none2');
357        //   }
358        //   //$('#h-cart').html(data);
359        //
360        //
361        //   $.jGrowl("Товар добавлен в <a href='/personal/cart/'>корзину</a>", {theme: 'status'});
362        //   /*$.fancybox.open({
363        //     wrapCSS: 'popup-added',
364        //     padding: 0,
365        //     type: 'ajax',
366        //     //href: '#popup-added',
367        //     href: url,
368        //     maxWidth: 800}).resize();*/
369        //
370        //   $.colorbox({
371        //     inline:false,
372        //     href:url,
373        //     /*data:{WEB_FORM_ID:id, href: location.href, info: $ths.data("info"),title:$ths.data('title') }, */
374        //     className: 'c-form c-form-'+id,
375        //     onComplete:function () {
376        //
377        //     }
378        //   });
379        //
380        //   RSAL_Area2Darken($formObj);
381        //   RSAL_Area2Darken($('#h-cart'));
382        //   RSAL_ShowHideModueLoadingIcon();
383        // }).fail(function (data) {
384        //   RSAL_Area2Darken($formObj);
385        //   RSAL_Area2Darken($('#h-cart'));
386        //   RSAL_ShowHideModueLoadingIcon();
387        //   console.warn('can\'t load json add2basket');
388        // });
389        //  }, RSAL_RequestDelay);
390        return false;
391    });
392
393    function changeBasket(pid, count, action) {
394        $.ajax({
395            url: '/ajax/ajax-changeBasket.php',
396            dataType: "json",
397            type: "POST",
398            data: {
399                id: pid,
400                count: count,
401                action: action,
402            },
403            cache: false,
404            success: function (data, textStatus, jqXHR) {
405                if (data.ok == "Y") {
406                    $.jGrowl("Количество товара изменено.<br>В <a href='/personal/cart/'>корзину</a>", {theme: 'status'});
407                } else {
408                    $.jGrowl("Ошибка изменения количества товара", {theme: 'error'});
409                }
410            }
411        });
412    }
413
414    function deleteFromBasket(pid) {
415        if (pid.length && pid > 0) {
416            $.ajax({
417                url: '/ajax/ajax-changeBasket.php',
418                dataType: "json",
419                type: "POST",
420                data: {
421                    id: pid,
422                    action: 'delete',
423                },
424                cache: false,
425                success: function (data, textStatus, jqXHR) {
426                    if (data.ok == "Y") {
427                        $.jGrowl("Товар удален<br>из <a href='/personal/cart/'>корзины</a>", {theme: 'status'});
428                        $(".js-buyform" + pid).removeClass('inbasket');
429                    } else {
430                        $.jGrowl("Ошибка удаления товара", {theme: 'error'});
431                    }
432                }
433            });
434        } else {
435            $.jGrowl("Ошибка удаления товара", {theme: 'error'});
436        }
437    }
438
439    $("[data-prod-quantity]:not(.js-inited)").addClass("js-inited").on("change", function () {
440        let $this = $(this),
441            pid = $this.attr("data-pid"),
442            ratio = $this.attr("data-ratio"),
443            max = $this.attr("data-max"),
444            value = $this.val();
445
446        if (value < ratio) {
447            value = ratio
448            $this.val(value);
449        }
450        if (!!max && value >= parseFloat(max)) {
451            this._tippy?.show(); // это инстанс
452            tippy(this, {
453                content: 'В наличии только ' + max + 'шт.',
454                showOnCreate: true,
455            });
456        } else {
457            changeBasket(pid, value, 'update');
458        }
459    });
460
461    // /AJAX -> add2basket
462
463    // slider
464    $(document).on('click', '.main_slider-arrow_prev', function () {
465        if (!$(this).hasClass('disabled')) {
466            RSAL_SliderClickPrev($(this));
467        }
468        return false;
469    });
470    $(document).on('click', '.main_slider-arrow_next', function () {
471        if (!$(this).hasClass('disabled')) {
472            RSAL_SliderClickNext($(this));
473        }
474        return false;
475    });
476    // /slider
477
478    // tabs
479    $(document).on('click', '.js_tabs_header a', function () {
480        $(this).parents('.js_tabs_header').find('a').removeClass('select');
481        $(this).addClass('select')
482            .parents('.js_tabs').find('.js_tabs_content').removeClass('showed')
483            .parents('.js_tabs').find($(this).attr('href')).addClass('showed');
484        return false;
485    });
486    // /tabs
487
488    // AJAXPAGES
489    $(document).on('click', '.ajaxpages a', function () {
490        var $linkObj = $(this);
491        var ajaxurl = $linkObj.data('ajaxurl');
492        var ajaxpagesid = $linkObj.data('ajaxpagesid');
493        var navpagenomer = $linkObj.data('navpagenomer');
494        var navpagecount = $linkObj.data('navpagecount');
495        var navnum = $linkObj.data('navnum');
496
497        var nextpagenomer = parseInt(navpagenomer) + 1;
498        var url = "";
499
500        if ($('#' + ajaxpagesid).length > 0 && navpagenomer < navpagecount && parseInt(navnum) > 0 && ajaxurl != "") {
501            RSAL_Area2Darken($('#' + ajaxpagesid));
502            RSAL_Area2Darken($linkObj);
503            RSAL_ShowHideModueLoadingIcon();
504
505            if (ajaxurl.indexOf("?") < 1) {
506                url = ajaxurl + '?ajaxpages=Y&ajaxpagesid=' + ajaxpagesid + '&PAGEN_' + n
506avnum + '=' + nextpagenomer;
507            } else {
508                url = ajaxurl + '&ajaxpages=Y&ajaxpagesid=' + ajaxpagesid + '&PAGEN_' + navnum + '=' + nextpagenomer;
509            }
510            $.ajax({
511                url: url
512            }).done(function (data) {
513                $('#' + ajaxpagesid).append(data);
514                $linkObj.parents('.ajaxpages').remove();
515                RSAL_Area2Darken($('#' + ajaxpagesid));
516                RSAL_Area2Darken($linkObj);
517                RSAL_ShowHideModueLoadingIcon();
518            });
519        } else {
520            if (!($('#' + ajaxpagesid).length > 0)) {
521                console.warn('ajaxpages -> empty DOM element');
522            }
523            if (!(navpagenomer < navpagecount)) {
524                console.warn('ajaxpages -> navpagenomer !< navpagecount');
525            }
526            if (!(parseInt(navnum) > 0)) {
527                console.warn('ajaxpages -> parseInt(navnum)!>0');
528            }
529            if (!(ajaxurl != "")) {
530                console.warn('ajaxpages -> ajaxurl is empty');
531            }
532        }
533        return false;
534    });
535    // /AJAXPAGES
536
537    // AJAX -> delete products from main page tabs
538    $(document).on('click', '.js_product_delete', function () {
539        var $linkObj = $(this);
540        $linkObj.addClass('click_protection');
541        var element_id = $linkObj.parents('.js-element').data('elementid');
542        var from = $linkObj.data('from');
543        var url = RSAL_SITE_DIR + 'ajax/ajax.php?action=delete&element_id=' + element_id + '&delete_from=' + from;
544        if (element_id > 0 && from != "" && from) {
545            $.getJSON(url, {}, function (json) {
546                if (json.TYPE == "OK") {
547                    $linkObj.parents('.js-element').remove();
548                } else {
549                    console.warn(json.MESSAGE);
550                }
551                setTimeout(function () {
552                    $linkObj.removeClass('click_protection');
553                }, RSAL_ClickProtectionDelay);
554            }).fail(function () {
555                console.warn('can\'t load json delete');
556                setTimeout(function () {
557                    $linkObj.removeClass('click_protection');
558                }, RSAL_ClickProtectionDelay);
559            });
560        } else {
561            console.warn('empty param element_id or from');
562            setTimeout(function () {
563                $linkObj.removeClass('click_protection');
564            }, RSAL_ClickProtectionDelay);
565        }
566        return false;
567    });
568
569    $(document).on('click', "a.delete-from-cart", function () {
570
571        var $ths = $(this);
572        $(".js-buyform" + $(this).data('pid')).removeClass('inbasket');
573
574
575        $.ajax({
576            url: "/ajax/2020/ajax-delete-from-cart.php",
577            type: "GET",
578            data: {id: $ths.data('id'), new: "Y"},
579            dataType: "html",
580            success: function (data) {
581                $('#popup-cart .col-r').html(data);
582                ajaxUpdateCart();
583                $.colorbox.resize();
584            }
585        });
586        /*$.post('/ajax/2020/ajax-delete-from-cart.php', {id: $(this).data('id')}, function (data) {
587          //$('#h-cart').html(data);
588          $.jGrowl("Товар был удален из корзины", {theme: 'status'});
589          ajaxUpdateCart();
590    */
591
592        /*if (!$('a.delete-from-cart', $('#h-cart')).length) $.fancybox.close();
593        else $.fancybox({wrapCSS: 'popup-added', padding: 0, href: '#popup-added', maxWidth: 800});
594      });
595      */
596        return false;
597    });
598    // /AJAX -> delete products from main page tabs
599
600    // add phone_tables class for BODY
601    if (RSAL_PHONETABLET == "Y") {
602        $('body').addClass('phone_tablet');
603        $('.remove_for_tablet').remove();
604    } else {
605        if (RSAL_SHOW_MOUSE_LOADING == "Y") {
606            $(document).on('mousemove', function (e) {
607                $('#mouse_loading_icon').css({"top": (e.pageY + 20), "left": (e.pageX + 15)});
608            });
609        }
610    }
611
612    $(document).on('mouseenter', '.js-basket-minus, .js-basket-plus', function () {
613        $('html').addClass("disableSelection");
614    }).on('mouseleave', '.js-basket-minus, .js-basket-plus', function () {
615        $('html').removeClass("disableSelection");
616    }).on('click', '.js-basket-plus', function () {
617        var value = $(this).siblings('input'),
618            ratio = value.data('ratio'),
619            max = value.attr('data-max'),
620            real = ratio.toString().split('.', 2)[1],
621            length = 0;
622        if (real !== undefined) {
623            length = real.length;
624        }
625        let nextVal = parseFloat(value.val()) + ratio;
626        if (!!max && nextVal >= parseFloat(max)) {
627            nextVal = parseFloat(max);
628        }
629        value.val(nextVal.toFixed(length)).trigger('change');
630    }).on('click', '.js-basket-minus', function () {
631        var value = $(this).siblings('input'),
632            ratio = value.data('ratio'),
633            real = ratio.toString().split('.', 2)[1],
634            length = 0;
635        if (real !== undefined) {
636            length = real.length;
637        }
638        if (value.val() > ratio) {
639            value.val((parseFloat(value.val()) - ratio).toFixed(length)).trigger('change');
640        } else {
641            deleteFromBasket(value.attr("data-pid"));
642        }
643    });
644
645    var $mobileManager = $('#mobile-manager');
646    if ($mobileManager.length) {
647        $('.form-item', $mobileManager).each(function () {
648            var $ths = $(this);
649            if ($("input", $ths).val() != 1) {
650                $('.price-val', $ths).hide();
651            }
652        });
653        $('.form-item label').on('click', function () {
654            var $ths = $(this).parent(),
655                $priceValue = $('.price-val', $ths);
656            if ($("input", $ths).val() != 1) {
657                if (!$priceValue.hasClass('show')) {
658                    $priceValue.addClass('show').fadeIn();
659                } else {
660                    $priceValue.removeClass('show').fadeOut();
661                }
662            }
663        });
664    }
665});
666
667function RSAL_SetDeviceType() {
668    if (RSAL_PHONETABLET == 'Y') {
669        $('.body').addclass('tab');
670    }
671}
672
673function copyToClipboard(text) {
674    let $temp = $("<input>");
675    $("body").append($temp);
676    $temp.val(text).select();
677    document.execCommand("copy");
678    $temp.remove();
679    $.jGrowl("Код скопирован", {theme: 'status'});
680}
681
682BX.addCustomEvent('onFrameDataReceived', RSAL_SetDeviceType);
683
684$(document).ready(function () {
685    $('.captcha_image').click(function () {
686        console.log("!")
687        d = new Date();
688        img = $(this).attr('src');
689        $(this).attr('src', img);
690    });
691});
692
693// ---FROM IA-PEGAS.RU ------------------------------------------------------------------------------------------------
694
695var $loadAuthForm = $('#load-auth-form');
696if ($loadAuthForm.length) {
697    $loadAuthForm.on('click', function () {
698        $.fancybox({
699            autoWidth: true,
700            type: 'ajax',
701            href: '/ajax/2020/ajax-auth.php?backurl=' + location.pathname,
702            ajax: {
703                dataType: 'html',
704                headers: {'X-fancyBox': true},
705                backurl: location.pathname
706            },
707            beforeShow: function () {
708                RSAL_HandlerFancyOnBeforeShow();
709                $('.fancybox-overlay').addClass('form-overlay-auth');
710                window.initJSThemeFirst();
711            },
712            afterClose: function () {
713                RSAL_HandlerFancyOnAfterClose();
714            },
715            centerOnScroll: true
716        });
717        return false;
718    });
719}
720
721
722function checkInCompare(pid) {
723    copmaredPids = $('*[data-compared]').data('compared');
724    if ($.inArray(pid, copmaredPids) != -1) {
725        return true;
726    }
727    return false;
728}
729
730;(function ($) {
731
732    function Pager(owl) {
733        this._core = owl;
734
735        this._handlers = {
736            'initialized.owl.carousel': this.init.bind(this),
737            'translate.owl.carousel': this.draw.bind(this),
738            'resized.owl.carousel': this.update.bind(this),
739        };
740
741        this._core.$element.on(this._handlers);
742
743        this._core.options = $.extend({}, Pager.Defaults, this._core.options);
744
745        this.$pager = $('<div class="owl-pager">');
746    }
747
748    Pager.prototype.init = function () {
749        this.update()
750        this.draw();
751    }
752
753    Pager.prototype.draw = function () {
754        if (!this._mounted) {
755            return
756        }
757        this.$pager.text((this._core.relative(this._core._current) + 1) + '/' + this._core._items.length);
758    };
759
760    Pager.prototype.update = function () {
761        if (this._core.settings.pager) {
762            if (!this._mounted) {
763                this._mounted = true
764                this._core.$element.append(this.$pager);
765            } else if (this._mounted) {
766                this._mounted = false
767                this.$pager.remove()
768            }
769        }
770    }
771
772    Pager.Defaults = {
773        pager: false,
774    }
775
776    $.fn.owlCarousel.Constructor.Plugins.Pager = Pager;
777
778}(jQuery));
779
780(function ($) {
781    window.initJSThemeFirst = function () {
782        $.colorbox.resize();
783        $('.phone-mask:not(.js-mask), input[type="tel"]:not(.js-mask), input[name="PERSONAL_PHONE"]:not(.js-mask), input[name="USER_PHONE"]:not(.js-mask)').mask("+7 (999) 999-99-99").addClass('js-mask');
784        var $catalogItem = $('.catalog-item');
785        if ($catalogItem.length) {
786            $catalogItem.each(function () {
787                var isCompare = checkInCompare($(this).data('elementid'));
788                if (isCompare) $('.js_add2compare', $(this)).addClass('compared');
789            })
790        }
791
792        $('[data-copy-text]:not(.js-inited)').addClass('js-inited').click(function () {
793            copyToClipboard($(this).attr('data-copy-text'));
794        });
795
796        var jsSlideLink = $('.js-slide-link:not(.js-inited)');
797        if (jsSlideLink.length) {
798            jsSlideLink.addClass('js-inited').each(function () {
799                var ths = $(this), el, elContainer, maxHeight = 256;
800                if (ths.data('maxheight')) maxHeight = +ths.data('maxheight');
801                if (ths.data('target')) elContainer = $(ths.data('target'));
802                else elContainer = ths.prev();
803                el = $('> div', elContainer);
804                var elHeight = el.height();
805                if (elHeight > maxHeight) {
806                    elContainer.css({height: maxHeight}).addClass('slide-init');
807                    ths.addClass('slide-init');
808                } else {
809                    elContainer.removeClass('slide-init open');
810                    ths.removeClass('slide-init open').hide();
811                }
812                $(window).resize(function () {
813                    elHeight = el.height();
814                    if (elHeight > maxHeight) {
815                        if (elContainer.hasClass('open')) elContainer.css({height: elHeight});
816                        else {
817                            elContainer.css({height: maxHeight}).addClass('slide-init');
818                            ths.addClass('slide-init');
819                        }
820                    } else {
821                        elContainer.removeClass('slide-init open');
822                        ths.removeClass('slide-init open').hide();
823                    }
824                });
825                ths.on('click', function () {
826                    if (elContainer.hasClass('open')) {
827                        elContainer.removeClass('open');
828                        ths.removeClass('open');
829                        elContainer.css({height: maxHeight});
830                    } else {
831                        elContainer.css({height: elHeight});
832                        ths.addClass('open');
833                        elContainer.addClass('open');
834                    }
835                    return false;
836                });
837            });
838        }
839
840
841        var jsSlideLink = $('.js-slide-link:not(.js-inited)');
842        if (jsSlideLink.length) {
843            jsSlideLink.addClass('js-inited').each(function () {
844                var ths = $(this), el, elContainer, maxHeight = 60;
845                if (ths.data('maxheight')) maxHeight = +ths.data('maxheight');
846                if (ths.data('target')) elContainer = $(ths.data('target'));
847                else elContainer = ths.prev();
848                el = $('> div', elContainer);
849                var elHeight = el.height();
850                if (elHeight > maxHeight) {
851                    elContainer.css({height: maxHeight}).addClass('slide-init');
852                    ths.addClass('slide-init');
853                }
854                $(window).resize(function () {
855                    elHeight = el.height();
856                    if (elHeight > maxHeight) {
857                        if (elContainer.hasClass('open')) elContainer.css({height: elHeight});
858                        else {
859                            elContainer.css({height: maxHeight}).addClass('slide-init');
860                            ths.addClass('slide-init');
861                        }
862                    } else {
863                        elContainer.removeClass('slide-init open');
864                        ths.removeClass('slide-init open');
865                    }
866                });
867                ths.on('click', function () {
868                    if (elContainer.hasClass('open')) {
869                        elContainer.removeClass('open');
870                        ths.removeClass('open');
871                        elContainer.css({height: maxHeight});
872                    } else {
873                        elContainer.css({height: elHeight});
874                        ths.addClass('open');
875                        elContainer.addClass('open');
876                    }
877                    return false;
878                });
879            });
880        }
881
882        var $loadText = $('.load-text:not(.js-inited)');
883        if ($loadText.length) {
884            $loadText.addClass('js-inited').on('click', function () {
885                var $id = $(this).data('id');
886                $.fancybox({
887                    type: 'ajax',
888                    href: '/ajax/ajax-showtext.php',
889                    ajax: {
890                        dataType: 'html',
891                        headers: {'X-fancyBox': true},
892                        data: {
893                            ID: $id,
894                            href: location.href
895                        }
896                    },
897                    openEffect: 'fade',
898                    closeEffect: 'fade',
899                    autoSize: true,
900                    closeClick: false,
901                    title: null,
902                    padding: 0,
903                    beforeShow: function () {
904                        RSAL_HandlerFancyOnBeforeShow();
905                        $('.fancybox-overlay').addClass('form-overlay-' + $id)
906                    },
907                    afterClose: function () {
908                        RSAL_HandlerFancyOnAfterClose();
909                    },
910                    afterShow: initJSThemeFirst,
911                    wrapCSS: 'popup-text popup-text-' + $id,
912                    centerOnScroll: true
913                });
914                return false;
915            });
916        }
917
918        var $loadForm = $('.load-form:not(.js-inited)');
919        if ($loadForm.length) {
920            $loadForm.addClass('js-inited').on('click', function () {
921                var $id = $(this).data('id');
922                $.fancybox({
923                    type: 'ajax',
924                    href: '/ajax/ajax-callback.php',
925                    ajax: {
926                        dataType: 'html',
927                        headers: {'X-fancyBox': true},
928                        data: {
929                            WEB_FORM_ID: $id,
930                            href: location.href,
931                            info: $(this).data("info"),
932                            new: "Y"
933                        }
934                    },
935                    openEffect: 'fade',
936                    closeEffect: 'fade',
937                    autoSize: true,
938                    closeClick: false,
939                    title: null,
940                    padding: 0,
941                    beforeShow: function () {
942                        RSAL_HandlerFancyOnBeforeShow();
943                        $('.fancybox-overlay').addClass('form-overlay-' + $id)
944                    },
945                    afterClose: function () {
946                        RSAL_HandlerFancyOnAfterClose();
947                    },
948                    afterShow: initJSThemeFirst,
949                    wrapCSS: 'popup-form popup-form-' + $id
950                });
951                return false;
952            });
953        }
954
955        var $oneClick = $('.js-one-click:not(.js-inited)');
956        if ($oneClick.length) {
957            $oneClick.addClass('js-inited').on('click', function () {
958                $.fancybox({
959                    type: 'ajax',
960                    href: '/ajax/ajax-one-click.php',
961                    ajax: {
962                        dataType: 'html',
963                        headers: {'X-fancyBox': true},
964                        data: {
965                            pid: $(this).data('pid'),
966                            href: location.href,
967                            info: $(this).data("info")
968                        }
969                    },
970                    openEffect: 'fade',
971                    closeEffect: 'fade',
972                    maxWidth: 800,
973                    maxHeight: 800,
974                    autoSize: true,
975                    closeClick: false,
976                    title: null,
977                    padding: 0,
978                    beforeShow: function () {
979                        RSAL_HandlerFancyOnBeforeShow();
980                    },
981                    afterClose: function () {
982                        RSAL_HandlerFancyOnAfterClose();
983                    },
984                    afterShow: initJSThemeFirst
985                });
986
987                return false;
988            });
989        }
990
991        var $art2cart = $('.js-art2cart:not(.js-inited)');
992        if ($art2cart.length) {
993            $art2cart.addClass('js-inited').on('click', function () {
994                $.fancybox({
995                    type: 'ajax',
996                    href: '/ajax/ajax-art2cart.php',
997                    ajax: {
998                        dataType: 'html',
999                        headers: {'X-fancyBox': true},
1000                        data: {
1001                            href: location.href,
1002                        }
1003                    },
1004                    openEffect: 'fade',
1005                    closeEffect: 'fade',
1006                    maxWidth: 800,
1007                    maxHeight: 800,
1008                    autoSize: true,
1009                    closeClick: false,
1010                    title: null,
1011                    padding: 0,
1012                    beforeShow: function () {
1013                        RSAL_HandlerFancyOnBeforeShow();
1014                    },
1015                    afterClose: function () {
1016                        RSAL_HandlerFancyOnAfterClose();
1017                    },
1018                    afterShow: initJSThemeFirst
1019                });
1020
1021                return false;
1022            });
1023        }
1024
1025        var $art2cartSubmit = $('#submit_art2cart:not(.js-inited)');
1026        if ($art2cartSubmit.length) {
1027            $art2cartSubmit.addClass('js-inited').on('submit', function () {
1028                var $ths = $(this);
1029                RSAL_Area2Darken($ths);
1030                RSAL_ShowHideModueLoadingIcon();
1031                $.post($ths.attr("action"), {
1032                    art: $(this).find("input[name='art']").val(),
1033                    art2cart: 1
1034                }, function (data) {
1035                    $ths.closest(".styleforsmallpopup").parent().html(data);
1036                    RSAL_Area2Darken($ths);
1037                    RSAL_ShowHideModueLoadingIcon();
1038                    window.initJSThemeFirst();
1039                }).fail(function (data) {
1040                    RSAL_Area2Darken($ths);
1041                    RSAL_ShowHideModueLoadingIcon();
1042                    console.warn('can\'t load json submit_art2cart');
1043                });
1044                return false;
1045            });
1046        }
1047
1048        var $inputPhone = $("input.js-phone:not(.js-process)");
1049        if ($inputPhone.length) {
1050            $inputPhone.addClass('js-process').mask("+7 (999) 999 - 99 - 99", {
1051                autoclear: false,
1052            });
1053        }
1054
1055        if ($("textarea.lined:not(.js-inited)").length) {
1056            $("textarea.lined:not(.js-inited)").addClass("js-inited").linedtextarea();
1057        }
1058
1059        if ($("input[type='file']:not(.js-inited)").length) {
1060            var $inputFile = $("input[type='file']:not(.js-inited)").addClass("js-inited");
1061            $inputFile.each(function () {
1062                var $ths = $(this);
1063                $ths.wrap('<div class="file-wrap"></div>').after('<div class="text-wrap"><div class="txt">' + $ths.val().replace(/\\/g, '/').replace(/.*\//, '') + '</div></div>');
1064            });
1065            $inputFile.on("change", function () {
1066                var $ths = $(this);
1067                $ths.next('.text-wrap').find('.txt').text($ths.val().replace(/\\/g, '/').replace(/.*\//, ''));
1068            });
1069        }
1070
1071        var inlineLoadForm = $('.inline-load-form:not(.js-inited)');
1072        if (inlineLoadForm.length) {
1073            inlineLoadForm.addClass('js-inited').each(function () {
1074                var ths = $(this);
1075                $.ajax({
1076                    url: '/ajax/ajax-callback.php?' + $.param({
1077                        WEB_FORM_ID: ths.data('id'),
1078                        TEMPLATE: ths.data('template'),
1079                        href: location.href,
1080                        info: ths.data("info"),
1081                        TITLE: ths.data("title"),
1082                        HIDE_TITLE: ths.data("hide-title")
1083                    }),
1084                    dataType: "html",
1085                    type: "GET",
1086                    success: function (data, textStatus, jqXHR) {
1087                        ths.replaceWith(data);
1088                        initJSThemeFirst();
1089                    }
1090                });
1091                //ths.load('/ajax/ajax-webform.php',{WEB_FORM_ID:ths.data('id'), href: location.href, info: ths.data("info")},initJSThemeFirst);
1092            });
1093        }
1094
1095        var $fileWrap = $(".file-wrap input[type=file]:not(.js-inited2)"), $fileValue = $("#file-value");
1096        if ($fileWrap.length && $fileValue.length) {
1097            $fileWrap.addClass('js-inited2').on("change", function () {
1098                $fileValue.val(this.value);
1099            });
1100        }
1101
1102        var $colorboxInline = $('.colorbox-inline:not(.js-inited)');
1103        if ($colorboxInline.length) {
1104            $colorboxInline.addClass('js-inited').on('click', function () {
1105                $.colorbox({
1106                    inline: true,
1107                    href: $(this).attr('href'),
1108                    className: 'c-form c-' + $(this).data('cls'),
1109                    onComplete: function () {
1110                        initJSThemeFirst();
1111                    }
1112                });
1113
1114                return false;
1115            });
1116        }
1117
1118        // region переключатель авторизации логин/пароль
1119        let $authSwitcher = $('input[name="AUTH_TYPE"]:not(.js-inited)');
1120        if ($authSwitcher.length) {
1121            let $loginInput = $('input[name="USER_LOGIN"]', $authSwitcher.closest('form')),
1122                $phoneInput = $('input[name="USER_PHONE"]', $authSwitcher.closest('form'));
1123            if ($loginInput.length && $phoneInput.length) {
1124                $authSwitcher.each(function () {
1125                    let $this = $(this);
1126                    $this.addClass('js-inited').on('change', function (evt) {
1127                        if (evt.target.value === 'login') {
1128                            $loginInput.closest('.form-item').removeClass('d-none');
1129                            $phoneInput.closest('.form-item').addClass('d-none');
1130                        } else {
1131                            $loginInput.closest('.form-item').addClass('d-none');
1132                            $phoneInput.closest('.form-item').removeClass('d-none');
1133                        }
1134                    });
1135                })
1136            }
1137        }
1138        // endregion
1139
1140        // region tippy
1141        let tippyNodes = document.querySelectorAll('.tippy:not(.js-inited)');
1142        if (tippyNodes.length) {
1143            for (let item of tippyNodes) {
1144                tippy(item);
1145                item.classList.add('js-inited');
1146            }
1147        }
1148        // endregion
1149
1150        // region chosen
1151        let $chosen = $('[data-chosenop]:not(.js-inited)');
1152
1153        if ($chosen.length) {
1154            $chosen.each(function () {
1155                var $el = $(this).addClass('js-inited').chosen($.extend({}, $(this).data('chosenop'))).change(function () {
1156                    let $option = $('option:selected', $(this));
1157                    if (!!$option) {
1158                        let href = $option.attr('data-href');
1159                        if (href.length) {
1160                            document.location.href = href;
1161                            return false;
1162                        }
1163                    }
1164                });
1165                $el.data('chosen')?.container?.addClass($el.attr('class'));
1166            });
1167        }
1168        // endregion
1169
1170    };
1171
1172    BX.addCustomEvent('onAjaxSuccess', function (data, config) {
1173        window.initJSThemeFirst(); // инициализируем первым
1174        if (typeof Recaptchafree != "undefined") Recaptchafree.reset();
1175        $(window).resize();
1176    });
1177
1178    $(document).ready(function () {
1179
1180        window.initJSThemeFirst(); // инициализируем первым
1181
1182        if ($('.slider-carousel').length) {
1183            $('.slider-carousel').each(function () {
1184                var $ths = $(this);
1185                new Swiper($('.swiper-container', $ths), {
1186                    nextButton: $('.sw-next', $ths),
1187                    prevButton: $('.sw-prev', $ths),
1188                    slidesPerView: 'auto',
1189                    loop: false,
1190                    grabCursor: true,
1191                    autoplay: 5000,
1192                });
1193            });
1194        }
1195
1196        if ($('.slider-carousel-vertical').length) {
1197            $('.slider-carousel-vertical').each(function () {
1198                var $ths = $(this);
1199                new Swiper($('.swiper-container', $ths), {
1200                    nextButton: $('.sw-next', $ths),
1201                    prevButton: $('.sw-prev', $ths),
1202                    slidesPerView: 'auto',
1203                    direction: 'vertical',
1204                    loop: false,
1205                    grabCursor: true,
1206                    autoplay: false,
1207                });
1208            });
1209        }
1210
1211        var $coorpMedialibraryCarousel = $('#coorp-medialibrary-carousel')
1212        if ($coorpMedialibraryCarousel.length) {
1213            new Swiper($('.swiper-container', $coorpMedialibraryCarousel), {
1214                slidesPerView: 'auto',
1215                loop: true,
1216                grabCursor: false,
1217                autoplay: 3000,
1218                spaceBetween: 20,
1219            });
1220        }
1221
1222        $('#scroll-up').click(function () {
1223            $('body,html').animate({scrollTop: 0}, 800);
1224            return false;
1225        });
1226
1227        if ($("#disclaimer-close").length) {
1228            $("#disclaimer-close").click(function () {
1229                $.cookie('x_disclaimer', 1, {path: '/', expires: 1000});
1230                $(".panel-disclaimer").remove();
1231                $('body').removeClass('page-panel-disclaimer');
1232                return false;
1233            });
1234            if ($.cookie('x_disclaimer')) $(".panel-disclaimer").remove();
1235        }
1236
1237        if ($(".send-error").length) {
1238            $(".send-error-close").click(function () {
1239                $.cookie('x_send_error', 1, {path: '/'});
1240                $(".send-error").remove();
1241                return false;
1242            });
1243            if ($.cookie('x_send_error')) $(".send-error").remove();
1244        }
1245
1246    });
1247})(jQuery);

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.