1"use strict"; 2var _createClass = function() { 3 function defineProperties(target, props) { 4 for (var i = 0; i < props.length; i++) { 5 var descriptor = props[i]; 6 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, "value" in 7 descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, 8 descriptor) 9 } 10 } 11 return function(Constructor, protoProps, staticProps) { 12 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && 13 defineProperties(Constructor, staticProps), Constructor 14 } 15 }(), 16 _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { 17 return typeof obj 18 } : function(obj) { 19 return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? 20 "symbol" : typeof obj 21 }; 22 23function _classCallCheck(instance, Constructor) { 24 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function") 25}! function(module) { 26 var components = [], 27 first_init = !1; 28 module.init = function() { 29 first_init || (first_init = !0); 30 var self = this; 31 $("[data-v-tpl]").not("[data-v-inited]").each(function() { 32 self.initTemplate(this) 33 }) 34 }, module.initTemplate = function(node) { 35 var $node = $(node), 36 instanceName = $node.attr("data-v-tpl"), 37 data, instanceData, templateObj; 38 data = $node.attr("data-v-data-id") ? window[$node.attr("data-v-data-id")] || {} : $node.data( 39 "v-data") || {}, instanceName ? components[instanceName] && (instanceData = components[ 40 instanceName](node, data, instanceName)) : instanceData = module.initDefaultTemplate(node, 41 data), instanceData && ($node.attr("data-v-inited", ""), instanceData && (instanceData 42 .data || (instanceData.data = {}), instanceData.data.inited = !0), templateObj = 43 new Vue(instanceData)) 44 }, module.addComponent = function(name, data) { 45 Vue.component(name, data) 46 }, module.addInstance = function(name, component) { 47 name && component && (components[name] = component, first_init && module.init()) 48 }, module.initDefaultTemplate = function(element, data) { 49 return { 50 el: element, 51 data: data 52 } 53 } 54}(window.vue_utils = window.vue_utils || {}), jQuery(function($) { 55 vue_utils.init() 56 }), 57 function(module) { 58 module.isObject = function isObject(value) { 59 var type = void 0 === value ? "undefined" : _typeof(value); 60 return null != value && ("object" == type || "function" == type) 61 }, module.debounce = function debounce(func, wait, options) { 62 var lastArgs = void 0, 63 lastThis = void 0, 64 maxWait = void 0, 65 result = void 0, 66 timerId = void 0, 67 lastCallTime = void 0, 68 lastInvokeTime = 0, 69 leading = !1, 70 maxing = !1, 71 trailing = !0; 72 if ("function" != typeof func) throw new TypeError("Expected a function"); 73 74 function invokeFunc(time) { 75 var args = lastArgs, 76 thisArg = lastThis; 77 return lastArgs = lastThis = void 0, lastInvokeTime = time, result = func.apply(thisArg, 78 args) 79 } 80 81 function leadingEdge(time) { 82 return lastInvokeTime = time, timerId = setTimeout(timerExpired, wait), leading ? 83 invokeFunc(time) : result 84 } 85 86 function remainingWait(time) { 87 var timeSinceLastCall, timeSinceLastInvoke = time - lastInvokeTime, 88 result = wait - (time - lastCallTime); 89 return maxing ? Math.min(result, maxWait - timeSinceLastInvoke) : result 90 } 91 92 function shouldInvoke(time) { 93 var timeSinceLastCall = time - lastCallTime, 94 timeSinceLastInvoke; 95 return void 0 === lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || 96 maxing && time - lastInvokeTime >= maxWait 97 } 98 99 function timerExpired() { 100 var time = Date.now(); 101 if (shouldInvoke(time)) return trailingEdge(time); 102 timerId = setTimeout(timerExpired, remainingWait(time)) 103 } 104 105 function trailingEdge(time) { 106 return timerId = void 0, trailing && lastArgs ? invokeFunc(time) : (lastArg
106s = lastThis = 107 void 0, result) 108 } 109 110 function cancel() { 111 void 0 !== timerId && clearTimeout(timerId), lastInvokeTime = 0, lastArgs = lastCallTime = 112 lastThis = timerId = void 0 113 } 114 115 function flush() { 116 return void 0 === timerId ? result : trailingEdge(Date.now()) 117 } 118 119 function debounced() { 120 for (var time = Date.now(), isInvoking = shouldInvoke(time), _len = arguments.length, 121 args = Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; 122 if (lastArgs = args, lastThis = this, lastCallTime = time, isInvoking) { 123 if (void 0 === timerId) return leadingEdge(lastCallTime); 124 if (maxing) return timerId = setTimeout(timerExpired, wait), invokeFunc(lastCallTime) 125 } 126 return void 0 === timerId && (timerId = setTimeout(timerExpired, wait)), result 127 } 128 return wait = +wait || 0, module.isObject(options) && (leading = !!options.leading, maxWait = 129 (maxing = "maxWait" in options) ? Math.max(+options.maxWait || 0, wait) : maxWait, 130 trailing = "trailing" in options ? !!options.trailing : trailing), debounced.cancel = 131 cancel, debounced.flush = flush, debounced 132 }, module.poll = function poll(fn, callback, errback, timeout, interval) { 133 var endTime = Number(new Date) + (timeout || 2e3); 134 interval = interval || 100, 135 function p() { 136 fn() ? callback() : Number(new Date) < endTime ? setTimeout(p, interval) : errback( 137 new Error("timed out for " + fn + ": " + arguments)) 138 }() 139 }, module.throttle = function throttle(func, wait, options) { 140 var leading = !0, 141 trailing = !0; 142 if ("function" != typeof func) throw new TypeError("Expected a function"); 143 return module.isObject(options) && (leading = "leading" in options ? !!options.leading : 144 leading, trailing = "trailing" in options ? !!options.trailing : trailing), module 145 .debounce(func, wait, { 146 leading: leading, 147 maxWait: wait, 148 trailing: trailing 149 }) 150 }, module.once = function(fn, context) { 151 var result; 152 return function() { 153 return fn && (result = fn.apply(context || this, arguments), fn = null), result 154 } 155 }, module.memoize = function memoize(fn) { 156 return function() { 157 var args = Array.prototype.slice.call(arguments), 158 hash = "", 159 i = args.length, 160 currentArg; 161 for (currentArg = null; i--;) hash += (currentArg = args[i]) === Object(currentArg) ? 162 JSON.stringify(currentArg) : currentArg, fn.memoize || (fn.memoize = {}); 163 return hash in fn.memoize ? fn.memoize[hash] : fn.memoize[hash] = fn.apply(this, args) 164 } 165 }, module.memoizeTimeout = function memoize(fn) { 166 var timeout = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1e3; 167 return function() { 168 var args = Array.prototype.slice.call(arguments), 169 hash = "", 170 i = args.length, 171 currentArg, cacheValue; 172 for (currentArg = null; i--;) hash += (currentArg = args[i]) === Object(currentArg) ? 173 JSON.stringify(currentArg) : currentArg, fn.memoizeByTimout || (fn 174 .memoizeByTimout = {}); 175 return fn.memoizeByTimout || (fn.memoizeByTimout = {}), hash in fn.memoizeByTimout && 176 (cacheValue = fn.memoizeByTimout[hash], new Date - cacheValue.time < timeout) ? 177 cacheValue.data : ((cacheValue = {}).data = fn.apply(this, args), cacheValue 178 .time = new Date, fn.memoizeByTimout[hash] = cacheValue, cacheValue.data) 179 } 180 } 181 }(window.utils = window.utils || {}), 182 function(module) { 183 function whenDonePromise(action, check) { 184 var promise; 185 return function(callback) { 186 promise || (promise = new Promise(function(resolve, reject) { 187 action && check || reject(), action(); 188 var maxIntrvalCount = 500, 189 interval = setInterval(function() { 190 (maxIntrvalCount -= 1) < 0 && clearInterval(interval), check( 191 function() { 192 clearInterval(interval), resolve() 193 }) 194 }, 200) 195 })), promise.then(function() { 196 callback() 197 }) 198 } 199 } 200 201 function _initMap(mapId, mapConfig) { 202 var map; 203 return new ymaps.Map(mapId, mapConfig) 204 } 205 206 function _createPlacemark(coords) { 207 return new ymaps.Placemark(coords, {}, { 208 preset: "islands#violetDotIconWithCaption", 209 draggable: !0 210 }) 211 } 212 213 function _addSearchPlacemark(map, coords, coordsChanges) {
214 var placemark = _createPlacemark(coords = coords || map.getCenter()); 215 return map.geoObjects.add(placemark), placemark.events.add("dragend", function() { 216 coordsChanges && coordsChanges(placemark.geometry.getCoordinates()) 217 }), map.events.add("click", function(e) { 218 var coords = e.get("coords"); 219 placemark.geometry.setCoordinates(coords), coordsChanges && coordsChanges(coords) 220 }), coordsChanges(coords), placemark 221 } 222 module.ready = whenDonePromise(function() { 223 window.ymaps || $("<script/>").attr("src", 224 "https://api-maps.yandex.ru/2.1/?lang=ru_RU&mode=release").appendTo("head") 225 }, function(success) { 226 window.ymaps && ymaps.ready(function() { 227 success() 228 }) 229 }), module.getMap = function(nodeId, mapConfig) { 230 var promise; 231 return new Promise(function(resolve, reject) { 232 module.ready(function() { 233 var map = _initMap(nodeId, mapConfig); 234 resolve(map) 235 }) 236 }) 237 }, module.destroyMap = function(map) { 238 map && map.destroy() 239 }, module.getAddressByCoords = function(coords) { 240 var promise; 241 return new Promise(function(resolve, reject) { 242 var wait; 243 whenDonePromise(function() {}, function(success) { 244 ymaps.geocode && success() 245 })(function() { 246 ymaps.geocode(coords).then(function(res) { 247 var geoObject = res.geoObjects.get(0); 248 resolve({ 249 name: geoObject.properties.get("name"), 250 description: geoObject.properties.get( 251 "description"), 252 text: geoObject.properties.get("text") 253 }) 254 }, function(err) { 255 reject() 256 }) 257 }) 258 }) 259 }, module.getCoordsByAddress = function(address) { 260 var promise; 261 return new Promise(function(resolve, reject) { 262 ymaps.geocode(address, { 263 results: 1 264 }).then(function(res) { 265 var firstGeoObject, cords = res.geoObjects.get(0).geometry 266 .getCoordinates(); 267 resolve(cords) 268 }, function(err) { 269 reject() 270 }) 271 }) 272 }, module.centerMap = function(map, coords) { 273 map.setCenter(coords) 274 }, module.addPlacemark = function(map, placemark) { 275 if (null == map) return !1; 276 if (!placemark.coords) return !1; 277 var props = {}; 278 if (null != placemark.text && placemark.text.length > 0) { 279 var value_view = ""; 280 if (placemark.text.length > 0) { 281 var rnpos = placemark.text.indexOf("\n"); 282 value_view = rnpos <= 0 ? placemark.text : placemark.text.substring(0, rnpos) 283 } 284 placemark.description ? props.balloonContent = placemark.description : props 285 .balloonContent = placemark.text.replace(/\n/g, "<br />"), props.hintContent = 286 value_view 287 } 288 var options = { balloonCloseButton: !0 }; 289 if (placemark.icon) { 290 options.iconLayout = 'default#image'; 291 options.iconImageHref = '/local/templates/medon/img/map-pin.svg'; 292 options.iconImageSize = [60, 60]; 293 options.iconImageOffset = [-30, -30]; 294 } 295 var obPlacemark = new ymaps.Placemark(placemark.coords, props, options); 296 return map.geoObjects.add(obPlacemark), obPlacemark 297 } 298 }(window.mapService = window.mapService || {}), 299 function(module) { 300 function inViewport(element, options) { 301 var _element$getBoundingC = element.getBoundingClientRect(), 302 top = _element$getBoundingC.top, 303 right = _element$getBoundingC.right, 304 bottom = _element$getBoundingC.bottom, 305 left = _element$getBoundingC.left, 306 width = _element$getBoundingC.width, 307 height = _element$getBoundingC.height, 308 intersection_t = bottom, 309 intersection_r = window.innerWidth - left, 310 intersection_b = window.innerHeight - top, 311 intersection_l = right, 312 threshold_x = options.threshold * width, 313 threshold_y = options.threshold * height; 314 return intersection_t > options.offset.top + threshold_y && intersection_r > options.offset 315 .right + threshold_x && intersection_b > options.offset.bottom + threshold_y && 316 intersection_l > options.offset.left + threshold_x 317 } 318 var inViewRegistry = function() { 319 function inViewRegistry(elements, options) { 320 _classCallCheck(this, inViewRegistry), this.options = options, this.elements = elements, 321 this.current = [], this.handlers = { 322 enter: [], 323 exit: [] 324 }, this.singles = { 325 enter: [], 326 exit: [] 327 } 328 } 329 return _createClass(inViewRegistry, [{ 330 key: "check", 331 value: function check() { 332 var _this = this;
333 return this.elements.forEach(function(el) { 334 var passes = _this.options.test(el, _this.options), 335 index = _this.current.indexOf(el), 336 current = index > -1, 337 entered, exited = !passes && current; 338 passes && !current && (_this.current.push(el), _this.emit( 339 "enter", el)), exited && (_this.current.splice( 340 index, 1), _this.emit("exit", el)) 341 }), this 342 } 343 }, { 344 key: "on", 345 value: function on(event, handler) { 346 return this.handlers[event].push(handler), this 347 } 348 }, { 349 key: "once", 350 value: function once(event, handler) { 351 return this.singles[event].unshift(handler), this 352 } 353 }, { 354 key: "emit", 355 value: function emit(event, element) { 356 for (; this.singles[event].length;) this.singles[event].pop()( 357 element); 358 for (var length = this.handlers[event].length; --length > -1;) this 359 .handlers[event][length](element); 360 return this 361 } 362 }]), inViewRegistry 363 }(), 364 inView = function inView() { 365 if ("undefined" != typeof window) { 366 var interval = 100, 367 triggers = ["scroll", "resize", "load"], 368 selectors = { 369 history: [] 370 }, 371 options = { 372 offset: {}, 373 threshold: 0, 374 test: inViewport 375 }, 376 check = utils.throttle(function() {
377 selectors.history.forEach(function(selector) { 378 selectors[selector].check() 379 }) 380 }, 100); 381 triggers.forEach(function(event) { 382 return addEventListener(event, check) 383 }), window.MutationObserver && addEventListener("DOMContentLoaded", function() { 384 new MutationObserver(check).observe(document.body, { 385 attributes: !0, 386 childList: !0, 387 subtree: !0 388 }) 389 }); 390 var control = function control(selector) { 391 if ("string" == typeof selector) { 392 var elements = [].slice.call(document.querySelectorAll(selector)); 393 return selectors.history.indexOf(selector) > -1 ? selectors[selector] 394 .elements = elements : (selectors[selector] = new inViewRegistry(elements, 395 options), selectors.history.push(selector)), selectors[selector] 396 } 397 }; 398 return control.offset = function(o) { 399 if (void 0 === o) return options.offset; 400 var isNum = function isNum(n) { 401 return "number" == typeof n 402 }; 403 return ["top", "right", "bottom", "left"].forEach(isNum(o) ? function(dim) { 404 return options.offset[dim] = o 405 } : function(dim) { 406 return isNum(o[dim]) ? options.offset[dim] = o[dim] : null 407 }), options.offset 408 }, control.threshold = function(n) { 409 return "number" == typeof n && n >= 0 && n <= 1 ? options.threshold = n : options 410 .threshold 411 }, control.test = function(fn) { 412 return "function" == typeof fn ? options.test = fn : options.test 413 }, control.is = function(el) { 414 return options.test(el, options) 415 }, control.offset(0), control 416 } 417 }; 418 module.$ = inView() 419 }(window.inView = window.inView || {}); 420var _createClass = function() { 421 function defineProperties(target, props) { 422 for (var i = 0; i < props.length; i++) { 423 var descriptor = props[i]; 424 descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, "value" in 425 descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, 426 descriptor) 427 } 428 } 429 return function(Constructor, protoProps, staticProps) { 430 return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && 431 defineProperties(Constructor, staticProps), Constructor 432 } 433}(); 434 435function _classCallCheck(instance, Constructor) { 436 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function") 437} 438jQuery(function($) { 439 var menu = document.getElementById("menu"), 440 header = document.getElementById("masterHeader"), 441 nav = document.getElementsByClassName("nav__geo")[0]; 442 if (menu && nav) { 443 var btnToNavTop = document.getElementsByClassName("btn-to-nav__geo"), 444 height = "-" + nav.clientHeight + "px", 445 close = document.querySelector(".mobile-close"), 446 deskClose = document.querySelector(".header__close-city"), 447 mobileContainer = document.querySelector(".header__container-rMenu"), 448 desContainer = document.querySelector(".header__container-rDes"), 449 $menu = $(menu), 450 $nav = $(nav), 451 $mobileContainer = $(mobileContainer), 452 $desContainer = $(desContainer), 453 $btnMobile = $(".btn__mobile"), 454 $close = $(close), 455 isTouch = !1; 456 $menu.on("touchstart", function(e) { 457 isTouch = !0 458 }), $menu.on("click", function(e) { 459 e.preventDefault(), showCityMenu() 460 }), $menu.on("mouseenter", function() { 461 showCityMenu() 462 }), $close.on("click", function(e) { 463 e.preventDefault(), hideCityMenu() 464 }), $nav.on("mouseleave", function(e) { 465 hideCityMenu() 466 }), deskClose && (deskClose.onclick = function(e) { 467 e.preventDefault(), hideCityMenu() 468 }) 469 } 470 471 function toggleClass(element, className) { 472 if (element && className) { 473 var classString = element.className, 474 nameIndex = classString.indexOf(className); - 1 == nameIndex ? classString += " " + 475 className : classString = classString.substr(0, nameIndex) + classString.substr( 476 nameIndex + className.length), element.className = classString 477 } 478 } 479 480 function addClass(element, className) { 481 if (element && className) { 482 var classString = element.className, 483 nameIndex; - 1 == classString.indexOf(className) && (classString += " " + className, 484 element.className = classString) 485 } 486 } 487 488 function showCityMenu() { 489 var headerEl = document.querySelector('.header'); 490 if (headerEl) { nav.style.top = headerEl.getBoundingClientRect().bottom + 'px'; } 491 $nav.addClass("show"), $mobileContainer.removeClass("hide"), $desContainer.addClass("hide"), 492 $("body").addClass("overflow"), $btnMobile.is(".active") && ($btnMobile.toggleClass( 493 "active"), $(".mobile").toggleClass("display")) 494 } 495 496 function hideCityMenu() { 497 nav.style.top = ''; 498 $nav.removeClass("show"), $mobileContainer.addClass("hide"), $desContainer.removeClass( 499 "hide"), $("body").removeClass("overflow") 500 } 501 }), 502 jQuery(function($) { 503 var btnMobile = document.querySelector(".btn__mobile"); 504 btnMobile && btnMobile.addEventListener("click", function(e) { 505 this.classList.toggle("active"), 506 console.log(e.target); 507 document.querySelector(".mobile").classList.toggle("display"); 508 document.querySelector("body").classList.toggle("overflow"); 509 }); 510 511 $('.js-nav-item-trigger').on('click', function(e) { 512 e.preventDefault(); 513 $(this).parent().toggleClass('active'); 514 $(this).parent().next().toggleClass('hide'); 515 }); 516 }), jQuery(function($) { 517 var tabs = document.getElementsByClassName("tabs"), 518 tabContent = document.getElementsByClassName("content"), 519 tabMobContent = document.getElementsByClassName("content-mobile"), 520 $tabs = $(".tabs"), 521 $tabContent = $(".content"), 522 $tabMobContent = $(".content-mobile"), 523 canClose = !0, 524 clearTimer = null, 525 clearTimerTime = 50, 526 isTouch = !1; 527 528 function startCloseTimer() { 529 clearTimer = setTimeout(function() { 530 closeTab(), clearTimer = null 531 }, clearTimerTime) 532 } 533 534 function clearCloseTimer() { 535 clearTimer && (clearTimeout(clearTimer), clearTimer = null) 536 } 537 538 function closeTab() { 539 clearCloseTimer(), $tabs.removeClass("selected"), $tabContent.addClass("hidden"), 540 $tabMobContent.addClass("hidden") 541 } 542 543 function animateScroll($tab) { 544 var windowWidth; 545 (window.innerWidth || $(window).width()) <= 640 && $("html, body").animate({ 546 scrollTop: $tab.offset().top - 100 547 }, 200) 548 } 549 550 function selectTab($tab, index) { 551 clearCloseTimer(), closeTab(), $tab.addClass("selected"), $tabContent.eq(index).removeClass( 552 "hidden"), $tabMobContent.eq(index).removeClass("hidden") 553 } 554 555 $tabs.on("touchstart", function() { 556 isTouch = !0; 557 var $tab = $(this), 558 index = $tab.parent().index(), 559 iff; 560 $tab.is(".selected") ? closeTab() : (selectTab($tab, index)) 561 }); 562 563 $tabMobContent.on("touchstart", function(e) { 564 e.stopPropagation() 565 }); 566 567 568 $(window).on('load resize', function() { 569 570 if ($(window).width() > 1025) { 571 572 console.log(1); 573 $tabs.on("mouseenter", function() { 574 if (!isTouch) { 575 var $tab = $(this), 576 iff; 577 $tab.is(".selected") || selectTab($tab, $tab.parent().index()) 578 } 579 }); 580 581 $tabs.on("mouseleave", function() { 582 var windowWidth; 583 isTouch || (window.innerWidth || $(window).width()) <= 640 && startCloseTimer() 584 }); 585 } else { 586 console.log(2); 587 } 588 }), 589 590 591 592 $(".filter").on("mouseenter", function() { 593 clearCloseTimer() 594 }), 595 596 $(".filter").on("mouseleave", function() { 597 startCloseTimer() 598 }), 599 600 $tabContent.on("mouseenter", function() { 601 clearCloseTimer() 602 }), 603 604 $tabContent.on("mouseleave", function() { 605 startCloseTimer() 606 }), 607 608 $tabContent.addClass("hidden"), 609 610 $tabMobContent.addClass("hidden") 611 }), 612 jQuery(function($) { 613 function getBalancerHeight($el, $elBalanced, height) { 614 if (!$elBalanced.length) return height; 615 var eheight = $elBalanced.height(); 616 return eheight || height 617 } 618 619 function balancerPageBody() { 620 $(".page-body").each(function() { 621 var textEl = $(this), 622 textElHeight = textEl.height(), 623 textElHeightLimit = textEl.data("character-height"); 624 if (textElHeightLimit && !textEl.is(".open")) { 625 var temporaryElHeight2 = getBalancerHeight(textEl, textEl.find(".page-body__balanced"), textElHeightLimit); 626 textEl.css("height", temporaryElHeight2 + "px") 627 } 628 }) 629 } 630 $(".page-body").each(function() { 631 var textEl = $(this), 632 textElCharacterLimitDefault = textEl.data("rows-limit"); 633 634 if (textEl.find(".page-body").length) { 635 textEl.find(".page-body .inner-content").removeClass("inner-content"); 636 textEl.find(".page-body").removeClass("page-body show-more").attr("data-skip", true); 637 } 638 639 if (textEl.data("skip")) { 640 return; 641 } 642 643 // rows-limit 644 if (textElCharacterLimitDefault) { 645 var textElCharacters = textEl.html().length, 646 showMoreText = textEl.data("show-more"), 647 showLessText = textEl.data("show-less"), 648 textElCharacterLimitSizes = textEl.data("rows-sizes"), 649 textElCharacterLimit = getRowsLimit(), 650 heights = getRowsHeights(textEl, textElCharacterLimit), 651 textElHeight, 652 maxHeight = heights[textElCharacterLimit]; 653 654 textEl.find('h1').each(function() { 655 maxHeight += $(this).height(); 656 }); 657 658 if (textEl.height() > maxHeight) { 659 var temporaryElHeight = maxHeight; 660 textEl.addClass("show-more").html('<div class="inner-content">' + textEl.html() + "</div>"); 661 textEl.css("height", temporaryElHeight + "px"); 662 $('<a href="javascript:void(0);" id="show-more-link" class="show-more-link callback__show">' + showMoreText + "</a>").insertAfter(textEl); 663 664 textEl.siblings(".show-more-link").on("click", function() { 665 var $this = $(this),
666 innerContentHeight = textEl.find(".inner-content").height(); 667 668 if (textEl.height() < innerContentHeight) { 669 $this.html(showLessText), 670 $this.addClass("callback__showed"), 671 textEl.css("height", innerContentHeight + "px").addClass("open"); 672 var timer = setTimeout(function() { 673 textEl.css("height", "") 674 }, 800) 675 } else { 676 $this.html(showMoreText), 677 $this.removeClass("callback__showed"), 678 textEl.css("height", innerContentHeight + "px"); 679 var _timer = setTimeout(function() { 680 textEl.css("height", temporaryElHeight + "px") 681 .removeClass("open") 682 }, 10) 683 } 684 }) 685 } 686 } 687 688 function getRowsLimit() { 689 var winWidth = $(window).width(), 690 limit = void 0, 691 limitBreakpoint = void 0; 692 return $.each(textElCharacterLimitSizes, function(breakpoint, value) { 693 !limit && breakpoint > winWidth ? (limit = value, limitBreakpoint = 694 breakpoint) : limitBreakpoint && breakpoint < 695 limitBreakpoint && (limit = value, limitBreakpoint = breakpoint) 696 }), limit || textElCharacterLimitDefault 697 } 698 699 function getRowsHeights(el, maxRowsLimit) { 700 var html = el.html(); 701 el.addClass("show-more").append('<div class="temporary-el"></div>'); 702 var heigths = [0], 703 temporaryEl = el.find(".temporary-el"), 704 len = html.length, 705 height = 0, 706 reg = /<[^>]+>/, 707 i = 1; 708 if (null !== html.search(reg)) { 709 var matches = html.match(reg); 710 matches && matches.length && matches[0] && (i = matches[0].length + 1) 711 } 712 for (; i < len; i += 20) { 713 var newHtml = html.substr(0, i); 714 if (temporaryEl.html(newHtml), height < temporaryEl.height() && (height = 715 temporaryEl.height(), heigths.push(height)), maxRowsLimit < heigths 716 .length) break 717 } 718 return temporaryEl.remove(), el.removeClass("show-more"), heigths 719 } 720 721 722 // character-limit 723 var textElHeight = textEl.height(), 724 textElCharacters = textEl.html().length, 725 textElCharacterLimit = textEl.data("character-limit"), 726 showMoreText = textEl.data("show-more"), 727 showLessText = textEl.data("show-less"), 728 el, html; 729 if (($(window).width() < 481 && textEl.data("character-limitphone") ? 730 textElCharacterLimit = textEl.data("character-limitphone") : $(window) 731 .width() < 769 && textEl.data("character-limittablet") ? textElCharacterLimit = 732 textEl.data("character-limittablet") : $(window).width() < 1016 && textEl 733 .data("character-limitdesk") && (textElCharacterLimit = textEl.data( 734 "character-limitdesk")), textElCharacterLimit) && textElCharacters > 735 textElCharacterLimit) { 736 var oldHtml = textEl.html(); 737 textEl.addClass("show-more").append('<div class="temporary-el">' + textEl.html() 738 .substr(0, textElCharacterLimit) + "</div>").html( 739 '<div class="inner-content">' + textEl.html() + "</div>"); 740 var temporaryEl = $(".temporary-el"), 741 temporaryElHeight = temporaryEl.height(); 742 temporaryEl.remove(), textEl.css("height", temporaryElHeight + "px"), el = textEl[ 743 0], html = oldHtml, $(el).on("get-character.by-height", function(e, 744 height) { 745 var $inner = $(this).find(".inner-content"); 746 $inner.append('<div class="temporary-el"> </div>'); 747 for (var $temp = $inner.find(".temporary-el"), len = html 748 .length; len--;) { 749 var newHtml = html.substr(0, len); 750 if ($temp.html(newHtml), $temp.height() < height) break 751 } 752 $temp.remove() 753 }), $( 754 '<a href="javascript:void(0);" id="show-more-link" class="show-more-link callback__show">' + 755 showMoreText + "</a>").insertAfter(textEl), textEl.siblings( 756 ".show-more-link").on("click", function() { 757 var $this = $(this),
758 innerContentHeight = textEl.find(".inner-content").height(); 759 if (textEl.height() < innerContentHeight) { 760 $this.html(showLessText), $this.addClass("callback__showed"), 761 textEl.css("height", innerContentHeight + "px").addClass( 762 "open"); 763 var timer = setTimeout(function() { 764 textEl.css("height", "") 765 }, 800) 766 } else { 767 $this.html(showMoreText), $this.removeClass("callback__showed"), 768 textEl.css("height", innerContentHeight + "px"); 769 var _timer2 = setTimeout(function() { 770 textEl.css("height", temporaryElHeight + "px") 771 .removeClass("open") 772 }, 10) 773 } 774 }) 775 } 776 777 778 // character-height 779 var textElHeight = textEl.height(), 780 textElHeightLimit = textEl.data("character-height"), 781 showMoreText = textEl.data("show-more"), 782 showLessText = textEl.data("show-less"); 783 if (textElHeightLimit && textElHeight > textElHeightLimit) { 784 textEl.addClass("show-more").append('<div class="temporary-el">' + textEl.html() 785 .substr(0, textElHeightLimit) + "</div>").html( 786 '<div class="inner-content">' + textEl.html() + "</div>"); 787 var temporaryEl = $(".temporary-el"), 788 temporaryElHeight = textElHeightLimit; 789 temporaryEl.remove(), textEl.css("height", temporaryElHeight + "px"), $( 790 '<a href="javascript:void(0);" id="show-more-link" class="show-more-link callback__show">' + 791 showMoreText + "</a>").insertAfter(textEl), textEl.siblings( 792 ".show-more-link").on("click", function() { 793 var $this = $(this), 794 innerContentHeight = textEl.find(".inner-content").height(); 795 if (textEl.height() < innerContentHeight) { 796 $this.html(showLessText), textEl.css("height", 797 innerContentHeight + "px").addClass("open"); 798 var timer = setTimeout(function() { 799 textEl.css("height", "") 800 }, 800) 801 } else { 802 var temporaryElHeight2 = getBalancerHeight(textEl, textEl.find( 803 ".page-body__balanced"), temporaryElHeight); 804 $this.html(showMoreText), textEl.css("height", 805 innerContentHeight + "px"); 806 var _timer3 = setTimeout(function() { 807 textEl.css("height", temporaryElHeight2 + "px") 808 .removeClass("open") 809 }, 10) 810 } 811 }) 812 } 813 }), balancerPageBody(), $(window).resize(balancerPageBody) 814 }), jQuery(function($) { 815 var stickyElement = $(".sticky-element"), 816 stickyElementPositioner = $(".footer__top"), 817 header = $(".subheader"); 818 819 function stickyElementFixed() { 820 stickyElement.addClass("sticky-element-sticky") 821 } 822 823 function stickyElementStatic() { 824 stickyElement.removeClass("sticky-element-sticky") 825 } 826 stickyElement.length && stickyElementPositioner.length && $(window).scroll(function() { 827 var elementTarget = stickyElementPositioner.offset().top, 828 scrollTop = $(window).scrollTop() + $(window).height(), 829 elementTrigger = header.offset().top, 830 scrollBottom = $(window).scrollTop(); 831 scrollTop <= elementTarget && scrollBottom >= elementTrigger ? stickyElementFixed() : 832 stickyElementStatic() 833 }) 834 }), 835 jQuery(function($) { 836 var stickyElement = $(".subheader"), 837 stickyElementPositioner = $(".subheader-wrapper"), 838 header = $(".filter"); 839 var stickyHeaderMob = $(".header__mobile").not(".header__mobile--last"); 840 841 function stickyElementFixed() { 842 stickyElement.addClass("subheader_fixed"), 843 stickyElementPositioner.addClass("subheader-wrapper_fixed"); 844 stickyHeaderMob.addClass("is-fixed"); 845 } 846 847 function stickyElementStatic() { 848 stickyElement.removeClass("subheader_fixed"), 849 stickyElementPositioner.removeClass("subheader-wrapper_fixed"); 850 stickyHeaderMob.removeClass("is-fixed"); 851 } 852 853 header.length || (header = $(".header-post")), 854 stickyElement.length && stickyElementPositioner.length && $(window).scroll(function() { 855 if (!$('body').hasClass('static-header')) { 856 var elementTarget = stickyElementPositioner.offset().top, 857 scrollTop = $(window).scrollTop() + $(window).height(), 858 elementTrigger = header.offset().top, 859 scrollBottom = $(window).scrollTop(); 860 861 scrollTop >= elementTarget && scrollBottom >= elementTrigger ? stickyElementFixed() : stickyElementStatic() 862 } 863 }) 864 }), 865 function() { 866 function sameHeights() { 867 helper("contacts__adr"), helper("contacts__metro") 868 } 869 870 function helper(className) { 871 var $nodeList = $("." + className); 872 if ($nodeList) { 873 var heights = []; 874 $nodeList.each(function() { 875 this.style.height = "", heights.push($(this).height()) 876 }); 877 var tallest = Math.max.apply(Math, heights), 878 smallest = Math.min.apply(Math, heights), 879 tallestIndex = -1; 880 tallest != smallest && ($(heights).each(function(i, height) { 881 -1 == tallestIndex && height == tallest && (tallestIndex = i) 882 }), $nodeList.each(function(i) { 883 i != tallestIndex && (this.style.height = tallest + "px") 884 })) 885 } 886 } 887 var resized = !0, 888 timeout = null, 889 refresh = function refresh() { 890 resized ? (requestAnimationFrame(sameHeights), timeout = setTimeout(refresh, 100), resized = ! 891 1) : timeout && (clearTimeout(timeout), timeout = null) 892 }, 893 refreshD = utils.throttle(sameHeights, 17); 894 window.addEventListener("resize", function() { 895 refreshD() 896 }), refreshD(), $.each([100, 200, 500, 1500, 4e3, 8e3, 16e3, 32e3], function(i, t) { 897 setTimeout(function() { 898 refreshD() 899 }, t) 900 }), window.contacts__metro__set_resize = function() { 901 refreshD() 902 } 903 }(), jQuery(function($) { 904 $(".slider-wrapper").each(function() { 905 var currentslide = 0, 906 $sliderWrapper = $(this), 907 backgroundContainer = $sliderWrapper.data("background-container"), 908 $backgroundContainer, $slider = $sliderWrapper.find(".slider-item"), 909 $next = $sliderWrapper.find(".next"), 910 $prev = $sliderWrapper.find(".prev"), 911 interval; 912 913 function slide() { 914 var item = $slider.eq(currentslide); 915 $slider.hide(), item.css("display", "inline-block"), item.data( 916 "background-style") && $backgroundContainer.attr("style", item.data( 917 "background-style")) 918 } 919 920 function next() { 921 (currentslide += 1) > $slider.length - 1 && (currentslide = 0), slide() 922 } 923 924 function prev() { 925 (currentslide -= 1) < 0 && (currentslide = $slider.length - 1), slide() 926 } 927 928 function clear() { 929 clearInterval(interval) 930 } 931 backgroundContainer && (($backgroundContainer = $sliderWrapper.find( 932 backgroundContainer)).length || ($backgroundContainer = $sliderWrapper 933 .closest(backgroundContainer))), slide(), $next.on("click", next), $prev.on( 934 "click", prev) 935 }) 936 }), $(document).ready(function($) { 937 $(".btnOpenForm").on("click", function(event) { 938 event.preventDefault(), $.ajax({ 939 url: $(this).attr("href") ? $(this).attr("href") : $(this).data("url") 940 }).done(function(data) { 941 var $data = $(data); 942 $data.appendTo("body"), $.fn.webform && $data.find(".js-webform") 943 .webform(), $("html").addClass("fixForModelForm"); 944 for (var inputs = document.getElementsByTagName("input"), i = 0; i < 945 inputs.length; i++) 946 if ("js-blink-input" == document.getElementsByTagName("input")[i] 947 .id) { 948 var id = document.getElementsByTagName("input")[i].id, 949 elem = document.getElementById(id); 950 elem.parentNode.removeChild(elem) 951 } $(".form-popup-bg").addClass("is-visible"), $(".form-popup-bg").on( 952 "click", 953 function(event) { 954 ($(event.target).is(".form-popup-bg") || $(event.target).is( 955 ".close-button")) && (event.preventDefault(), $(this) 956 .remove(), $("html").removeClass("fixForModelForm")) 957 }) 958 }).fail(function(xhr) { 959 console.log("error", xhr) 960 }) 961 }) 962 }), $(document).ready(function($) { 963 $(".btnOpenGal").on("click", function(event) { 964 event.preventDefault(), $("body").append( 965 '<div class="form-popup-bg form-popup-bg_img"><div class="form-popup-bg_img-close-area"></div><div class="form-container img-container"><span class="close-button"></span><img src="' + 966 $(this).attr("href") + '"></div></div>'), $(".form-popup-bg").addClass( 967 "is-visible"), $(".form-popup-bg").on("click", function(event) { 968 ($(event.target).is(".form-popup-bg") || $(event.target).is( 969 ".close-button")) && (event.preventDefault(), $(this).remove(), $( 970 document).off("keyup.popup-img")) 971 }), $(document).on("keyup.popup-img", function handler(e) { 972 27 === e.keyCode && $(".close-button").click() 973 }) 974 }), $(".btnOpenPhoto").on("click", function(event) { 975 event.preventDefault(), $("body").append( 976 '<div class="form-popup-bg form-popup-bg_img"><div class="form-popup-bg_img-close-area"></div><div class="form-container img-container form-img"><div class="gallery__arrow-prev" id="prevp"></div><div id="nextp" class="gallery__arrow-next"></div><span class="close-button"></span><img src="' + 977 $(this).attr("href") + '" alt="' + $(this).attr("alt") + 978 '"><p class="photo-text">' + $(this).attr("data") + "</p></div></div>"), $( 979 ".form-popup-bg").addClass("is-visible"); 980 var id = $(this).data("id"), 981 galleryId = $(this).closest(".gallery").data("gallery"), 982 imgs = galleryImgs[galleryId], 983 imgcount = imgs.length, 984 currentIndex = 0; 985 986 function getCurrentIndex(id) { 987 for (var index = 0, i = 0; i < imgs.length; i++) id == imgs[i].id && (id = i); 988 return id 989 } 990 991 function showImg(img) { 992 $(".img-container").find("img").not(".close-button").attr("src", img.big_img) 993 .attr("alt", img.name), $(".img-container").find(".photo-text").text(img.name) 994 } 995 currentIndex = getCurrentIndex(id), showImg(imgs[currentIndex]), $("#nextp").click( 996 function() { 997 (currentIndex += 1) >= imgs.length && (currentIndex = 0), showImg(imgs[ 998 currentIndex]) 999 }), $("#prevp").click(function() { 1000 (currentIndex -= 1) < 0 && (currentIndex = imgs.length - 1), showImg(imgs[ 1001 currentIndex]) 1002 }), $(".form-popup-bg").on("click", function(event) { 1003 ($(event.target).is(".form-popup-bg") || $(event.target).is( 1004 ".close-button")) && (event.preventDefault(), $(this).remove(), $( 1005 document).off("keyup.popup-img")) 1006 }), $(document).on("keyup.popup-img", function handler(e) { 1007 27 === e.keyCode && $(".close-button").click() 1008 }) 1009 }) 1010 }), $(document).ready(function($) { 1011 if (window.addressWorkTime) { 1012 var workTimes = addressWorkTime, 1013 $workTime = $(".footer__metro"), 1014 index = 0; 1015 $workTime.on("click", ".footer__prev-btn", prev), $workTime.on("click", ".footer__next-btn", 1016 next) 1017 } 1018 1019 function changeTime(index) { 1020 var workTime = workTimes[index], 1021 $times = $workTime.find(".footer__metro-work .footer__metro-hours"); 1022 $times.eq(0).text(workTime.worktime), $times.eq(1).text(workTime.worktime_saturday), $times 1023 .eq(2).text(workTime.worktime_sunday), $workTime.find(".footer__metro-name").text(workTime 1024 .metro), $workTime.find(".metro-svg").attr("fill", workTime.metro_color_line) 1025 } 1026 1027 function prev() { 1028 (index -= 1) < 0 && (index = workTimes.length - 1), changeTime(index) 1029 } 1030 1031 function next() { 1032 (index += 1) >= workTimes.length && (index = 0), changeTime(index) 1033 } 1034 }); 1035var VideoGallery = function() { 1036 function VideoGallery(videos, section, parent, $parent) { 1037 _classCallCheck(this, VideoGallery), this.videos = videos, this.section = section, this.parent = 1038 parent, this.slideIndex = 0, $parent && $parent.length || ($parent = $("." + section)), 1039 $parent.append( 1040 '<div class="form-popup-bg form-popup-bg_video"><div class="form-popup-bg_video-close-area"></div><div class="form-container video-container form-img form-popup-bg_one"><div class="gallery__arrow-prev"></div><div class="gallery__arrow-next"></div><span class="close-button"></span></div></div>' 1041 ), this.loadImages() 1042 } 1043 return _createClass(VideoGallery, [{ 1044 key: "loadImages", 1045 value: function loadImages() { 1046 var _this = this, 1047 counter = 0; 1048 $.each(this.videos, function(i) { 1049 $(".form-popup-bg > .video-container").append( 1050 '<div class="gallery-slides"><iframe width="780px" height="450" src="' + 1051 _this.videos[i].video + 1052 `" frameborder="0" allowfullscreen></iframe><p class="video-text"> </p></div>"`), counter++ 1053 }) 1054 } 1055 }, {
1056 key: "openModal", 1057 value: function openModal(arg) { 1058 $(".form-popup-bg").addClass("is-visible"), this.currentSlide(arg) 1059 } 1060 }, { 1061 key: "openModalLink", 1062 value: function openModalLink(link) { 1063 $(".form-popup-bg > .video-container").append( 1064 '<div class="gallery-slides"><iframe width="780px" height="450" src="' + 1065 link + '" frameborder="0" allowfullscreen></iframe></div>'), $( 1066 ".form-popup-bg").addClass("is-visible"), $(".form-popup-bg") 1067 .addClass("form-popup-bg_one") 1068 } 1069 }, { 1070 key: "closeModal", 1071 value: function closeModal() { 1072 $(".form-popup-bg").removeClass("is-visible"), $(".form-popup-bg").remove() 1073 } 1074 }, { 1075 key: "currentSlide", 1076 value: function currentSlide(id) { 1077 for (var index = 0, i = 0; i < this.videos.length; i++) id == this.videos[i] 1078 .id && (id = i); 1079 this.showSlides(this.slideIndex = id) 1080 } 1081 }, { 1082 key: "changeSlide", 1083 value: function changeSlide(arg) { 1084 this.showSlides(this.slideIndex += arg) 1085 } 1086 }, { 1087 key: "showSlides", 1088 value: function showSlides(arg) { 1089 var i = void 0, 1090 slides = $(".gallery-slides"); 1091 for (arg >= slides.length && (this.slideIndex = 0), arg < 0 && (this 1092 .slideIndex = slides.length - 1), i = 0; i < slides.length; i++) 1093 slides[i].style.display = "none"; 1094 slides[this.slideIndex].style.display = "block" 1095 } 1096 }]), VideoGallery 1097}(); 1098$(document).ready(function($) { 1099 var gallery; 1100 $(".btnOpenVid").click(function(e) { 1101 e.preventDefault(); 1102 var $this = $(this), 1103 id = $this.data("id"), 1104 videoLink = $this.attr("href") || $this.data("href"), 1105 galleryId = $this.closest(".galleryVid").data("gallery"), 1106 videos = window.galleryVideos && galleryVideos[galleryId] || [], 1107 gallery, gallery; 1108 !videos.length && videoLink ? (gallery = new VideoGallery(videos, "galleryVid", 1109 "btnOpenVid", $this.closest(".galleryVid"))).openModalLink(videoLink) : (( 1110 gallery = new VideoGallery(videos, "galleryVid", "btnOpenVid", $this 1111 .closest(".galleryVid"))).openModal(id), $(".gallery__arrow-prev") 1112 .click(function() { 1113 gallery.changeSlide(-1) 1114 }), $(".gallery__arrow-next").click(function() { 1115 gallery.changeSlide(1) 1116 })); 1117 $(".close-button").click(function() { 1118 gallery.closeModal() 1119 }), $(".form-popup-bg_video-close-area").click(function() { 1120 gallery.closeModal() 1121 }) 1122 }) 1123 }), $(".slide-container").each(function() { 1124 var currentslide = 0, 1125 $slider = $(this).find(".slide-item"), 1126 $parent = $(this), 1127 $next = $parent.find(".slide-next"), 1128 $prev = $parent.find(".slide-prev"), 1129 interval; 1130 1131 function slide() { 1132 var item = $slider.eq(currentslide); 1133 $slider.addClass("slide-hide"), $slider.removeClass("slide-active"), item.addClass( 1134 "slide-active") 1135 } 1136 1137 function next() { 1138 (currentslide += 1) > $slider.length - 1 && (currentslide = 0), slide() 1139 } 1140 1141 function prev() { 1142 (currentslide -= 1) < 0 && (currentslide = $slider.length - 1), slide() 1143 } 1144 1145 function clear() { 1146 clearInterval(interval) 1147 } 1148 slide(), $next.on("click", next), $prev.on("click", prev) 1149 }), $(document).ready(function() { 1150 $(".container").each(function() { 1151 var highestBox = 0; 1152 $(".column", this).each(function() { 1153 $(this).height() > highestBox && (highestBox = $(this).height()) 1154 }), $(".column", this).height(highestBox) 1155 }) 1156 }), $(document).ready(function() { 1157 function balancer() { 1158 $(".column-container").each(function() { 1159 var height = $(".resizeMain", this).height(); 1160 $(".resizeItem", this).css("max-height", height + "px") 1161 }) 1162 } 1163 balancer(), $(window).resize(balancer) 1164 }), jQuery(function($) { 1165 var $carousel = $(".slick-carousel"); 1166 $carousel.length && ($carousel.on("init", function() { 1167 var $last; 1168 $(this).find(".slick-track .slick-active").last().addClass("slick-active_last") 1169 }), $carousel.on("beforeChange", function(slider, domSlider, slide, animSlide) { 1170 var $last, $next, $prev, $last; 1171 ($last = $(this).find(".slick-active_last")).length ? slide
1171< animSlide ? ($last 1172 .next().addClass("slick-active_last"), $last.removeClass( 1173 "slick-active_last")) : ($last.prev().addClass("slick-active_last"), 1174 $last.removeClass("slick-active_last")) : ($last = $(this).find( 1175 ".slick-track .slick-active").last()).addClass("slick-active_last") 1176 }), $carousel.on("setPosition", function(e, c) { 1177 var $last, $last; 1178 ($last = $(this).find(".slick-active_last")).removeClass("slick-active_last"), ( 1179 $last = $(this).find(".slick-track .slick-active").last()).addClass( 1180 "slick-active_last") 1181 }), $carousel.slick({ 1182 infinite: !0, 1183 slidesToShow: 4, 1184 slidesToScroll: 1, 1185 arrows: !0, 1186 dots: !0, 1187 nextArrow: '<div class="slide__arrow-next"></div>', 1188 prevArrow: '<div class="slide__arrow-prev"></div>', 1189 customPaging: function customPaging(slider, i) { 1190 var thumb = $(slider.$slides[i]).data(); 1191 return "<a></a>" 1192 }, 1193 responsive: [{ 1194 breakpoint: 1100, 1195 settings: { 1196 slidesToShow: 3 1197 } 1198 }, { 1199 breakpoint: 860, 1200 settings: { 1201 slidesToShow: 2 1202 } 1203 }, { 1204 breakpoint: 660, 1205 settings: { 1206 slidesToShow: 1 1207 } 1208 }] 1209 })) 1210 }), $(document).ready(function() { 1211 if ($(".slick-banner").length) { 1212 var autoplaySpeed = 4e3; 1213 $(".slick-banner").on("init", function() { 1214 var self = this; 1215 setTimeout(function() { 1216 var $this = $(self); 1217 setSlideTimout($this), $this.slick("slickPlay") 1218 }, 0) 1219 }), $(".slick-banner").on("afterChange", function() { 1220 var $this; 1221 setSlideTimout($(this)) 1222 }), jQuery(".slick-banner").slick({ 1223 infinite: !0, 1224 slidesToShow: 1, 1225 slidesToScroll: 1, 1226 arrows: !0, 1227 dots: !0, 1228 autoplay: !0, 1229 nextArrow: '<div class="banner__arrow-next"></div>', 1230 prevArrow: '<div class="banner__arrow-prev"></div>', 1231 appendArrows: $(".slick-banner_arrows-wrapper"), 1232 slide: "div.banner", 1233 customPaging: function customPaging(slider, i) { 1234 var thumb = $(slider.$slides[i]).data(); 1235 return "<a></a>" 1236 } 1237 }) 1238 } 1239 1240 function setSlideTimout($slider) { 1241 var speed = $slider.find(".slick-active").data("time-display"); 1242 speed ? speed *= 1e3 : speed = autoplaySpeed, $slider.slick("slickSetOption", "autoplaySpeed", 1243 speed) 1244 } 1245 }), $(document).ready(function($) { 1246 $(".price-hide-analysis").on("click", function() { 1247 $(".price-analysis").hide(), $(".price-show-analysis").attr("style", "") 1248 }), $(".price-show-analysis").on("click", function() { 1249 $(".price-analysis").show(), $(".price-show-analysis").hide() 1250 }) 1251 }), $(document).ready(function($) { 1252 var tabs = $(".tabss .contacts__notes"); 1253 tabs.click(function(e) { 1254 e.preventDefault(); 1255 var $this = $(this), 1256 $link = $(this).find("a"); 1257 tabs.removeClass("activer"), tabs.find("a").removeClass("active"), $this.addClass( 1258 "activer"), $link.addClass("active"), $(".contacts__content").find( 1259 ".contacts-item__how").hide(); 1260 var index = $this.closest(".contacts__col").index(), 1261 $contacts, $next, $hows; 1262 $this.closest(".contacts").next(".contacts__content").find(".contacts-item__how").eq( 1263 index).fadeIn(200) 1264 }), tabs.eq(0).trigger("click") 1265 }), 1266 function($, window, document, undefined) { 1267 var $html = $("html"); 1268 1269 function updateSvg() { 1270 $(".c-dropdown__list").find("svg").each(function() { 1271 $(this).parent().hide() 1272 }), $(".c-dropdown__list").find("svg").each(function() { 1273 $(this).parent().show() 1274 }) 1275 } 1276 $html.on("click.ui.dropdown", ".js-dropdown", function(e) { 1277 e.preventDefault(), $(this).toggleClass("is-open"), $(this).is(".is-open") && ( 1278 updateSvg(), window.contacts__metro__set_resize && contacts__metro__set_resize()) 1279 }), 1280 $html.on("click.ui.dropdown", ".js-dropdown [data-dropdown-value]", function(e) { 1281 e.preventDefault(); 1282 var $item = $(this), 1283 $dropdown = $item.parents(".js-dropdown"); 1284 $dropdown.find(".js-dropdown__input").val($item.data("dropdown-value")).trigger("keyup"), $dropdown.find( 1285 ".js-dropdown__current").text($item.data("dropdown-value")), $dropdown.find( 1286 ".js-dropdown__current").addClass("c-button--dropdown_selected") 1287 }), 1288 $html.on("keyup", ".js-dropdown-search-input", function(e) { 1289 var dropdown = $(this).closest('.js-dropdown'), 1290 noResult = dropdown.find(".js-dropdown-search-no-result"), 1291 items = dropdown.find('[data-dropdown-value]'),
1292 query = $(this).val(), 1293 count = 0; 1294 1295 noResult.hide(); 1296 items.show(); 1297 items.each(function() { 1298 $(this).html($(this).data("dropdown-value")); 1299 1300 if (query.length > 0) { 1301 if ($(this).data("dropdown-value").toUpperCase().indexOf(query.toUpperCase()) < 0) { 1302 $(this).hide(); 1303 } 1304 else { 1305 $(this).html($(this).data("dropdown-value").replace(RegExp(query, 'ig'), '<span class="highlight">$&</span>')); 1306 count++; 1307 } 1308 } 1309 }); 1310 1311 if (query.length > 0) { 1312 dropdown.addClass("is-open"); 1313 1314 if (count === 0) 1315 noResult.show(); 1316 } 1317 }), 1318 $html.on("click.ui.dropdown", function(e) { 1319 var $target; 1320 $(e.target).parents().hasClass("js-dropdown") || $(".js-dropdown").removeClass("is-open"); 1321 1322 if (!$(e.target).closest("[data-dropdown-value]").length) { 1323 var $input = $(".js-dropdown-search-input"); 1324 if ($input.closest('.js-dropdown').find('[data-dropdown-value="' + $input.val() + '"]').length === 0) 1325 $input.val("").trigger("keyup"); 1326 } 1327 }), 1328 $("body").on("click", ".js-dropdown-reset", function() { 1329 $(".js-dropdown__current").each(function() { 1330 var $current = $(this); 1331 $current.text($current.data("default")), $current.removeClass( 1332 "c-button--dropdown_selected") 1333 }), $(".js-dropdown__input").each(function() { 1334 var $input = $(this); 1335 $input.val($input.data("default")) 1336 }), $(".js-dropdown-search-input").trigger("keyup") 1337 }) 1338 }(jQuery, window, document), $(".contacts__show-more").on("click", function() { 1339 var $this = $(this), 1340 activeClass = "active"; 1341 $this.is(".active") ? ($this.removeClass("active"), $this.siblings(".contacts__content-hide") 1342 .fadeOut(200)) : ($this.addClass("active"), $this.siblings(".contacts__content-hide") 1343 .fadeIn(200)) 1344 }), $(".js-contacts__show-more").on("click", function() { 1345 var $this = $(this), 1346 activeClass = "active"; 1347 $this.is(".active") ? ($this.removeClass("active"), $this.siblings(".contacts__content-hide2") 1348 .fadeOut(200)) : ($this.addClass("active"), $this.siblings(".contacts__content-hide2") 1349 .fadeIn(200)) 1350 }), jQuery(function($) { 1351 $(".whatwedo-check-black").find(".whatwedo__list li").each(function() { 1352 var $this = $(this); 1353 $this.find("a").length || $this.addClass("whatwedo__list__black") 1354 }) 1355 }), jQuery(function($) { 1356 $(".flex-column-count").each(function() { 1357 var $flex = $(this), 1358 maxColumns = $flex.data("cols-limit"), 1359 gap = $flex.data("gap-limit"), 1360 $childs = $flex.children(), 1361 count = $childs.length, 1362 heights = []; 1363 $childs.each(function() { 1364 var $this = $(this); 1365 heights.push($this.height()) 1366 }); 1367 var maxHeight = Math.max.apply(Math, heights), 1368 rowsInColumn, newFlexHeight = Math.ceil(count / maxColumns) * maxHeight + "px"; 1369 $flex.css("height", newFlexHeight); 1370 var widths = []; 1371 $childs.each(function() { 1372 var $this = $(this); 1373 widths.push($this.width()) 1374 }); 1375 var maxWidth = Math.max.apply(Math, widths); 1376 1377 function getNewHeight() { 1378 for (var flexWidth = $flex.width(), columns = maxColumns, columnsWidth = 1379 maxWidth * columns + gap * (columns - 1); flexWidth + 1 < columnsWidth && 1380 (columnsWidth = maxWidth * --columns + gap * (columns - 1), columns);); 1381 var rowsInColumn, newFlexHeight; 1382 return columns < 1 && (columns = 1), Math.ceil(count / columns) * maxHeight + "px" 1383 } 1384 1385 function reCalcHeight() { 1386 $flex.css("height", getNewHeight()) 1387 } 1388 reCalcHeight(), $(window).on("resize", utils.debounce(reCalcHeight, 100)) 1389 }) 1390 }), 1391 function() { 1392 var nav$ = $(".clinicsNav"); 1393 if (nav$.length) { 1394 var document$ = $(document), 1395 wndw$ = $(window), 1396 navTop, navHeight, Anchor1, Anchor2, Anchor2_2, Anchor3, Anchor4, Anchor5, Anchor6, Anchor7, 1397 last_dheight = 0, 1398 anhorIds = ["content-contraindication", "content-treatment_benef
1398its", 1399 "content-treatment_plan", "content-appointment", "content-doctors", "content-reviews", 1400 "content-prices", "content-map" 1401 ], 1402 anhors = []; 1403 calcOffset(), $([500, 1500, 4e3, 6e3, 1e4, 15e3]).each(function(i, time) { 1404 setTimeout(calcOffset, time), setTimeout(onScoll, time) 1405 }), $(window).on("resize", utils.debounce(calcOffset, 100)), wndw$.scroll(utils.throttle( 1406 onScoll, 50)), nav$.find("a").on("click", function(e) { 1407 e.preventDefault(); 1408 var this$; 1409 var link = $(this).attr("href"); 1410 var $linkContent = $(link); 1411 1412 if ($linkContent.length) { 1413 var top = $linkContent.offset().top + 1; 1414 1415 //nav$.is(".stickyNav") || (top -= navHeight + 50), 1416 1417 $("html, body").animate({ 1418 scrollTop: top 1419 }, 800, "swing") 1420 } 1421 }) 1422 } 1423 1424 function calcOffset() { 1425 var dheight = document$.height(); 1426 dheight != last_dheight && (last_dheight = dheight, nav$.is(".stickyNav") || (navTop = nav$ 1427 .offset().top, navHeight = nav$.height()), anhors.length || $.each(anhorIds, function( 1428 i, id) { 1429 var $node = $("#" + id); 1430 if ($node.length) anhors.push({ 1431 id: id, 1432 node: $node, 1433 top: 0 1434 }); 1435 else { 1436 var $removeLink = $(".nav__item").find("a").filter('[href="#' + id + '"]'); 1437 $removeLink.length && $removeLink.parent().remove() 1438 } 1439 }), $.each(anhors, function(i, anhor) { 1440 anhors[i].top = Math.round(anhor.node.position().top) 1441 }), anhors.sort(function(a, b) { 1442 return a.top > b.top 1443 })) 1444 } 1445 1446 function toggleSelectedClass(id) { 1447 nav$.find("li").removeClass("selectedElem"); 1448 var link$ = nav$.find('a[href="#' + id + '"]'); 1449 link$.length && link$.closest("li").addClass("selectedElem") 1450 } 1451 1452 function onScoll() { 1453 var docTop = document$.scrollTop(); 1454 if (docTop > navTop + navHeight ? nav$.addClass("stickyNav") : nav$.removeClass("stickyNav"), 1455 anhors[0].top && !(docTop < anhors[0].top)) 1456 for (var len = anhors.length; len--;) 1457 if (docTop >= anhors[len].top) { 1458 //toggleSelectedClass(anhors[len].id); 1459 break 1460 } 1461 } 1462 }(), jQuery(function($) { 1463 $(".js-gallery__show-more").on("click", function(e) { 1464 e.preventDefault(); 1465 var $gallery = $(this).closest(".gallery").next(".gallery"); 1466 $gallery.toggle(); 1467 var $showMore = $(this).find(".gallery__more-showMore"); 1468 $gallery.is(":visible") ? $showMore.text($showMore.data("showen")) : $showMore.text( 1469 $showMore.data("hidden")) 1470 }) 1471 }), jQuery(function($) { 1472 $(".filterNav").keyup(function() { 1473 var filter_text = $(this).val(); 1474 filter_text ? (filter_text = filter_text.toLowerCase(), $(".filterList a").each( 1475 function() { 1476 $(this).text().toLowerCase().indexOf(filter_text) >= 0 ? $(this) 1477 .parent().slideDown() : $(this).parent().slideUp() 1478 })) : $(".filterList li").slideDown() 1479 }); 1480 var $links = $(".filterList li a"); 1481 $links.click(function() { 1482 $links.removeClass("hover"), $(this).addClass("hover") 1483 }) 1484 }), jQuery(function($) { 1485 $(".doctor-metro, .doctor-metro__desk, .doctor-wrap").on("click", function(e) { 1486 e.preventDefault(), e.stopPropagation(), $(this).closest(".doctor__col").toggleClass( 1487 "doctor__col_active") 1488 }) 1489 }), jQuery(function($) { 1490 $(".doctor-metro").mouseenter(function(e) { 1491 e.preventDefault(), $(this).next(".doctor-wrap").css("opacity", "1") 1492 }) 1493 }), jQuery(function($) { 1494 $(".doctor-metro").mouseleave(function(e) { 1495 e.preventDefault(), $(this).next(".doctor-wrap").css("opacity", "0") 1496 }) 1497 }), jQuery(function($) { 1498 function showSuccessFormText(forms) { 1499 setTimeout(function() { 1500 $(forms).find(".form-success span").each(function() { 1501 var $this; 1502 $(this).addClass("showed") 1503 }), hideSuccessFormText($forms) 1504 }, 50) 1505 } 1506 1507 function hideSuccessFormText(forms) { 1508 $(forms).find(".form-success span").each(function() { 1509 var $this = $(this), 1510 time = $this.data("time") || 3e3; 1511 setTimeout(function() { 1512 $this.removeClass("showed") 1513 }, time) 1514 }) 1515 } 1516 var $forms = $(".webform_doctor"); 1517 showSuccessFormText($forms), $forms.on("afterSend.bx.webform", function() { 1518 showSuccessFormText($(this).closest(".webform_doctor")) 1519 }) 1520 }); 1521var store = new Vuex.Store({ 1522 state: { 1523 countries: [], 1524 selectedCountry: !1, 1525 blogCharsGroup: !1 1526 }, 1527 mutations: { 1528 initCountries: function initCountries(state, countries) { 1529 state.countries = countries 1530 }, 1531 selectCountry: function selectCountry(state, country) { 1532 state.selectedCountry = country 1533 }, 1534 selectBlogCharsGroup: function selectBlogCharsGroup(state, gruop) { 1535 state.blogCharsGroup = gruop 1536 } 1537 }, 1538 actions: { 1539 initCountries: function initCountries(_ref, _ref2) { 1540 var commit = _ref.commit, 1541 country = _ref2.country, 1542 countries = _ref2.countries; 1543 countries && countries.length && (commit("initCountries", countries), countries 1544 .forEach(function(_country) { 1545 _country.id == country && commit("selectCountry", _country) 1546 })) 1547 } 1548 }, 1549 getters: { 1550 selectedCountryId: function selectedCountryId(state) { 1551 return state.selectedCountry && state.selectedCountry.id || 0 1552 } 1553 } 1554}); 1555 1556function _toConsumableArray(arr) { 1557 if (Array.isArray(arr)) { 1558 for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; 1559 return arr2 1560 } 1561 return Array.from(arr) 1562} 1563vue_utils.addInstance("footer-map", function(element, data) { 1564 return data.map = "", { 1565 el: element, 1566 data: data, 1567 mounted: function mounted() { 1568 var self = this; 1569 inView.$('[data-v-tpl="footer-map"]').once("enter", function() { 1570 self.initMap() 1571 }); 1572 var timer = setTimeout(function() { 1573 self.initMap() 1574 }, 2e4); 1575 jQuery(window).on("load", function() { 1576 setTimeout(function() { 1577 self.initMap() 1578 }, 15e3) 1579 }) 1580 }, 1581 destroyed: function destroyed() { 1582 mapService.destroyMap(this.map) 1583 }, 1584 methods: { 1585 initMap: function initMap() { 1586 var self = this; 1587 self.map || (self.map = !0, mapService.getMap(this.mapId, { 1588 center: this.center, 1589 zoom: this.zoom 1590 }).then(function(map) { 1591 map.behaviors.disable("scrollZoom"), map.controls.remove( 1592 "trafficControl"), map.controls.remove( 1593 "typeSelector"), self.map = map, self.points && self
1594 .points.length && self.points.forEach(function(elem, 1595 index, arr) { 1596 mapService.addPlacemark(self.map, elem) 1597 }) 1598 })) 1599 } 1600 } 1601 } 1602}), vue_utils.addInstance("clinic-world-map", function(element, data) { 1603 return store.dispatch("initCountries", { 1604 country: data.country, 1605 countries: data.countries 1606 }), delete data.country, delete data.countries, data.map = "", { 1607 store: store, 1608 el: element, 1609 data: data, 1610 mounted: function mounted() { 1611 var self = this; 1612 mapService.getMap(this.mapId, { 1613 center: this.center, 1614 zoom: this.zoom 1615 }).then(function(map) { 1616 map.behaviors.disable("scrollZoom"), map.behaviors.disable("drag"), 1617 map.controls.remove("trafficControl"), map.controls.remove( 1618 "typeSelector"), self.map = map, self.points && self.points 1619 .length && self.points.forEach(function(elem, index, arr) { 1620 mapService.addPlacemark(self.map, elem) 1621 }) 1622 }) 1623 }, 1624 destroyed: function destroyed() { 1625 mapService.destroyMap(this.map) 1626 }, 1627 computed: { 1628 countries: function countries() { 1629 return this.$store.state.countries 1630 } 1631 }, 1632 methods: { 1633 isActive: function isActive(country) { 1634 var activeCountryId; 1635 return this.$store.getters.selectedCountryId == country.id 1636 },
1637 setActive: function setActive(country) { 1638 this.$store.commit("selectCountry", country), country.coords && (this.map 1639 .setCenter(country.coords), this.map.setZoom(country.zoom || 3)) 1640 } 1641 } 1642 } 1643}), vue_utils.addInstance("clinic-world-map-addresses", function(element, data) { 1644 return { 1645 store: store, 1646 el: element, 1647 methods: { 1648 isActive: function isActive(countryId) { 1649 var activeCountryId; 1650 return this.$store.getters.selectedCountryId == countryId 1651 } 1652 } 1653 } 1654}), vue_utils.addInstance("blog-chars-tabs", function(element, data) { 1655 return store.commit("selectBlogCharsGroup", data.group), { 1656 store: store, 1657 el: element, 1658 computed: { 1659 group: function group() { 1660 return this.$store.state.blogCharsGroup 1661 } 1662 }, 1663 methods: { 1664 setActiveGroup: function setActiveGroup(group) { 1665 this.$store.commit("selectBlogCharsGroup", group) 1666 }, 1667 isActiveGroup: function isActiveGroup(group) { 1668 return this.group == group 1669 } 1670 } 1671 } 1672}), vue_utils.addInstance("blog-chars-filter", function(element, data) { 1673 return { 1674 store: store, 1675 el: element, 1676 data: { 1677 char: "" 1678 }, 1679 computed: { 1680 group: function group() { 1681 return this.$store.state.blogCharsGroup 1682 } 1683 }, 1684 methods: {
1685 setActive: function setActive(char) { 1686 this.char == char ? this.char = "" : this.char = char 1687 }, 1688 isActive: function isActive(char) { 1689 return this.char == char 1690 }, 1691 isShown: function isShown(char) { 1692 return this.char == char || "" == this.char 1693 }, 1694 isActiveGroup: function isActiveGroup(group) { 1695 return this.group == group 1696 } 1697 } 1698 } 1699}), vue_utils.addInstance("multislider", function(element, data) { 1700 return data.index = 0, { 1701 el: element, 1702 data: data, 1703 mounted: function mounted() { 1704 this.prev() 1705 }, 1706 methods: { 1707 prev: function prev() { 1708 var _items; 1709 (_items = this.items).splice.apply(_items, [0, 0].concat(_toConsumableArray( 1710 this.items.splice(this.items.length - 1, 1)))) 1711 }, 1712 next: function next() { 1713 var _items2; 1714 (_items2 = this.items).splice.apply(_items2, [this.items.length - 1, 0] 1715 .concat(_toConsumableArray(this.items.splice(0, 1)))) 1716 } 1717 } 1718 } 1719}), vue_utils.addInstance("multislider-adaptive", function(element, data) { 1720 return data.index = 0, data.size = 0, { 1721 el: element, 1722 data: data, 1723 mounted: function mounted() { 1724 window.addEventListener("resize", this.handleResize), this.handleResize() 1725 }, 1726 beforeDestroy: function beforeDestroy() { 1727 window.removeEventListener("resize", this.handleResize) 1728 }, 1729 methods: { 1730 prev: function prev() { 1731 var last = this.items.pop(); 1732 this.items.splice(0, 0, last) 1733 }, 1734 next: function next() { 1735 var first = this.items.shift(); 1736 this.items.push(first) 1737 }, 1738 handleResize: utils.debounce(function() { 1739 this.size = $(window).width() 1740 }, 50) 1741 }, 1742 computed: { 1743 currentItems: function currentItems() { 1744 for (var items = this.items.slice(0, this.countItems); items.length < this 1745 .countItems;) items.push({}); 1746 return items 1747 }, 1748 countItems: function countItems() { 1749 var self = this, 1750 count = 0; 1751 return self.size && $.each(this.counts, function(size, sizeCount) { 1752 !count && self.size < size && (count = sizeCount) 1753 }), count || (count = this.count), count 1754 } 1755 } 1756 } 1757}), jQuery(function($) { 1758 $(".js-doctor-carousel").slick({ 1759 infinite: !0, 1760 speed: 300, 1761 slidesToShow: 3, 1762 adaptiveHeight: !0, 1763 centerPadding: "40px", 1764 arrows: !0, 1765 responsive: [{ 1766 breakpoint: 1025, 1767 settings: { 1768 slidesToShow: 2, 1769 slidesToScroll: 1 1770 } 1771 }, { 1772 breakpoint: 641, 1773 settings: { 1774 slidesToShow: 1, 1775 slidesToScroll: 1 1776 } 1777 }] 1778 }); 1779 1780 jQuery(window).on('resize orientationchange', function () { 1781 $(".js-doctor-carousel").slick('resize'); 1782 }); 1783 1784 jQuery(".js-doctor-carousel").slick('resize'); 1785}), 1786 1787$(document).on("input", 'input[type="text"]', function() { 1788 if ("" == $(this).val()); 1789 else { 1790 var pattern, pattern; 1791 // if ($(this).hasClass("input_phone"))(pattern = /^\+7\(\d{3}\)\ \d{3}-\d{2}-\d{2}$/i).test($( 1792 // this).val()) ? ($(this).parents("form").find(".form-sumbit").removeAttr("disabled"), 1793 // $(this).parents("form").find(".form-sumbit").css("background-color", "#0babcd"), $( 1794 // this).css("border", ""), $(this).parents(".wrap_input").find("small").hide()) : ( 1795 // $(this).parents("form").find(".form-sumbit").attr("disabled", "disabled"), $(this) 1796 // .parents("form").find(".form-sumbit").css("background-color", "#c8d3d9"), $(this).css( 1797 // "border", "1px solid red"), $(this).parents(".wrap_input").find("small").show()); 1798 if ($(this).hasClass("input_email"))(pattern = 1799 /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i).test($(this).val()) ? ($( 1800 this).parents("form").find(".form-sumbit").removeAttr("disabled"), $(this) 1801 .parents("form").find(".form-sumbit").css("background-color", "#0babcd"), $(this).css( 1802 "border", ""), $(this).parents(".wrap_input").find("small").hide()) : ($(this) 1803 .parents("form").find(".form-sumbit").attr("disabled", "disabled"), $(this).parents( 1804 "form").find(".form-sumbit").css("background-color", "#c8d3d9"), $(this).css( 1805 "border", "1px solid red"), $(this).parents(".wrap_input").find("small").show()) 1806 } 1807}), 1808 1809 $(".js-geo-city").on("click", function(e) { 1810 return e.preventDefault(), $(".nav__geo").toggleClass("show"), $(window).width() < 1025 && $( 1811 ".header__container-rMenu").removeClass("hide").prev().addClass("hide"), $("html, body") 1812 .animate({ 1813 scrollTop: 0 1814 }, 500), !1 1815}); 1816 1817 1818if($('.js-city-list-alt')) { 1819 $('.js-city-list-alt').on('click', function() { 1820 $('.nav__geo').addClass('show'); 1821 $('.header__container-rDes').addClass('hide'); 1822 $('body').addClass('overflow'); 1823 $('.header__container-rMenu').removeClass('hide'); 1824 }) 1825} 1826 1827if($('.js-clinic-parent-link')) { 1828 $('.js-clinic-parent-link').on('click', function(e) { 1829 e.preventDefault(); 1830 $(this).toggleClass('is-active'); 1831 $(this).next().toggle() 1832 }) 1833} 1834 1835if($('.js-mobile-child-item-menu')) { 1836 $('.js-mobile-child-item-menu').on('click', function(e) { 1837 e.preventDefault(); 1838 $(this).toggleClass('is-active'); 1839 $(this).next().toggle() 1840 }) 1841} 1842 1843jQuery(function($) { 1844 var sliderContacts = function() { 1845 $(".js-contacts-slider").slick({ 1846 speed: 300, 1847 infinite: false, 1848 slidesToShow: 4, 1849 slidesToScroll: 1, 1850 arrows: !0, 1851 dots: false, 1852 nextArrow: '<div class="slide__arrow-next"></div>', 1853 prevArrow: '<div class="slide__arrow-prev"></div>', 1854 responsive: [ 1855 { 1856 breakpoint: 1024, 1857 settings: "unslick" 1858 } 1859 ] 1860 }); 1861 }; 1862 1863 sliderContacts(); 1864 1865 jQuery(window).on("load, resize",function(e){ 1866 if($(window).width() > 1025) { 1867 sliderContacts(); 1868 } 1869 }); 1870 1871}); 1872 1873 1874/*Ð ÐлаРâÐ ÒРµСРСРР»РÑСâ РµРРР·РÑСÐÐ ÑÐ Ñ*/ 1875$(document).ready(function () 1876{ 1877 jQuery(".js-docs-slider").slick( 1878 { 1879 infinite: true, 1880 slidesToShow: 8, 1881 slidesToScroll: 1, 1882 arrows: true, 1883 dots: false, 1884 nextArrow: '<div class="slide__arrow-next"></div>', 1885 prevArrow: '<div class="slide__arrow-prev"></div>', 1886 responsive: [ 1887 { 1888 breakpoint: 1200, 1889 settings: 1890 { 1891 slidesToShow: 6 1892 } 1893 }, 1894 { 1895 breakpoint: 1024, 1896 settings: 1897 { 1898 slidesToShow: 3, 1899 slidesToScroll: 1 1900 } 1901 }, 1902 { 1903 breakpoint: 750, 1904 settings: 1905 { 1906 slidesToShow: 2, 1907 slidesToScroll: 1 1908 } 1909 }, 1910 { 1911 breakpoint: 640, 1912 settings: 1913 { 1914 slidesToShow: 1, 1915 slidesToScroll: 1 1916 } 1917 }] 1918 }); 1919 1920 jQuery(window).on('resize orientationchange', function () { 1921 $(".js-docs-slider").slick('resize'); 1922 }); 1923 1924 jQuery(".js-docs-slider").slick('resize'); 1925 1926}); 1927 1928 1929jQuery(document).ready(function (){ 1930 if($(".slider-docs__item")) { 1931 $(".slider-docs__item").fancybox({ 1932 width: "100%", 1933 margin: [0, 0, 0, 100] // top, right, bottom, left 1934 }); 1935 } 1936 1937 // СÑСÐСâР°РРР°РÐР»РÑÐ ÐÐ Â°Ð ÂµÐ Ñ Ð ÑÐ ÒÐ ÑРРР°РÑÐ ÑÐ ÐСÑСРРÐСâ¹Ð¡ÐÐ ÑСâÐ¡Ñ Ð Â±Ð Â»Ð ÑÐ ÑÐ ÑРРРРСÐСâ¦Ð µРÑР°С⦠леСâ¡Ð µРРРÑСР1938 if($('.js-sheme-text')) { 1939 var schemTextblock = $('.js-sheme-text'); 1940 var maxHeightTextBlock = 0; 1941 $(schemTextblock).each(function(index, item) { 1942 var itemBlock = $(item).height(); 1943 if(maxHeightTextBlock < itemBlock) { 1944 maxHeightTextBlock = itemBlock; 1945 } 1946 }); 1947 $(schemTextblock).height(maxHeightTextBlock); 1948 } 1949 1950 if($('.js-city-list-choice')) { 1951 $('.js-city-list-choice').on('click', function() { 1952 $('.nav__geo').addClass('show'); 1953 $('.header__container-rMenu').removeClass('hide'); 1954 }) 1955 } 1956 1957 1958 // Ð ÑлаРÐРРСâ¹Ð â СÐÐ ÑСÐÐ Ñлл 1959 if($('.js-scroll-to')) { 1960 $('.js-scroll-to').on('click', function() { 1961 $('html, body').animate({ 1962 scrollTop: $($(this).attr("href")).offset().top 1963 }, 1500); 1964 }); 1965 } 1966 1967 if($('.js-show-more-list')) { 1968 $('.js-show-more-list').on('click', function() { 1969 $('.js-show-more-list').prev().toggleClass('is-active'); 1970 }) 1971 } 1972 1973 jQuery(".js-page__block__doctors-slider").slick({ 1974 mobileFirst: false, 1975 infinite: true, 1976 slidesToShow: 3, 1977 slidesToScroll: 1, 1978 arrows: true, 1979 dots: false, 1980 nextArrow: '<div class="slide__arrow-next"></div>', 1981 prevArrow: '<div class="slide__arrow-prev"></div>', 1982 responsive: 1983 [ 1984 { 1985 breakpoint: 1280, 1986 settings: { 1987 slidesToShow: 2, 1988 slidesToScroll: 1 1989 } 1990 }, 1991 { 1992 breakpoint: 750, 1993 settings: { 1994 slidesToShow: 1, 1995 slidesToScroll: 1 1996 } 1997 } 1998 ] 1999 }); 2000 2001 jQuery(window).on('resize orientationchange', function () { 2002 jQuery('.js-page__block__doctors-slider').slick('resize'); 2003 }); 2004 2005 jQuery('.js-page__block__doctors-slider').slick('resize'); 2006 2007 2008 if($('.js-city-list-alt')) { 2009 $('.js-city-list-alt').on('click', function() { 2010 $('.nav__geo').addClass('show'); 2011 $('.header__container-rDes').addClass('hide'); 2012 $('body').addClass('overflow'); 2013 $('.header__container-rMenu').removeClass('hide'); 2014 }) 2015 } 2016 2017 2018 $(document).on("input", 'input[type="text"]', function() { 2019 if ("" == $(this).val()); 2020 else { 2021 var pattern, pattern; 2022 // if ($(this).hasClass("input_phone"))(pattern = /^\+7\(\d{3}\)\ \d{3}-\d{2}-\d{2}$/i).test($( 2023 // this).val()) ? ($(this).parents("form").find(".form-sumbit").removeAttr("disabled"), 2024 // $(this).parents("form").find(".form-sumbit").css("background-color", "#0babcd"), $( 2025 // this).css("border", ""), $(this).parents(".wrap_input").find("small").hide()) : ( 2026 // $(this).parents("form").find(".form-sumbit").attr("disabled", "disabled"), $(this) 2027 // .parents("form").find(".form-sumbit").css("background-color", "#c8d3d9"), $(this).css( 2028 // "border", "1px solid red"), $(this).parents(".wrap_input").find("small").show()); 2029 if ($(this).hasClass("input_email"))(pattern = 2030 /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i).test($(this).val()) ? ($( 2031 this).parents("form").find(".form-sumbit").removeAttr("disabled"), $(this) 2032 .parents("form").find(".form-sumbit").css("background-color", "#0babcd"), $(this).css( 2033 "border", ""), $(this).parents(".wrap_input").find("small").hide()) : ($(this) 2034 .parents("form").find(".form-sumbit").attr("disabled", "disabled"), $(this).parents( 2035 "form").find(".form-sumbit").css("background-color", "#c8d3d9"), $(this).css( 2036 "border", "1px solid red"), $(this).parents(".wrap_input").find("small").show()) 2037 } 2038 }), 2039 2040 $(".js-geo-city").on("click", function(e) { 2041 return e.preventDefault(), $(".nav__geo").toggleClass("show"), $(window).width() < 1025 && $( 2042 ".header__container-rMenu").removeClass("hide").prev().addClass("hide"), $("html, body") 2043 .animate({ 2044 scrollTop: 0 2045 }, 500), !1 2046 }); 2047 2048 // РазРÐРµСÐРРСÑСâСРСâРµРÑСÐСâ РРР° Ð ÑлаРÐÐ Ð Ð ÑÐ â 2049 $('.js-show-more__action').on('click', function(){ 2050 $(this).parent().hide(); 2051 $('.js-show-more__container').addClass('is-active'); 2052 }) 2053 // 2054 // 2055 // $('.js-doctor-item-graf') 2056}); 2057 2058// Ð âСâ¹Ð¡ÐР°РÐÐ Ð Ð ÑÐ ÐÐ Â°Ð ÂµÐ Ñ Ð Â±Ð Â»Ð ÑÐ ÑÐ Ñ Ð Â·Ð Â°Ð ÑÐ ÑСÐР°СâСÐСÐÐ¡Ð Ð Ñ Ð Ñ
2058СÐР°СâÐ ÑÐ Ñ Ð ÑÐ Ñ Ð¡âелеСâÐ ÑÐ Ð Ð¡Ñ Ð Ð Ð ÑР°СÐСâÐ ÑСâ¡Ð ÑРµ Ð ÐСÐР°Сâ¡Ð ° 2059$(window).on('load resize', function() { 2060 if($(window).width() > 640) { 2061 $('.js-doctor-item-call').height($('.js-doctor-item-graf').height() + 1 + 'px') 2062 } 2063}); 2064 2065$('.js-show-more-doctor').on('click', function(e){ 2066 e.preventDefault(); 2067 $(this).prev().addClass('is-active'); 2068 $(this).hide(); 2069}); 2070 2071 2072// ÑÐ°Ð±Ñ Ð½Ð° главной ÑÑÑаниÑе 2073$('.js-medication').each(function(i , item) { 2074 2075 $(item).on('click', function() { 2076 if ($(item).hasClass('is-active')) { 2077 $('.js-medication').removeClass('is-active'); 2078 //removeClass('is-active'); 2079 $(item).addClass('is-active'); 2080 } else { 2081 $('.js-medication-mob').addClass('is-hidden'); 2082 $($('.js-medication-mob')[i]).removeClass('is-hidden'); 2083 $('.js-medication').removeClass('is-active'); 2084 $(item).addClass('is-active'); 2085 } 2086 }) 2087}); 2088 2089$('.price__main .price__line-adr').on('click', function(){ 2090 $(this).closest('.price__block').find('.price__list').toggleClass('show'); 2091}); 2092 2093// ÑÑÑанавливаем одинаковÑÑ Ð²ÑÑоÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² в ÑÑ ÐµÐ¼Ð°Ñ Ð»ÐµÑÐµÐ½Ð¸Ñ 2094if($('.js-sheme-text')) { 2095 var schemTextblock = $('.js-sheme-text'); 2096 var maxHeightTextBlock = 0; 2097 $(schemTextblock).each(function(index, item) { 2098 var itemBlock = $(item).height(); 2099 if(maxHeightTextBlock < itemBlock) { 2100 maxHeightTextBlock = itemBlock; 2101 } 2102 }); 2103 $(schemTextblock).height(maxHeightTextBlock); 2104} 2105 2106$('.js-show-more__action__wrapper').on('click', function() { 2107 $(this).prev().addClass('active'); 2108 $(this).hide(); 2109}); 2110 2111// СкÑÑваем ÑÑÑелки ÑлайдеÑа, еÑли Ñлайдов менÑÑе 2-Ñ 2112 2113if($('.callback__text.slider-item') && $('.callback__text.slider-item').length < 2) { 2114 $('.callback__text.slider-item').parent().next().hide(); 2115 $('.callback__text.slider-item').next().hide(); 2116} 2117// ÐлавнÑй ÑкÑолл 2118if($('.js-scroll-to')) { 2119 $('.js-scroll-to').on('click', function() { 2120 $('html, body').animate({ 2121 scrollTop: $($(this).attr("href")).offset().top 2122 }, 1500); 2123 }); 2124} 2125 2126$(document).on('click', function(event) { 2127 if($(event.target).hasClass("filter__main") || $(event.target).hasClass("filter__title")) { 2128 $('.filter__button').removeClass('selected'); 2129 $('.filter__button').next().addClass('hidden'); 2130 } 2131}); 2132 2133$('.js-medication-full .medication__title').on('click', function() { 2134 $(this).next().toggleClass('is-active'); 2135}); 2136 2137$(document).ready(function() { 2138 if ($(".js-header-slider").length) { 2139 2140 jQuery(".js-header-slider").slick({ 2141 infinite: !0, 2142 slidesToShow: 1, 2143 slidesToScroll: 1, 2144 arrows: false, 2145 dots: true, 2146 autoplay: true, 2147 autoplaySpeed: 5000 2148 }) 2149 } 2150 2151 if($('.js-action-slider')) { 2152 $('.js-action-slider').slick({ 2153 infinite: true, 2154 slidesToShow: 4, 2155 slidesToScroll: 1, 2156 arrows: true, 2157 dots: false, 2158 autoplay: false, 2159 responsive: [{ 2160 breakpoint: 1024, 2161 settings: { 2162 slidesToShow: 3 2163 } 2164 }, 2165 { 2166 breakpoint: 768, 2167 settings: { 2168 slidesToShow: 2 2169 } 2170 }, 2171 { 2172 breakpoint: 640, 2173 settings: { 2174 slidesToShow: 1 2175 } 2176 } 2177 ] 2178 }); 2179 2180 2181 jQuery(window).on('resize orientationchange', function () { 2182 $(".js-action-slider").slick('resize'); 2183 }); 2184 2185 jQuery(".js-action-slider").slick('resize'); 2186 } 2187}); 2188 2189if ($('.js-autor-item').length > 3) { 2190 $('.js-autor-list').css({"maxHeight":"85px"}); 2191 $('.js-autor-more').addClass('is-show'); 2192} 2193 2194$('.js-autor-more').on('click', function() { 2195 $(this).prev().toggleClass('is-active'); 2196 2197 if($(this).prev().hasClass('is-active')) { 2198 $(this).text('СкÑÑÑÑ') 2199 } else { 2200 $(this).text('ÐоказаÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ') 2201 } 2202}); 2203 2204 2205$(document).ready(function() { 2206 // ÐÐ°Ð½Ð½ÐµÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ ÑкÑÑÑ Ð² ÑазмеÑке (display: none), Ñ.к. ÑÑÑаниÑа Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑдаваÑÑÑÑ 2207 // из Bitrix Composite-кÑÑа одинаково вÑем гоÑÑÑм. ÐоказÑваем его ÑолÑко еÑли Ñ ÐТÐÐÐ 2208 // бÑаÑзеÑа Ð½ÐµÑ cookie ÑоглаÑÐ¸Ñ â ÑÑо единÑÑвеннÑй иÑÑоÑник иÑÑинÑ, не завиÑÑÑий Ð¾Ñ ÐºÑÑа ÑÑÑаниÑÑ. 2209 if (!/(?:^|; )BITRIX_SM_cookie_confidence_msg=/.test(document.cookie)) { 2210 $('.js-cookie-policy').show(); 2211 } 2212}); 2213 2214$(document).on('click', '.js-cookie-policy-close', function(e) { 2215 document.cookie = "BITRIX_SM_cookie_confidence_msg=declined; path=/"; 2216 $(this).closest('.js-cookie-policy').hide(); 2217 e.preventDefault(); 2218}); 2219 2220$(document).on('click', '.js-cookie-policy-accept', function(e) { 2221 let date = new Date(Date.now() + 1000 * 60 * 60 * 24 * 365); 2222 document.cookie = "BITRIX_SM_cookie_confidence_msg=1; expires=" + date.toUTCString() + "; path=/"; 2223 $(this).closest('.js-cookie-policy').hide(); 2224 e.preventDefault(); 2225}); 2226 2227 2228jQuery(document).ready(function (){ 2229 if ($('.js-price-map-wrapper').length > 0) { 2230 $(document).on('click', '.js-price-toggle-map', function(e) { 2231 var map = $(this).closest('.js-price-map-wrapper').find('.js-price-map'); 2232 2233 if (map.hasClass('active')) { 2234 map.removeClass('active'); 2235 } 2236 else { 2237 $('.js-price-map.active').removeClass('active'); 2238 map.addClass('active'); 2239 } 2240 2241 e.preventDefault(); 2242 }); 2243 2244 $(document).on('click', function(e) { 2245 if (!$('.js-price-toggle-map').is(e.target) && !$('.js-price-map').is(e.target) && $('.js-price-map').has(e.target).length === 0) 2246 $('.js-price-map.active').removeClass('active'); 2247 }); 2248 } 2249}); 2250 2251 2252$(document).on('click', '.js-to-anchor', function(e) { 2253 var offsetHeader = window.matchMedia("(max-width: 888px)").matches ? 80 : 0; 2254 var offsetHeaderBtns = window.matchMedia("(max-width: 888px)").matches ? $('.header__mobile:first').outerHeight(false) : 0; 2255 if (!$('.header__mobile:first').hasClass('is-fixed')) 2256 offsetHeaderBtns += offsetHeaderBtns; 2257 2258 var id = $(this).attr('href'); 2259 var top = $(id).offset().top - ($(this).data('offset') || 0) - offsetHeader - offsetHeaderBtns; 2260 2261 $('body, html').animate({scrollTop: top}, 600, 'swing'); 2262 2263 e.preventDefault(); 2264}); 2265 2266 2267// collapse 2268$(document).on('click', '[data-toggle="collapse"]', function(e) { 2269 var target = $(this).data('target') || $(this).attr('href') || $(this).closest('[data-collapse="item"]').find('[data-collapse="target"]')[0]; 2270 2271 if (target) { 2272 $(this).toggleClass('collapsed'); 2273 2274 if ($(target).hasClass('show')) { 2275 $(target).removeClass('show').slideToggle(400); 2276 } 2277 else { 2278 $(target).slideToggle(400, function() { 2279 $(target).addClass('show'); 2280 }) 2281 } 2282 } 2283 2284 e.preventDefault(); 2285}); 2286 2287 2288$(function () { 2289 new isvek.Bvi({ 2290 target: '.bvi-btn', 2291 fontSize: 16, 2292 fontSizeMin: 16, 2293 fontSizeMax: 32, 2294 theme: 'none', 2295 images: true, 2296 builtElements: true, 2297 speech: false, 2298 panelFixed: false, 2299 }); 2300});
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.