PageSourceSearch

https://1digitalclinic.ru/js/main.min.js?nocache=695308272

js 1digitalclinic.ru collected 2026-09-28 13:19:53 UTC 47,349 bytes, 1,019 lines download raw bytes

1"use strict";
2function isIntersecting(e) {
3    var t = window.pageYOffset
4      , i = t + window.innerHeight
5      , r = t + e.getBoundingClientRect().top
6      , n = r + e.height;
7    return r <= i && r >= t || n <= i && n >= t
8}
9function checkImages() {
10    targets.forEach(function(e) {
11        isIntersecting(e) && e.classList.contains("loading") && (e.src = e.getAttribute("data-src"),
12        e.onload = function() {
13            e.classList.remove("loading"),
14            e.removeAttribute("data-src")
15        }
16        )
17    })
18}
19"/" != window.location.pathname && ($(".price-list__price span").length ? $(".price-list__price span").each(function() {
20    $(this).text($(this).text().replace(/(от|до|\d)(?= \d) /g, "$1 "))
21}) : $(".price-list__price").length && $(".price-list__price").each(function() {
22    $(this).text($(this).text().replace(/(от|до|\d)(?= \d) /g, "$1 "))
23}));
24
25var app = new Vue({
26    el: "#app",
27    data: function() {
28        return {
29            formSuccess: !1,
30            arrayImages: []
31        }
32    },
33    mounted: function() {
34        var e = this;
35
36        this.arrayImages = Array.from(document.querySelectorAll("img[data-src]")),
37        window.onload = function() {
38            setTimeout(function() {
39                checkImages(),
40                app.policy().then(function(e) {
41                    Array.from(document.querySelectorAll(".form-checkbox label")).map(function(t, i) {
42                        const personalText = "персональных данных";
43                        if(!t.textContent.includes(personalText)) return;
44                        console.log(t.textContent.replace(personalText, ""));
45                        //t.innerHTML = t.textContent.replace(personalText, "") + '<a href="' + JSON.parse(e)[0].FILE.VALUE + '" target="_blank">' + personalText + '</a>'
46                    })
47                }),
48                setTimeout(function() {
49                    app.bannerSlider(),
50                    app.servicesSlider(),
51                    app.sliderBg(),
52                    app.worksSlider(),
53                    app.reviewsSlider(),
54                    app.doctorsSlider(),
55                    app.sertificateSlider(),
56                    app.gallerySlider(),
57                    app.imageSkew(),
58                    app.footnote(),
59                    app.itemSkew(),
60                    app.doctorsVideo(),
61                    app.workImage(),
62                    app.fliterItem(),
63                    app.pageNavigationItemNoVue()
64                }, 500)
65            }, 900);
66            var e = document.getElementById("whatsapp-chat");
67            e && (setTimeout(function() {
68                e.querySelector(".window").classList.add("open")
69            }, 5e3),
70            $(e).find(".whatsapp_img_icon, .close").on("click", function() {
71                $("#whatsapp-chat .window").toggleClass("open")
72            }))
73        }
74        ,
75        window.addEventListener("scroll", function() {
76            document.querySelector("#fixed-nav") && (document.querySelector(".fixed-nav__wrap").style.height = document.getElementById("fixed-nav").clientHeight + "px",
77            document.querySelector(".fixed-nav__wrap").style.marginBottom = "-" + document.getElementById("fixed-nav").clientHeight + "px",
78            pageYOffset >= document.querySelector(".fixed-nav__wrap").offsetTop && pageYOffset > 80 ? document.getElementById("fixed-nav").classList.add("fixed") : document.getElementById("fixed-nav").classList.remove("fixed"))
79        }),
80        window.addEventListener("resize", function() {
81            e.imageSkew(),
82            e.itemSkew()
83        }),
84        window.addEventListener("scroll", checkImages),
85        setTimeout(function() {
86            window.removeEventListener("scroll", checkImages);
87            var e = document.querySelectorAll("img[data-src]");
88            e.forEach(function(e) {
89                e.classList.contains("loading") && (e.src = e.getAttribute("data-src"),
90                e.onload = function() {
91                    e.classList.remove("loading"),
92                    e.removeAttribute("data-src")
93                }
94                )
95            })
96        }, 1e4)
97    },
98    methods: {
99        pageNavigationItemNoVue: function() {
100            Array.from(document.querySelectorAll(".page-navigation__item-no-vue")).map(function(e, t) {
101                e.addEventListener("click", function() {
102                    app.pageNavigation(this)
103                })
104            })
105        },
106        workImage: function() {
107            Array.from(document.querySelectorAll(".cocoen")).map(function(e, t) {
108                new Cocoen(e)
109            })
110        },
111        policy: function() {
112            return new Promise(function(e, t) {
113                var i = "/template/policy.php"
114                  , r = new XMLHttpRequest;
115                r.open("POST", i, !0),
116                r.onload = function() {
117                    if (200 == this.status)
118                        e(this.response);
119                    else {
120                        var i = new Error(this.statusText);
121                        i.code = this.status,
122                        t(i)
123                    }
124                }
125                ,
126                r.onerror = function() {
127                    t(new Error("Network Error"))
128                }
129                ,
130                r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"),
131                r.send()
132            }
133            )
134        },
135        popUpOpen: function(e) {
136            document.querySelector("#popup .popup-content").insertAdjacentHTML("beforeend", '<img src="' + e.target.getAttribute("data-image") + '">'),
137            document.getElementById("popup").classList.add("open")
138        },
139        popUpClose: function() {
140            document.getElementById("popup").classList.remove("open"),
141            document.getElementById("popup").querySelector(".popup-content").innerHTML = ""
142        },
143        sertificateOpen: function(e) {
144            if ("IMG" === e.target.tagName) {
145                document.querySelector("#sertificate-popup .sertificate-popup__content").insertAdjacentHTML("beforeend", '<div class="sertificate-popup__slider swiper-container"><div class="swiper-wrapper"></div><div class="swiper-prev"></div><div class="swiper-next"></div></div>'),
146                Array.from(document.querySelectorAll(".sertificate-sl
146ider__item:not(.swiper-slide-duplicate) img")).map(function(e, t) {
147                    document.querySelector(".sertificate-popup__slider .swiper-wrapper").insertAdjacentHTML("beforeend", '<div class="sertificate-popup__slide swiper-slide"><img src="' + e.getAttribute("src") + '"></div>')
148                }),
149                document.getElementById("sertificate-popup").classList.add("open");
150                var t = new Swiper(".sertificate-popup__slider",{
151                    loop: !0,
152                    slidesPerView: "auto",
153                    autoHeight: !0,
154                    spaceBetween: 0,
155                    effect: "fade",
156                    centeredSlides: !0,
157                    shortSwipes: !1,
158                    initialSlide: parseInt(e.target.getAttribute("data-key")),
159                    longSwipes: !1,
160                    fadeEffect: {
161                        crossFade: !0
162                    },
163                    navigation: {
164                        nextEl: ".sertificate-popup__slider .swiper-next",
165                        prevEl: ".sertificate-popup__slider .swiper-prev"
166                    }
167                });
168                t.on("init", function() {
169                    this.el.querySelector(".swiper-wrapper").style.width = this.el.querySelector(".swiper-slide-active img").clientWidth + "px"
170                }),
171                t.on("transitionStart", function() {
172                    this.el.querySelector(".swiper-wrapper").style.width = this.el.querySelector(".swiper-slide-active img").clientWidth + "px"
173                })
174            }
175        },
176        sertificateClose: function(e) {
177            document.getElementById("sertificate-popup").classList.remove("open"),
178            document.getElementById("sertificate-popup").querySelector(".sertificate-popup__slider").remove()
179        },
180        doctorsVideo: function() {
181            Array.from(document.querySelectorAll(".doctors-list__video video")).map(function(e, t) {
182                e.onmouseover = function(t) {
183                    e.play()
184                }
185                ,
186                e.onmouseout = function(t) {
187                    e.pause()
188                }
189            })
190        },
191        formOpen: function(e) {
192            console.log("T", t)
193
194            var t = e.target.getAttribute("data-form");
195            if(t == '#appointment-doctor') {
196                let doctorName = e.target.getAttribute('data-doctor-name');
197                let doctorPosition = e.target.getAttribute('data-doctor-position');
198                if(doctorName) {
199                    let doctorNameArr = doctorName.split(' ');
200                    doctorNameArr[0] = '<span>' + doctorNameArr[0] + '</span>';
201                    let doctorNameHtml = doctorNameArr.join(' ');
202                    $(t).find('.js-doctor-name').html(doctorNameHtml);
203                    $(t).find('.js-doctor-field').val(doctorName);
204                } else {
205                    $(t).find('.js-doctor-name').html('');
206                    $(t).find('.js-doctor-field').val('');
207                }
208                if(doctorPosition) {
209                    $(t).find('.js-doctor-position').html(doctorPosition);
210                } else {
211                    $(t).find('.js-doctor-position').html('');
212                }
213            }
214
215
216            document.querySelector(t).classList.add("open")
217        },
218        formClose: function(e) {
219            document.querySelector("#inline.form-wrap.open") ? document.querySelector(".form.form-inline-active").reset() : document.querySelector(".form-wrap.open form") && document.querySelector(".form-wrap.open form").reset(),
220            $(document).find(".fl_input").trigger("blur.flowupLabelsEvt");
221            app.formSuccess = !1,
222            document.querySelector(".form-wrap.open").classList.remove("open")
223        },
224        jsCheckForm(el) {
225            let form = $(el),
226                hasErrors = false;
227            form.find('.js-required-field').each(function(){
228                let thisField = $(this),
229                    thisFieldWrap = thisField.closest('.fl_wrap');
230                if(thisField.val() == ''){
231                    hasErrors = true;
232                    if(thisFieldWrap.length) {
233                        thisFieldWrap.addClass('error');
234                    } else {
235                        thisField.addClass('error');
236                    }
237                } else {
238                    if(thisFieldWrap.length) {
239                        thisFieldWrap.removeClass('error');
240                    } else {
241                        thisField.removeClass('error');
242                    }
243                }
244            });
245            form.find('[type="email"]').each(function(){
246                let thisField = $(this),
247                thisFieldWrap = thisField.closest('.fl_wrap');
248                    if(thisField.is('[required]') && thisField.val() == '' || thisField.val() != '' && !thisField.val().match(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)){
249                        hasErrors = true;
250                        if(thisFieldWrap.length) {
251                            thisFieldWrap.addClass('error');
252                        } else {
253                            thisField.addClass('error');
254                        }
255                    } else {
256                        if(thisFieldWrap.length) {
257                            thisFieldWrap.removeClass('error');
258                        } else {
259                            thisField.removeClass('error');
260                        }
261                    }
262            });
263            form.find('.js-required-checkbox').each(function(){
264                let thisCheckbox = $(this);
265                if(!thisCheckbox.is(':checked')){
266                    hasErrors = true;
267                    thisCheckbox.addClass('error');
268                } else {
269                    thisCheckbox.removeClass('error');
270                }
271            });
272
273            if(hasErrors) {
274                form.addClass('_has-errors');
275                console.log('errors in form');
276                return false;
277            } else {
278                form.removeClass('_has-errors');
279            }
280
281            return true;
282        },
283        checkForm: function(e) {
284            if($(e.target).hasClass('js-validate-form') && !app.jsCheckForm(e.target)) return;
285            e.target.parentNode.classList.contains("form-popup") === !1 && (document.querySelector("#inline .form-success__content").innerHTML = e.target.parentNode.querySelector(".form-success__content").innerHTML,
286            document.querySelector("#inline").classList.add("open"),
287            e.target.classList.add("form-inline-active"));
288            var t = e.target.getAttribute("action")
289              , i = e.target.getAttribute("method")
290              , r = new FormData(e.target);
291            r.append("web_form_submit", e.target.web_form_submit),
292            window.fetch(t, {
293                method: i,
294                body: r
295            }).then(function(e) {
296                app.formSuccess = !app.formSuccess
297            })["catch"](function(e) {
298                console.log(e)
299            })
300        },
301        burger: function(e) {
302            e.target.classList.toggle("open"),
303            document.querySelector(".header-fixed").classList.toggle("close")
304        },
305        callme: function(e) {
306            document.querySelector("#filialCall").classList.toggle("open")
307        },
308        menuClick: function(e) {
309            window.innerWidth < 1200 ? (document.querySelector(".menu__item.active") && document.querySelector(".menu__item.active").classList.remove("active"),
310            e.target.parentNode.classList.add("active")) : location.href = e.target.href
311        },
312        subMenuClick: function(e) {
313            window.innerWidth < 1200 ? (e.target.parentNode.classList.add("active"),
314            e.target.parentNode.parentNode.classList.add("active"),
315            document.querySelector(".menu").classList.add("active")) : location.href = e.target.href
316        },
317        backMenuClick: function(e) {
318            document.querySelector(".menu").classList.remove("active"),
319            document.querySelector(".submenu__item.active").classList.remove("active"),
320            document.querySelector(".submenu.active").classList.remove("active")
321        },
322        sectionBlock: function() {
323            var e = -1
324              , t = -1;
325            document.getElementsByClassName("fixed-nav__content") && (console.log(document.getElementsByClassName("fixed-nav__content").classList.contains("fixed-nav__content-menu")),
326            document.getElementsByClassName("fixed-nav__content").classList.contains("fixed-nav__content-menu") === !1 && (Array.from(document.getElementsByClassName("fixed-nav__item")).map(function(i, r) {
327                var n = document.getElementsByClassName("section-block")[r];
328                void 0 !== n && pageYOffset >= n.offsetTop - window.innerHeight / 3 && e <= n.offsetTop && (e = n.offsetTop,
329                t = r)
330            }),
331            Array.from(document.getElementsByClassName("fixed-nav__item")).map(function(e, i) {
332                i === t ? e.classList.add("active") : e.classList.remove("active")
333            })))
334        },
335        bannerSlider: function() {
336            new Swiper(".banner-slider",{
337                loop: !0,
338                slidesPerView: 1,
339                autoplay: {
340                    delay: 5e3
341                },
342                pagination: {
343                    el: ".swiper-pagination"
344                },
345                navigation: {
346                    nextEl: ".banner-next",
347                    prevEl: ".banner-prev"
348                }
349            })
350        },
351        servicesSlider: function() {
352            if (document.querySelector(".services-slider")) {
353                var e = new Swiper(".services-slider",{
354                    loop: !0,
355                    slidesPerView: 1,
356                    spaceBetween: 30,
357                    autoplay: {
358                        delay: 5e3
359                    },
360                    pagination: {
361                        el: ".swiper-pagination",
362                        type: "fraction"
363                    },
364                    navigation: {
365                        nextEl: ".services-next",
366                        prevEl: ".services-prev"
367                    }
368                });
369                e.el.querySelector(".swiper-pagination").classList.add("active"),
370                e.on("transitionEnd", function() {
371                    e.el.querySelector(".swiper-pagination").classList.add("active")
372                }),
373                e.on("transitionStart", function() {
374                    e.el.querySelector(".swiper-pagination").classList.remove("active")
375                })
376            }
377        },
378        sliderBg: function() {
379            if (document.querySelector(".slider-bg")) {
380                document.querySelector(".slider-bg").insertAdjacentHTML("beforeend", '<div class="slider-bg__prev"></div><div class="slider-bg__next"></div>');
381                var e = new Swiper(".services-text",{
382                    loop: !0,
383                    slidesPerView: 1,
384                    direction: "horizontal",
385                    effect: "fade",
386                    simulateTouch: !1,
387                    fadeEffect: {
388                        crossFade: !0
389                    }
390                })
391                  , t = new Swiper(".slider-bg",{
392                    loop: !0,
393                    spaceBetween: 30,
394                    autoplay: {
395                        delay: 5e3
396                    },
397                    pagination: {
398                        el: ".swiper-pagination",
399                        type: "fraction"
400                    },
401                    navigation: {
402                        nextEl: ".slider-bg__next",
403                        prevEl: ".slider-bg__prev"
404                    }
405                });
406                t.el.querySelector(".swiper-pagination").classList.add("active"),
407                t.on("transitionEnd", function() {
408                    t.el.querySelector(".swiper-pagination").classList.add("active")
409                }),
410                t.on("transitionStart", function() {
411                    t.el.querySelector(".swiper-pagination").classList.remove("active")
412                }),
413                t.on("slidePrevTransitionStart", function() {
414                    e.slidePrev()
415                }),
416                t.on("slideNextTransitionStart", function() {
417                    e.slideNext()
418                })
419            }
420        },
421        worksSlider: function() {
422            if (document.querySelector(".works-slider")) {
423                var e = new Swiper(".works-slider",{
424                    loop: !0,
425                    slidesPerView: 1,
426                    spaceBetween: 0,
427                    centeredSlides: !0,
428                    autoplay: {
429                        delay: 5e3
430                    },
431                    pagination: {
432                        el: ".swiper-pagination",
433                        type: "fraction"
434                    },
435                    navigation: {
436                        nextEl: ".works-next",
437                        prevEl: ".works-prev"
438                    }
439                });
440                e.el.querySelector(".swiper-pagination").classList.add("active"),
441                e.on("transitionEnd", function() {
442                    e.el.querySelector(".swiper-pagination").classList.add("active")
443                }),
444                e.on("transitionStart", function() {
445                    e.el.querySelector(".swiper-pagination").classList.remove("active")
446                })
447            }
448        },
449        reviewsSlider: function() {
450            if (document.querySelector(".reviews-slider")) {
451                new Swiper(".reviews-slider",{
452                    loop: !0,
453                    slidesPerView: 3,
454                    spaceBetween: 40,
455                    autoplay: {
456                        delay: 5e3
457                    },
458                    navigation: {
459                        nextEl: ".reviews-slider__wrap .swiper-next",
460                        prevEl: ".reviews-slider__wrap .swiper-prev"
461                    },
462                    breakpoints: {
463                        1199: {
464                            slidesPerView: 3,
465                            spaceBetween: 30
466                        },
467                        991: {
468                            slidesPerView: 2,
469                            spaceBetween: 30
470                        },
471                        599: {
472                            slidesPerView: 1,
473                            spaceBetween: 30
474                        }
475                    }
476                })
477            }
478        },
479        doctorsSlider: function() {
480            if (document.querySelector(".doctors-slider")) {
481                new Swiper(".doctors-slider",{
482                    loop: false,
483                    slidesPerView: 1,
484                    spaceBetween: 10,
485                    simulateTouch: false,
486                    autoplay: {
487                        delay: 5e3
488                    },
489                    navigation: {
490                        nextEl: ".doctors-slider__wrap .swiper-next",
491                        prevEl: ".doctors-slider__wrap .swiper-prev"
492                    },
493                    breakpoints: {
494                        1199: {
495                            slidesPerView: 3,
496                            spaceBetween: 30
497                        },
498                        991: {
499                            slidesPerView: 2,
500                            spaceBetween: 30
501                        },
502                        599: {
503                            slidesPerView: 1,
504                            spaceBetween: 30
505                        }
506                    }
507                })
508            }
509        },
510        sertificateSlider: function() {
511            if (document.querySelector(".sertificate-slider")) {
512                new Swiper(".sertificate-slider",{
513                    loop: !0,
514                    slidesPerView: "auto",
515                    spaceBetween: 0,
516                    centeredSlides: !0,
517                    autoplay: {
518                        delay: 5e3
519                    },
520                    navigation: {
521                        nextEl: ".sertificate-slider .swiper-next",
522                        prevEl: ".sertificate-slider .swiper-prev"
523                    },
524                    breakpoints: {
525                        767: {
526                            slidesPerView: 1
527                        }
528                    }
529                })
530            }
531        },
532        gallerySlider: function() {
533            if (document.querySelector(".gallery-slider")) {
534                new Swiper(".gallery-slider",{
535                    loop: !0,
536                    slidesPerView: 1,
537                    spaceBetween: 40,
538                    centeredSlides: !0,
539                    autoplay: {
540                        delay: 5e3
541                    },
542                    navigation: {
543                        nextEl: ".gallery-slider .swiper-next",
544                        prevEl: ".gallery-slider .swiper-prev"
545                    }
546                })
547            }
548        },
549        priceOpen: function(e) {
550            e.target.parentNode.parentNode.classList.toggle("active"),
551            e.target.parentNode.parentNode.querySelectorAll(".price-list__price").forEach(function(e) {
552                return e.removeAttribute("style")
553            });
554            var t = $(".price-section.active")
555              , i = $(".price-section:not(.active) .muve-price .cloneClinic");
556            t.each(function(t, i) {
557                if (e.target.parentNode.parentNode == i && $(window).width() <= 500) {
558                    var r = $(this).find(".price-list .street__main, .price-list .our-clinic");
559                    r.each(function() {
560                        $(this).clone().addClass("cloneClinic").prependTo($(this).next())
561                    })
562                }
563            }),
564            i.remove()
565        },
566        price_but: function(e) {
567            var t = $(".street__button");
568            t.each(function(t, i) {
569                if (e.target == i) {
570                    var r, n, a = function(e, t, i) {
571                        return e * t.outerWidth() - i
572                    }, o = $(this).closest(".price-section").find(".streets__item .muve-price .price-list__price:first-child"), s = $(this).closest(".price-section").find(".price-list__item:not(.streets) .muve-price .price-list__price:first-child"), c = $(this).closest(".streets__item").find(".muve-price .price-list__price").length, l = parseInt(o.css("margin-left"));
573                    parseInt(s.css("margin-left"));
574                    return $(this).hasClass("left") ? (r = "+=" + o.outerWidth(),
575                    n = "+=" + s.outerWidth(),
576                    l >= 0 && (r = o.closest(".muve-price").outerWidth() - a(c, o, 0),
577                    n = s.closest(".muve-price").outerWidth() - a(c, s, 0))) : (r = "-=" + o.outerWidth(),
578                    n = "-=" + s.outerWidth(),
579                    $(".muve-price").outerWidth() + 1 > a(c, o, l * -1) && (r = 0,
580                    n = 0)),
581                    o.animate({
582                        "margin-left": r
583                    }, "fade"),
584                    s.animate({
585                        "margin-left": n
586                    }, "fade"),
587                    !1
588                }
589            })
590        },
591        imageSkew: function() {
592            Array.from(document.querySelectorAll(".image-skew")).map(function(e, t) {
593                var i = e.querySelector("img").offsetHeight / 2
594                  , r = 3.14
595                  , n = 10;
596                e.hasAttribute("data-skew") && (n = e.getAttribute("data-skew"),
597                e.style.transform = "skewX(-" + n + "deg)",
598                e.querySelector(".image-skew__wrap").style.transform = "skewX(" + n + "deg)");
599                var a = 90 - n;
600                n = n * r / 180,
601                a = a * r / 180;
602                var o = i * Math.sin(n) / Math.sin(a);
603                e.style.marginLeft = o + "px",
604                e.style.marginRight = o + "px",
605                e.querySelector(".image-skew__wrap").style.marginLeft = "-" + o + "px",
606                e.querySelector(".image-skew__wrap").style.marginRight = "-" + o + "px"
607            })
608        },
609        footnote: function() {
610            Array.from(document.getElementsByClassName("footnote__item")).map(function(e, t) {
611                var i = e.parentNode.querySelector("img").clientWidth
612                  , r = e.parentNode.querySelector("img").clientHeight
613                  , n = parseInt(e.getAttribute("data-top"))
614                  , a = parseInt(e.getAttribute("data-left"));
615                n = 100 * n / r,
616                a = 100 * a / i,
617                e.style.top = n + "%",
618                e.style.left = a + "%",
619                a > 50 ? e.classList.add("footnote__item-right") : e.classList.remove("footnote__item-right")
620            })
621        },
622        fliterItem: function() {
623            Array.from(document.querySelectorAll(".filter-item")).map(function(e, t) {
624                e.addEventListener("click", function() {
625                    document.querySelector(".filter-item.active").classList.remove("active"),
626                    this.classList.add("active"),
627                    app.pageNavigation(this)
628                    console.log('click render')
629                })
630            })
631        },
632        pageNavigation: function(e) {
633            var t = e;
634            if (t = e.classList.contains("filter-item") ? e : document.querySelector(".page-navigation__item").classList.contains("page-navigation__item-no-vue") ? e : e.target,
635            document.querySelector(".page-navigation__item.active") != t) {
636                t.classList.contains("more") || t.classList.contains("filter-item") || (document.querySelector(".page-navigation__item.active").classList.remove("active"),
637                t.classList.add("active"));
638                var i = t.getAttribute("data-page")
639                  , r = new XMLHttpRequest
640                  , n = new DOMParser
641                  , a = "";
642                r.open("GET", i, !0),
643                r.onload = function() {
644                    r.status >= 200 && r.status < 400 && (a = n.parseFromString(r.responseText, "text/html"),
645                    t.classList.contains("more") ? (document.querySelector(".ajax-block").innerHTML = document.querySelector(".ajax-block").innerHTML + a.querySelector(".ajax-block").innerHTML,
646                    a.querySelector(".page-navigation .more") ? document.querySelector(".page-navigation .more").setAttribute("data-page", a.querySelector(".page-navigation .more").getAttribute("data-page")) : document.querySelector(".page-navigation").remove()) : (document.querySelector(".ajax-block").innerHTML = a.querySelector(".ajax-block").innerHTML,
647                    document.querySelector(".page-navigation").classList.contains("page-navigation-no-vue") && (a.querySelector(".page-navigation") ? (document.querySelector(".page-navigation").innerHTML = a.querySelector(".page-navigation").innerHTML,
648                    app.pageNavigationItemNoVue()) : document.querySelector(".page-navigation").innerHTML = "")),
649                    document.querySelector(".ajax-block").hasAttribute("data-ajax") && "doctors-list" == document.querySelector(".ajax-block").getAttribute("data-ajax") && app.doctorsVideo(),
650                    document.querySelector(".ajax-block").hasAttribute("data-ajax") && "work" == document.querySelector(".ajax-block").getAttribute("data-ajax") && app.workImage())
651                }
652                ,
653                r.send()
654            }
655        },
656        itemSkew: function() {
657            Array.from(document.querySelectorAll(".block-skew")).map(function(e, t) {
658                var i = e.querySelector(".item-skew").offsetHeight / 2
659                  , r = 3.14
660                  , n = 10
661                  , a = 1;
662                e.hasAttribute("data-skew") && (n = e.getAttribute("data-skew")),
663                e.hasAttribute("data-margin") && (a = e.getAttribute("data-margin")),
664                e.style.transform = "skewX(-" + n + "deg)",
665                e.querySelector(".item-skew").style.transform = "skewX(" + n + "deg)";
666                var o = 90 - n;
667                n = n * r / 180,
668                o = o * r / 180;
669                var s = i * Math.sin(n) / Math.sin(o);
670                e.style.marginLeft = s * a + "px",
671                e.style.marginRight = s * a + "px",
672                e.querySelector(".item-skew").style.marginLeft = "-" + s + "px",
673                e.querySelector(".item-skew").style.marginRight = "-" + s + "px",
674                e.hasAttribute("data-width") && (e.style.width = 100 + o + "%")
675            })
676        },
677
678
679    }
680});
681!function(e) {
682    var t = "portfilter"
683      , i = function(t) {
684        this.$element = e(t),
685        this.stuff = e("[data-tag]"),
686        this.target = this.$element.data("target") || ""
687    };
688    i.prototype.filter = function(t) {
689        var i = []
690          , r = this.target;
691        this.stuff.fadeOut("fast").promise().done(function() {
692            e(this).each(function() {
693                e(this).data("tag") != r && "all" != r || i.push(this)
694            }),
695            e(i).show()
696        })
697    }
698    ;
699    var r = e.fn[t];
700    e.fn[t] = function(r) {
701        return this.each(function() {
702            var n = e(this)
703              , a = n.data(t);
704            a || n.data(t, a = new i(this)),
705            "filter" == r && a.filter()
706        })
707    }
708    ,
709    e.fn[t].defaults = {},
710    e.fn[t].Constructor = i,
711    e.fn[t].noConflict = function() {
712        return e.fn[t] = r,
713        this
714    }
715    ,
716    e(document).on("click.portfilter.data-api", "[data-toggle^=portfilter]", function(t) {
717        e(this).portfilter("filter")
718    })
719}(window.jQuery),
720jQuery(window).scroll(function() {
721    var e = jQuery(document).scrollTop();
722    jQuery(document).width() < 1200 && e ? jQuery(".header-wrap").addClass("header-fixx") : jQuery(".header-wrap").removeClass("header-fixx")
723});
724var placeholder = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="
725  , targets = document.querySelectorAll("img[data-src]");
726targets.forEach(function(e) {
727    e.src = placeholder,
728    e.classList.add("loading")
729});
730function zeebha() {
731    document.getElementById("myDropdown").classList.toggle("show")
732};
733window.onclick = function(ecv) {
734    if (!event.target.matches('.dropbtn')) {
735        var dropdowns = document.getElementsByClassName("dropdown-content");
736        var i;
737        for (i = 0; i < dropdowns.length; i++) {
738            var openDropdown = dropdowns[i];
739            if (openDropdown.classList.contains('show')) {
740                openDropdown.classList.remove('show')
741            }
742        }
743    }
744};
745
746
747!function(factory) {
748    "function" == typeof define && define.amd ? define([ "jquery" ], factory) : factory("object" == typeof exports ? require("jquery") : jQuery);
749}(function($) {
750    var caretTimeoutId, ua = navigator.userAgent, iPhone = /iphone/i.test(ua), chrome = /chrome/i.test(ua), android = /android/i.test(ua);
751    $.mask = {
752        definitions: {
753            "9": "[0-9]",
754            a: "[A-Za-z]",
755            "*": "[A-Za-z0-9]"
756        },
757        autoclear: !0,
758        dataName: "rawMaskFn",
759        placeholder: "_"
760    }, $.fn.extend({
761        caret: function(begin, end) {
762            var range;
763            if (0 !== this.length && !this.is(":hidden")) return "number" == typeof begin ? (end = "number" == typeof end ? end : begin,
764            this.each(function() {
765                this.setSelectionRange ? this.setSelectionRange(begin, end) : this.createTextRange && (range = this.createTextRange(),
766                range.collapse(!0), range.moveEnd("character", end), range.moveStart("character", begin),
767                range.select());
768            })) : (this[0].setSelectionRange ? (begin = this[0].selectionStart, end = this[0].selectionEnd) : document.selection && document.selection.createRange && (range = document.selection.createRange(),
769            begin = 0 - range.duplicate().moveStart("character", -1e5), end = begin + range.text.length),
770            {
771                begin: begin,
772                end: end
773            });
774        },
775        unmask: function() {
776            return this.trigger("unmask");
777        },
778        mask: function(mask, settings) {
779            var input, defs, tests, partialPosition, firstNonMaskPos, lastRequiredNonMaskPos, len, oldVal;
780            if (!mask && this.length > 0) {
781                input = $(this[0]);
782                var fn = input.data($.mask.dataName);
783                return fn ? fn() : void 0;
784            }
785            return settings = $.extend({
786                autoclear: $.mask.autoclear,
787                placeholder: $.mask.placeholder,
788                completed: null
789            }, settings), defs = $.mask.definitions, tests = [], partialPosition = len = mask.length,
790            firstNonMaskPos = null, $.each(mask.split(""), function(i, c) {
791                "?" == c ? (len--, partialPosition = i) : defs[c] ? (tests.push(new RegExp(defs[c])),
792                null === firstNonMaskPos && (firstNonMaskPos = tests.length - 1), partialPosition > i && (lastRequiredNonMaskPos = tests.length - 1)) : tests.push(null);
793            }), this.trigger("unmask").each(function() {
794                function tryFireCompleted() {
795                    if (settings.completed) {
796                        for (var i = firstNonMaskPos; lastRequiredNonMaskPos >= i; i++) if (tests[i] && buffer[i] === getPlaceholder(i)) return;
797                        settings.completed.call(input);
798                    }
799                }
800                function getPlaceholder(i) {
801                    return settings.placeholder.charAt(i < settings.placeholder.length ? i : 0);
802                }
803                function seekNext(pos) {
804                    for (;++pos < len && !tests[pos]; ) ;
805                    return pos;
806                }
807                function seekPrev(pos) {
808                    for (;--pos >= 0 && !tests[pos]; ) ;
809                    return pos;
810                }
811                function shiftL(begin, end) {
812                    var i, j;
813                    if (!(0 > begin)) {
814                        for (i = begin, j = seekNext(end); len > i; i++) if (tests[i]) {
815                            if (!(len > j && tests[i].test(buffer[j]))) break;
816                            buffer[i] = buffer[j], buffer[j] = getPlaceholder(j), j = seekNext(j);
817                        }
818                        writeBuffer(), input.caret(Math.max(firstNonMaskPos, begin));
819                    }
820                }
821                function shiftR(pos) {
822                    var i, c, j, t;
823                    for (i = pos, c = getPlaceholder(pos); len > i; i++) if (tests[i]) {
824                        if (j = seekNext(i), t = buffer[i], buffer[i] = c, !(len > j && tests[j].test(t))) break;
825                        c = t;
826                    }
827                }
828                function androidInputEvent() {
829                    var curVal = input.val(), pos = input.caret();
830                    if (oldVal && oldVal.length && oldVal.length > curVal.length) {
831                        for (checkVal(!0); pos.begin > 0 && !tests[pos.begin - 1]; ) pos.begin--;
832                        if (0 === pos.begin) for (;pos.begin < firstNonMaskPos && !tests[pos.begin]; ) pos.begin++;
833                        input.caret(pos.begin, pos.begin);
834                    } else {
835                        for (checkVal(!0); pos.begin < len && !tests[pos.begin]; ) pos.begin++;
836                        input.caret(pos.begin, pos.begin);
837                    }
838                    tryFireCompleted();
839                }
840                function blurEvent() {
841                    checkVal(), input.val() != focusText && input.change();
842                }
843                function keydownEvent(e) {
844                    if (!input.prop("readonly")) {
845                        var pos, begin, end, k = e.which || e.keyCode;
846                        oldVal = input.val(), 8 === k || 46 === k || iPhone && 127 === k ? (pos = input.caret(),
847                        begin = pos.begin, end = pos.end, end - begin === 0 && (begin = 46 !== k ? seekPrev(begin) : end = seekNext(begin - 1),
848                        end = 46 === k ? seekNext(end) : end), clearBuffer(begin, end), shiftL(begin, end - 1),
849                        e.preventDefault()) : 13 === k ? blurEvent.call(this, e) : 27 === k && (input.val(focusText),
850                        input.caret(0, checkVal()), e.preventDefault());
851                    }
852                }
853                function keypressEvent(e) {
854                    if (!input.prop("readonly")) {
855                        var p, c, next, k = e.which || e.keyCode, pos = input.caret();
856                        if (!(e.ctrlKey || e.altKey || e.metaKey || 32 > k) && k && 13 !== k) {
857                            if (pos.end - pos.begin !== 0 && (clearBuffer(pos.begin, pos.end), shiftL(pos.begin, pos.end - 1)),
858                            p = seekNext(pos.begin - 1), len > p && (c = String.fromCharCode(k), tests[p].test(c))) {
859                                if (shiftR(p), buffer[p] = c, writeBuffer(), next = seekNext(p), android) {
860                                    var proxy = function() {
861                                        $.proxy($.fn.caret, input, next)();
862                                    };
863                                    setTimeout(proxy, 0);
864                                } else input.caret(next);
865                                pos.begin <= lastRequiredNonMaskPos && tryFireCompleted();
866                            }
867                            e.preventDefault();
868                        }
869                    }
870                }
871                function clearBuffer(start, end) {
872                    var i;
873                    for (i = start; end > i && len > i; i++) tests[i] && (buffer[i] = getPlaceholder(i));
874                }
875                function writeBuffer() {
876                    input.val(buffer.join(""));
877                }
878                function checkVal(allow) {
879                    var i, c, pos, test = input.val(), lastMatch = -1;
880                    for (i = 0, pos = 0; len > i; i++) if (tests[i]) {
881                        for (buffer[i] = getPlaceholder(i); pos++ < test.length; ) if (c = test.charAt(pos - 1),
882                        tests[i].test(c)) {
883                            buffer[i] = c, lastMatch = i;
884                            break;
885                        }
886                        if (pos > test.length) {
887                            clearBuffer(i + 1, len);
888                            break;
889                        }
890                    } else buffer[i] === test.charAt(pos) && pos++, partialPosition > i && (lastMatch = i);
891                    return allow ? writeBuffer() : partialPosition > lastMatch + 1 ? settings.autoclear || buffer.join("") === defaultBuffer ? (input.val() && input.val(""),
892                    clearBuffer(0, len)) : writeBuffer() : (writeBuffer(), input.val(input.val().substring(0, lastMatch + 1))),
893                    partialPosition ? i : firstNonMaskPos;
894                }
895                var input = $(this), buffer = $.map(mask.split(""), function(c, i) {
896                    return "?" != c ? defs[c] ? getPlaceholder(i) : c : void 0;
897                }), defaultBuffer = buffer.join(""), focusText = input.val();
898                input.data($.mask.dataName, function() {
899                    return $.map(buffer, function(c, i) {
900                        return tests[i] && c != getPlaceholder(i) ? c : null;
901                    }).join("");
902                }), input.one("unmask", function() {
903                    input.off(".mask").removeData($.mask.dataName);
904                }).on("focus.mask", function() {
905                    if (!input.prop("readonly")) {
906                        clearTimeout(caretTimeoutId);
907                        var pos;
908                        focusText = input.val(), pos = checkVal(), caretTimeoutId = setTimeout(function() {
909                            input.get(0) === document.activeElement && (writeBuffer(), pos == mask.replace("?", "").length ? input.caret(0, pos) : input.caret(pos));
910                        }, 10);
911                    }
912                }).on("blur.mask", blurEvent).on("keydown.mask", keydownEvent).on("keypress.mask", keypressEvent).on("input.mask paste.mask", function() {
913                    input.prop("readonly") || setTimeout(function() {
914                        var pos = checkVal(!0);
915                        input.caret(pos), tryFireCompleted();
916                    }, 0);
917                }), chrome && android && input.off("input.mask").on("input.mask", androidInputEvent),
918                checkVal();
919            });
920        }
921    });
922});
923$('.form-control_tel').mask('+7 (999) 999-9999');
924
925$('.modal-window').click(function(e){
926    e.preventDefault();
927    e.stopPropagation();
928    var page = $(this).attr('href');
929    console.log(page);
930    var $dialog = $('.modal-block')
931                   .html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%"></iframe>')
932                   .dialog({
933                       autoOpen: false,
934                       modal: true,
935                       height: 625,
936                       width: 500,
937                       title: "Пригласить друга"
938                   });
939    $dialog.dialog('open');
940});
941
942(function ( $ ) {
943
944	$.fn.grtyoutube = function( options ) {
945
946		return this.each(function() {
947
948			// Get video ID
949			var getvideoid = $(this).attr("youtubeid");
950
951			// Default options
952			var settings = $.extend({
953				videoID: getvideoid,
954				autoPlay: true,
955				theme: "dark"
956			}, options );
957
958			// Convert some values
959			if(settings.autoPlay === true) { settings.autoPlay = 1 } else if(settings.autoPlay === false)  { settings.autoPlay = 0 }
960			if(settings.theme === "dark") { settings.theme = "grtyoutube-dark-theme" } else if(settings.theme === "light")  { settings.theme = "grtyoutube-light-theme" }
961
962			// Initialize on click
963			if(getvideoid) {
964				$(this).on( "click", function() {
965					 $("body").append('<div class="grtyoutube-popup '+settings.theme+'">'+
966								'<div class="grtyoutube-popup-content">'+
967									'<span class="grtyoutube-popup-close"></span>'+
968                         '<video src="'+getvideoid+'" autoplay width="400"></video>'+
969									// '<iframe class="grtyoutube-iframe" src="https://www.youtube.com/embed/'+settings.videoID+'?rel=0&wmode=transparent&autoplay='+settings.autoPlay+'&iv_load_policy=3" ' +
970                         // 'controls="0" frameborder="0" allowfullscreen frameborder="0" allow="autoplay; fullscreen"></iframe>'+
971								'</div>'+
972							'</div>');
973				});
974			}
975
976
977			// Close the box on click or escape
978			$(this).on('click', function (event) {
979				event.preventDefault();
980				$(".grtyoutube-popup-close, .grtyoutube-popup").click(function(){
981					$(".grtyoutube-popup").remove();
982				});
983			});
984
985			$(document).keyup(function(event) {
986				if (event.keyCode == 27){
987					$(".grtyoutube-popup").remove();
988				}
989			});
990		});
991	};
992
993}( jQuery ));
994$(".youtube-link").grtyoutube({ theme: "dark" });
995const sliderThumbs = new Swiper('.works-slider-2 .swiper-container', { // ищем слайдер превью по селектору
996    // задаем параметры
997    direction: 'horizontal', // вертикальная прокрутка
998    slidesPerView: 2, // показывать по 3 превью
999    spaceBetween: 15, // расстояние между слайдами
1000    navigation: { // задаем кнопки навигации
1001        nextEl: '.works-next', // кнопка Next
1002        prevEl: '.works-prev' // кнопка Prev
1003    },
1004    freeMode: true, // при перетаскивании превью ведет себя как при скролле
1005    breakpoints: { // условия для разных размеров окна браузера
1006        0: { // при 0px и выше
1007            slidesPerView: 1, // показывать по 1 превью
1008        },
1009        767: { // при 768px и выше
1010            slidesPerView: 1, // показывать по 1 превью
1011        }
1012    }
1013});
1014
1015$(document).ready(function() {
1016    $(".price-list-filial-name").click(function() {
1017        $(this).parent().toggleClass('open')
1018    })
1019});

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.