1;(function(){ 2 var $win = $(window), 3 $doc = $(document), 4 $body = $('body'), 5 initializedMaps = [], 6 lpc_template = {}; 7 8 window.lpc_template = lpc_template; 9 10 lpc_template.queue = {}; 11 12 lpc_template.queue.aboutPopupLink = function($self) { 13 if (!s3LP.is_cms) { 14 if(window.location.pathname != "/my/s3/cms/v1/lp/live.edit.php"){ 15 $('a[href^="popup:"]').attr('style','pointer-events: none'); 16 } 17 $( document ).ready(function() { 18 $('a[href^="popup:"]').attr('style','pointer-events: auto'); 19 }); 20 } 21 } 22 23 lpc_template.adaptiveBlock = function() { 24 var $block = $body.find('.lpc-block'); 25 26 if (!$block.length) { return; } 27 28 29 var $firstBlock = $block.filter(function(){ 30 return !$(this).closest('._hide-block').length; 31 }).eq(0), 32 firstBlockWidth = $firstBlock.width(), 33 firstBlockType = $firstBlock.data("media-source"); 34 35 if (firstBlockWidth < 768 && lpc_template.deviceType != "mobile") { 36 lpc_template.deviceType = "mobile"; 37 $block.attr("data-media-source", "mobile"); 38 $doc.trigger('checkDeviceType', [lpc_template.deviceType]); 39 } else if (firstBlockWidth < 1024 && firstBlockWidth >= 768 && lpc_template.deviceType != "tablet"){ 40 lpc_template.deviceType = "tablet"; 41 $block.attr("data-media-source", "tablet"); 42 $doc.trigger('checkDeviceType', [lpc_template.deviceType]); 43 } else if (firstBlockWidth >
43= 1024 && lpc_template.deviceType != "desktop") { 44 lpc_template.deviceType = "desktop"; 45 $block.attr("data-media-source", "desktop"); 46 $doc.trigger('checkDeviceType', [lpc_template.deviceType]); 47 } 48 49 50 $block.each(function(){ 51 var $thisSimpleCols = Array.from(this.querySelectorAll('._simple-col')); 52 53 if (!$thisSimpleCols.length) return; 54 55 var $thisSimpleColsItems = $thisSimpleCols.reduce((acc, item) => [...acc, item.children], []); 56 57 for (let i = 0; i < $thisSimpleColsItems[0].length; i++) { 58 var minHeight = 0 59 $thisSimpleColsItems.forEach(function(elem) { 60 if (!elem[i]) return; 61 var $item = elem[i].querySelector('._title'); 62 63 $($item).css('min-height', 0); 64 65 if (lpc_template.deviceType === "mobile") return; 66 67 var elemHeight = $item.offsetHeight; 68 69 minHeight = minHeight > elemHeight ? minHeight : elemHeight; 70 }); 71 72 $thisSimpleColsItems.forEach((elem) => { 73 if (!elem[i]) return; 74 $(elem[i].querySelector('._title')).css('min-height', minHeight) 75 }); 76 } 77 }); 78 } 79 80 /* 81 lpc_template.initMaps = function(options) { 82 var map; 83 84 if (options.type === "google") { 85 map = new google.maps.Map(document.getElementById(options.id), { 86 zoom: parseInt(options.zoom), 87 scrollwheel: false, 88 center: new google.maps.LatLng(options.center[0], options.center[1]) 89 }); 90 91 $.each(options.data, function(key, item) { 92 93 var marker = new google.maps.Marker({ 94 position: new google.maps.LatLng(item.coords[0], item.coords[1]), 95 map: map, 96 title: item.name 97 }); 98 99 var infowindow = new google.maps.InfoWindow({ 100 content: '<div class="baloon-content">' + 101 '<h3 style="margin: 0; padding-bottom: 3px;">' + item.name + '</h3>' + 102 item.desc + 103 '</div>' 104 }); 105 106 google.maps.event.addListener(marker, 'click', function() { 107 infowindow.open(map, marker); 108 }); 109 110 111 }); 112 113 } else { 114 ymaps.ready(function() { 115 map = new ymaps.Map(options.id, { 116 center: options.center, 117 zoom: options.zoom, 118 behaviors: ['drag', 'rightMouseButtonMagnifier'], 119 }); 120 121 map.controls.add( 122 new ymaps.control.ZoomControl() 123 ); 124 125 var MyBalloonContentLayoutClass = ymaps.templateLayoutFactory.createClass( 126 '<div class="baloon-content" style="padding: 0 10px;">' + 127 '<h3 style="margin: 0;">$[properties.name]</h3>' + 128 '<p>$[properties.desc]</p>' + 129 '</div>' 130 ); 131 132 var myCollection = new ymaps.GeoObjectCollection(); 133 134 $.each(options.data, function(key, item) { 135 myCollection.add(new ymaps.Placemark( 136 item.coords, 137 item, { 138 balloonContentLayout: MyBalloonContentLayoutClass 139 } 140 )); 141 }); 142 143 map.geoObjects.add(myCollection); 144 145 $('#' + options.id).data('ymaps', map); 146 147 $doc.on('checkDeviceType', function(e, param) { 148 map.container.fitToViewport(); 149 }); 150 }); 151 } 152 } 153 154 */ 155 156 lpc_template.checkMapInitialization = function($blocks) { 157 $blocks.each(function() { 158 var $this = $(this), 159 id = $this.attr('id'); 160 161 if (initializedMaps.includes(id) && $this.children().length) { 162 return; 163 } 164 165 var inViewport = isElementInViewport(this); 166 167 if (inViewport) { 168 initializedMaps.push(id); 169 170 lpc_template.initMaps($this); 171 } 172 }) 173 } 174 175 lpc_template.initGoogleMaps = function(options) { 176 var map = new google.maps.Map(document.getElementById(options.id), { 177 zoom: parseInt(options.zoom), 178 scrollwheel: false, 179 center: new google.maps.LatLng(options.center[0], options.center[1]) 180 }); 181 182 $.each(options.data, function(key, item) { 183 var marker = new google.maps.Marker({ 184 position: new google.maps.LatLng(item.coords[0], item.coords[1]), 185 map: map, 186 title: item.name 187 }); 188 189 var infowindow = new google.maps.InfoWindow({ 190 content: '<div class="baloon-content">' + 191 '<h3 style="margin: 0; padding-bottom: 3px;">' + item.name + '</h3>' + 192 item.desc + 193 '</div>' 194 }); 195 196 google.maps.event.addListener(marker, 'click', function() { 197 infowindow.open(map, marker); 198 }); 199 }); 200 } 201 202 203 lpc_template.initYandexMaps = function(options) { 204 205 ymaps.ready(function () { 206 207 var map = new ymaps.Map(options.id, { 208 center: options.center, 209 zoom: options.zoom, 210 behaviors: ['drag', 'rightMouseButtonMagnifier'], 211 }); 212 213 map.controls.add( 214 new ymaps.control.ZoomControl() 215 ); 216 217 var MyBalloonContentLayoutClass = ymaps.templateLayoutFactory.createClass( 218 '<div class="baloon-content" style="padding: 0 10px;">' + 219 '<h3 style="margin: 0;">$[properties.name]</h3>' + 220 '<p>$[properties.desc]</p>' + 221 '</div>' 222 ); 223 224 var myCollection = new ymaps.GeoObjectCollection(); 225 226 $.each(options.data, function(key, item) { 227 myCollection.add(new ymaps.Placemark( 228 item.coords, 229 item, { 230 balloonContentLayout: MyBalloonContentLayoutClass 231 } 232 )); 233 }); 234 235 map.geoObjects.add(myCollection); 236 $('#' + options.id).data('ymaps', map); 237 }); 238 }; 239 240 241 242 243 /*lpc_template.initYandexMaps = function(options) { 244 var map = new ymaps.Map(options.id, { 245 center: options.center, 246 zoom: options.zoom, 247 behaviors: ['drag', 'rightMouseButtonMagnifier'], 248 }); 249 250 map.controls.add( 251 new ymaps.control.ZoomControl() 252 ); 253 254 var MyBalloonContentLayoutClass = ymaps.templateLayoutFactory.createClass( 255 '<div class="baloon-content" style="padding: 0 10px;">' + 256 '<h3 style="margin: 0;">$[properties.name]</h3>' + 257 '<p>$[properties.desc]</p>' + 258 '</div>' 259 ); 260 261 var myCollection = new ymaps.GeoObjectCollection(); 262 263 $.each(options.data, function(key, item) { 264 myCollection.add(new ymaps.Placemark( 265 item.coords, 266 item, { 267 balloonContentLayout: MyBalloonContentLayoutClass 268 } 269 )); 270 }); 271 272 map.geoObjects.add(myCollection); 273 274 $('#' + options.id).data('ymaps', map); 275 }*/ 276 277 lpc_template.initMaps = function($block) { 278 var options = $block.data('init-params'); 279 280 options = typeof options === 'string' ? JSON.parse(options) : options; 281 282 if (typeof options.center === 'string') { 283 options.center = options.center.split(','); 284 } 285 286 $.each(options.data, function(key, item) { 287 if (typeof item.coords === 'string') { 288 item.coords = item.coords.split(','); 289 } 290 }); 291 292 var keyMap = options.key; 293 294 if (options.type === "google") { 295 if (window.google && window.google.maps) { 296 lpc_template.initGoogleMaps(options); 297 } else { 298 var script = document.createElement('script'); 299 script.async = 'async';
300 script.src = `//maps.googleapis.com/maps/api/js?key=${keyMap}`; 301 document.body.append(script); 302 303 script.onload = function() { 304 lpc_template.initGoogleMaps(options); 305 } 306 } 307 } else { 308 if (window.ymaps && window.ymaps.Map) { 309 lpc_template.initYandexMaps(options) 310 } else { 311 var htmlLang = document.documentElement.lang; 312 var script = document.createElement('script'); 313 script.async = 'async'; 314 if (htmlLang == 'en') { 315 if (options.key!="") { 316 script.src = `//api-maps.yandex.ru/2.1/?apikey=${keyMap}&lang=en_RU`; 317 } else { 318 script.src = `//api-maps.yandex.ru/2.1/?lang=en_RU`; 319 } 320 }else { 321 if (options.key!="") { 322 script.src = `//api-maps.yandex.ru/2.1/?apikey=${keyMap}&lang=ru_RU`; 323 } else { 324 script.src = `//api-maps.yandex.ru/2.1/?lang=ru_RU`; 325 } 326 } 327 328 document.body.append(script); 329 330 script.onload = function() { 331 ymaps.ready(function() { 332 lpc_template.initYandexMaps(options) 333 }); 334 } 335 } 336 } 337 } 338 339 lpc_template.queue.initVideoBlocks = function () { 340 const blocks = document.querySelectorAll(".lpc-block"); 341 342 blocks.forEach((block) => { 343 const videoPosters = block.querySelectorAll(".lp-video-poster"); 344 const videoContainers = block.querySelectorAll(".lp-video-container"); 345 346 videoPosters.forEach((videoPoster, index) => { 347 const iframe = videoContainers[index].querySelector("iframe"); 348 349 videoPoster.addEventListener("click", function () { 350 const dataSrc = videoPoster.getAttribute("data-youtube-id"); 351 352 if (dataSrc) { 353 iframe.setAttribute("src", "https://www.youtube.com/embed/" + dataSrc + "?autoplay=1&mute=1"); 354 videoPoster.removeAttribute("data-youtube-id"); 355 videoPoster.style.display = "none"; 356 videoContainers[index].style.display = "block"; 357 } 358 }); 359 }); 360 }); 361 }; 362 363 document.addEventListener("DOMContentLoaded", function () { 364 lpc_template.queue.initVideoBlocks(); 365 }); 366 367 lpc_template.queue.lpcTimer = function($self) { 368 var $block = $self.find('.js-lp-timer'), 369 htmlLang = document.documentElement.lang, 370 timerDays, timerHours, timerMinutes, timerSeconds, formatOut; 371 372 if (htmlLang == 'de' || htmlLang == 'en') { 373 timerDays = 'days'; 374 timerHours = 'hours'; 375 timerMinutes = 'minutes'; 376 timerSeconds = 'seconds' 377 } else { 378 timerDays = 'Ðней'; 379 timerHours = 'ЧаÑов'; 380 timerMinutes = 'ÐинÑÑ'; 381 timerSeconds = 'СекÑнд' 382 } 383 384 var formatOut = '<div class="lp-ui-timer__item"><div class="lp-ui-timer__item-number" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-number">%d</div><div class="lp-ui-timer__item-text lp-header-text-4" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-text">' + timerDays + '</div></div><div class="lp-ui-timer__item"><div class="lp-ui-timer__item-number" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-number">%h</div><div class="lp-ui-timer__item-text lp-header-text-4" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-text">' + timerHours + '</div></div><div class="lp-ui-timer__item"><div class="lp-ui-timer__item-number" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-number">%m</div><div class="lp-ui-timer__item-text lp-header-text-4" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-text">' + timerMinutes + '</div></div><div class="lp-ui-timer__item"><div class="lp-ui-timer__item-number" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-number">%s</div><div class="lp-ui-timer__item-text lp-header-text-4" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-text">' + timerSeconds +'</div></div>'; 385 var formatEnd = '<div class="lp-ui-timer__item"><div class="lp-ui-timer__item-number" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-number">00</div><div class="lp-ui-timer__item-text lp-header-text-4" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-text">' + timerDays + '</div></div><div class="lp-ui-timer__item"><div class="lp-ui-timer__item-number" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-number">00</div><div class="lp-ui-timer__item-text lp-header-text-4" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-text">' + timerHours + '</div></div><div class="lp-ui-timer__item"><div class="lp-ui-timer__item-number" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-number">00</div><div class="lp-ui-timer__item-text lp-header-text-4" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-text">' + timerMinutes + '</div></div><div class="lp-ui-timer__item"><div class="lp-ui-timer__item-number" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-number">00</div><div class="lp-ui-timer__item-text lp-header-text-4" data-elem-type="text" data-lp-selector=".lp-ui-timer__item-text">' + timerSeconds +'</div></div>'; 386 387 388 389 if ($block.length) { 390 $block.each(function(){ 391 var $this = $(this); 392 393 394 $this.timer({ 395 format_in: "%d.%M.%y %h:%m:%s", 396 language: htmlLang, 397 update_time: s3LP.is_cms ? 100000 : 1000, 398 format_out: formatOut, 399 onEnd: function(){ 400 $this.html(formatEnd); 401 } 402 }); 403 404 }); 405 } 406 } 407 408 lpc_template.queue.formInputs = function($self) { 409 410 $doc.on('click', '.js-select, .js-multi_select', function() { 411 var $this = $(this), 412 openedClass = '_opened', 413 $thisParent = $this.closest('.lp-form-tpl__field-select, .lp-form-tpl__field-multi_select'), 414 $thisList = $thisParent.find('.lp-form-tpl__field-select__list, .lp-form-tpl__field-multi_select__list'); 415 416 if ($thisParent.hasClass(openedClass)) { 417 $thisParent.removeClass(openedClass); 418 $thisList.slideUp(); 419 } else { 420 $thisParent.addClass(openedClass); 421 $thisList.slideDown(); 422 } 423 }); 424 $( document ).ready(function() { 425 426 $('.js-choose-select._checked').each(function(){ 427 428 var $this = $(this), 429 thisText = $this.text(), 430 $thisParent = $this.closest('.lp-form-tpl__field-select'), 431 checkedClass = '_checked'; 432 433 $thisParent.find('.js-choose-select').removeClass(checkedClass); 434 $thisParent.find('.lp-form-tpl__field-select__input').text(thisText); 435 $thisParent.parent().find('input').val(thisText); 436 }); 437 }); 438 439 $doc.on('click', '.js-choose-select', function() { 440 var $this = $(this), 441 thisText = $this.text(), 442 $thisParent = $this.closest('.lp-form-tpl__field-select'), 443 checkedClass = '_checked'; 444 445 if (!$this.hasClass(checkedClass)) { 446 $thisParent.find('.js-choose-select').removeClass(checkedClass); 447 $this.addClass(checkedClass); 448 $thisParent.find('.lp-form-tpl__field-select__input').text(thisText); 449 $thisParent.parent().find('input').val(thisText); 450 } 451 452 $thisParent.find('.lp-form-tpl__field-select__list').slideUp(); 453 $thisParent.removeClass('_opened'); 454 455 }); 456 457 $doc.on('click', '.js-choose-milti_select', function() { 458 var $this = $(this), 459 $thisParent = $this.closest('.lp-form-tpl__field-multi_select'), 460 checkedClass = '_checked'; 461 462 if (!$this.hasClass(checkedClass)) { 463 $this.addClass(checkedClass); 464 } else { 465 $this.removeClass(checkedClass); 466 } 467 468 var choosenElements = $thisParent.find('.' + checkedClass),
469 choosenElementsText = []; 470 471 choosenElements.each(function() { 472 choosenElementsText.push($(this).text()); 473 }); 474 475 $thisParent.find('.lp-form-tpl__field-multi_select__input--count').text(choosenElements.length); 476 $thisParent.parent().find('input').val(choosenElementsText.join(', ')); 477 }); 478 479 480 481 $doc.on('click', function(e) { 482 if ($(e.target).closest('.lp-form-tpl__field-select, .lp-form-tpl__field-multi_select').length) return; 483 484 $doc.find('.lp-form-tpl__field-select, .lp-form-tpl__field-multi_select').removeClass('_opened'); 485 486 $doc.find('.lp-form-tpl__field-select__list, .lp-form-tpl__field-multi_select__list').slideUp(); 487 }); 488 } 489 490 /*lpc_template.queue.calendar = function($self) { 491 $doc.on('click', '.js-form-calendar', function() { 492 var $this = $(this), 493 thisCalendarInited = $this.data('calendarInited'); 494 495 if (!thisCalendarInited) { 496 $this.datepicker(); 497 thisCalendarInited = $this.data('calendarInited', true); 498 } 499 }); 500 501 $doc.on('click', '.js-form-calendar-interval', function() { 502 var $this = $(this), 503 thisCalendarInited = $this.data('calendarInited'); 504 505 if (!thisCalendarInited) { 506 $this.datepicker({ 507 range: true 508 }); 509 thisCalendarInited = $this.data('calendarInited', true); 510 } 511 }); 512 }*//*Ðе ÑабоÑал Ñ Ð¿ÐµÑвого клика*/ 513 514 515 lpc_template.queue.calendar = function($self) { 516 $doc.on('click', '.js-form-calendar', function() { 517 var $this = $(this), 518 thisCalendarInited = $this.data('calendarInited'); 519 520 if (!thisCalendarInited) { 521 var bb = $this.datepicker().data('datepicker'); 522 bb.show(); 523 thisCalendarInited = $this.data('calendarInited', true); 524 525 } 526 }); 527 528 $doc.on('click', '.js-form-calendar-interval', function() { 529 var $this = $(this), 530 thisCalendarInited = $this.data('calendarInited'); 531 532 if (!thisCalendarInited) { 533 var bb = $this.datepicker({ 534 range: true, 535 multipleDatesSeparator: " - " 536 }).data('datepicker'); 537 bb.show(); 538 thisCalendarInited = $this.data('calendarInited', true); 539 } 540 541 }); 542 } 543 544 545 /* 546 lpc_template.queue.lpcSimpleMap = function($self) { 547 var $block = $self.find('.js-lpc-simple-map'); 548 549 if ($block.length) { 550 $block.each(function(){ 551 var $this = $(this), 552 thisParams = $this.data('init-params'); 553 554 if (typeof thisParams.center === 'string') { 555 thisParams.center = thisParams.center.split(','); 556 } 557 558 $.each(thisParams.data, function(key, item) { 559 if (typeof item.coords === 'string') { 560 item.coords = item.coords.split(','); 561 } 562 }); 563 564 setTimeout(function(){ 565 lpc_template.initMaps(thisParams); 566 }, 1000) 567 }); 568 } 569 } 570 */ 571 572 lpc_template.queue.lpcSimpleAccordeon = function($self) { 573 var $block = $self.find('.js_accordeon_title'), 574 activeClass = 'active'; 575 576 if ($block.length) { 577 $block.on('click', function(e) { 578 e.preventDefault(); 579 580 var $this = $(this), 581 $ymap = $this.closest('[data-block-layout]').find('.js-lpc-simple-map'); 582 $thisParent = $this.closest('._parent'), 583 $thisBody = $thisParent.find('._content'); 584 585 if ($thisParent.hasClass(activeClass)) {
586 $thisBody.slideUp(400, function(){ 587 $thisParent.removeClass(activeClass); 588 if ($ymap.length && $ymap.data('ymaps')) { 589 $ymap.data('ymaps').container.fitToViewport(); 590 } 591 }); 592 } else { 593 $thisBody.slideDown(400, function(){ 594 $thisParent.addClass(activeClass); 595 if ($ymap.length && $ymap.data('ymaps')) { 596 $ymap.data('ymaps').container.fitToViewport(); 597 } 598 }); 599 } 600 }); 601 } 602 } 603 604 lpc_template.queue.lpcSimpleSlider = function($self) { 605 var $slider = $self.find('.js-lpc-simple-slider'); 606 607 if ($slider.length) { 608 $slider.each(function() { 609 var $this = $(this), 610 isOnlyMobile = !!$this.data('mobile-slider'), 611 parentSelector = $this.data('parent') ? $this.data('parent') : '[data-block-layout]', 612 $parent = $this.closest(parentSelector), 613 $items = $this.find('._item-slide'), 614 count = $this.data('count'), 615 margin = $this.data('margin'), 616 infinite = !!$this.data('infinite'), 617 autoplay = !!$this.data('autoplay'), 618 pause = $this.data('pause'), 619 speed = $this.data('speed'), 620 center = !!$this.data('center'), 621 touch = $this.data('touch'), 622 autoWidth = !!$this.data('auto-width'), 623 $nav = $parent.find('.js-simple-slider-nav'), 624 $dots = $parent.find('.js-simple-slider-dots'); 625 626 $doc.on('checkDeviceType', function(e, param) { 627 628 $this.trigger('destroy.owl.carousel'); 629 630 if (isOnlyMobile && param !== 'mobile') { 631 return; 632 } 633 634 var thisCount = param === 'mobile' ? count[2] : param === 'tablet' ? count[1] : count[0]; 635 var thisMargin = param === 'mobile' ? margin[2] : param === 'tablet' ? margin[1] : margin[0]; 636 637 var isInfinite = $items < thisCount ? false : infinite; 638 639 $this.owlCarousel({ 640 items: thisCount, 641 margin: thisMargin, 642 autoplay : autoplay, 643 loop : isInfinite, 644 nav : false, 645 dots : true, 646 autoWidth: autoWidth, 647 center: center, 648 smartSpeed: speed, 649 mouseDrag: s3LP.is_cms ? false : true, 650 autoplayTimeout: pause, 651 touchDrag: touch, 652 onInitialized: function() { 653 if ($dots.length) { 654 var dotsLength = $parent.find('.owl-dots > *').length; 655 if (dotsLength < 2) { 656 $dots.html(''); 657 } else { 658 var dotItems = '', 659 dotClass = $dots.data('dot-class'); 660 661 for (let i = 0; i < dotsLength; i++) { 662 dotItems += '<div class="lpc-simple-dot-item ' + dotClass +'" data-elem-type="container" data-lp-selector=".lpc-simple-dot-item"></div>' 663 } 664 665 $dots.html(dotItems); 666 $dots.find('.lpc-simple-dot-item').eq(2).addClass('active'); 667 } 668 } 669 }, 670 onTranslated: function(e) { 671 $dots.find('.lpc-simple-dot-item').removeClass('active').eq(e.page.index).addClass('active'); 672 } 673 }) 674 if($this.hasClass('lpc-video-2__slider')){ 675 $this.on('change.owl.carousel', function(event) { 676 $('.lpc-video-2__slider-item video').trigger('pause'); 677 $('.owl-item.active ._lp-youtube-video').each(function(){ 678 var el_src = $(this).attr("src"); 679 $(this).attr("src",el_src); 680 }); 681 }); 682 } 683 }); 684 685 686 if ($nav.length) { 687 $nav.on('click', '.js-prev-slide', function(e) { 688 e.preventDefault(); 689 $this.trigger('prev.owl.carousel'); 690 }); 691 692 $nav.on('click', '.js-next-slide', function(e) { 693 e.preventDefault(); 694 $this.trigger('next.owl.carousel'); 695 }); 696 } 697 698 $dots.on('click', '.lpc-simple-dot-item', function(e) { 699 $this.trigger('to.owl.carousel', [$(this).index()]); 700 }); 701 }); 702 } 703 704 } 705 706 lpc_template.queue.lpcCarousel1 = function($self) { 707 708 var $block = $self.find('.js-carousels-1'); 709 710 if ($block.length) { 711 $block.each(function(){ 712 var $this = $(this), 713 $items = $this.find('.lpc-carousels-1__item'), 714 carouselSpeed = $this.data('speed'), 715 $parent = $this.closest('[data-block-layout]'), 716 $nav = $parent.find('.js-simple-slider-nav'), 717 $dots = $parent.find('.js-simple-slider-dots'); 718 //43462 719 if (carouselSpeed == 250 || (!carouselSpeed && carouselSpeed != 0)) { 720 carouselSpeed = 2500; 721 } 722 $doc.on('checkDeviceType', function(e, param) { 723 724 var paramTypeWindow = param === 'mobile' ? true : false;
725 726 $this.trigger('destroy.owl.carousel'); 727 728 $this.owlCarousel({ 729 items: 1, 730 loop: true, 731 startPosition: 0, 732 autoplay : carouselSpeed > 0, 733 autoplayTimeout:carouselSpeed, 734 mouseDrag: param === 'mobile' ? true : false, 735 touchDrag: param === 'mobile' ? true : false, 736 pullDrag: false, 737 smartSpeed: 250, 738 nav: false, 739 dots : true, 740 margin: 0, 741 onTranslated: function(e){ 742 $dots.find('.lpc-simple-dot-item').removeClass('active').eq(e.page.index).addClass('active'); 743 }, 744 onInitialized: function(e){ 745 addClasses($this, $parent); 746 747 if ($dots.length) { 748 var dotsLength = $parent.find('.owl-dots > *').length; 749 if (dotsLength < 2) { 750 $dots.html(''); 751 } else { 752 var dotItems = '', 753 dotClass = $dots.data('dot-class'); 754 755 for (let i = 0; i < dotsLength; i++) { 756 dotItems += '<div class="lpc-simple-dot-item ' + dotClass +'" data-elem-type="container" data-lp-selector=".lpc-simple-dot-item"></div>' 757 } 758 759 $dots.html(dotItems); 760 $dots.find('.lpc-simple-dot-item').eq(0).addClass('active'); 761 } 762 } 763 }, 764 onChanged:function(e){ 765 setTimeout(function(){ 766 removeClasses($this); 767 addClasses($this, $parent); 768 },1); 769 770 } 771 }); 772 }); 773 774 $nav.on('click', '.js-lpc-carousels-1-prev-slide', function(e){ 775 e.preventDefault(); 776 $this.trigger('prev.owl.carousel'); 777 removeClasses($this); 778 addClasses($this, $parent); 779 }); 780 781 $nav.on('click', '.js-lpc-carousels-1-next-slide', function(e){ 782 e.preventDefault(); 783 $this.trigger('next.owl.carousel'); 784 removeClasses($this); 785 addClasses($this, $parent); 786 }); 787 788 $this.on('click', '.prev-1 > div', function(e) { 789 e.preventDefault(); 790 $this.trigger('prev.owl.carousel'); 791 removeClasses($this); 792 addClasses($this, $parent); 793 }); 794 795 $this.on('click', '.next-1 > div', function(e) { 796 e.preventDefault(); 797 $this.trigger('next.owl.carousel'); 798 removeClasses($this); 799 addClasses($this, $parent); 800 }); 801 802 $dots.on('click', '.lpc-simple-dot-item', function(e) { 803 var $newDot = $(this), 804 $owlItems = $this.find('.owl-item'), 805 newIndex = $newDot.index(), 806 oldIndex = $newDot.parent().find('.active').index(), 807 scrolledItems = (newIndex - oldIndex) * carouselSpeed; 808 809 $this.trigger('to.owl.carousel', [$(this).index()]); 810 811 removeClasses($this); 812 813 if (oldIndex < newIndex) { 814 $owlItems.addClass('movingLeft'); 815 } else if (oldIndex > newIndex) { 816 $owlItems.addClass('movingRight'); 817 scrolledItems *= -1; 818 } 819 820 if (scrolledItems > 1500) { 821 scrolledItems = 250; 822 } 823 824 setTimeout(function() { 825 addClasses($this, $parent); 826 }, scrolledItems); 827 828 setTimeout(function () { 829 $owlItems.removeClass('movingLeft movingRight'); 830 }, scrolledItems); 831 }); 832 833 }); 834 } 835 836 function addClasses($slider, $parent) { 837 if ($parent.width() >= 1024) { 838 $slider.find('.owl-item.active').next().addClass('next-1').next().addClass('next-2').next().addClass('next-3'); 839 $slider.find('.owl-item.active').prev().addClass('prev-1').prev().addClass('prev-2').prev().addClass('prev-3'); 840 $slider.find('.next-1 .lpc-carousels-2__item, .prev-1 .lpc-carousels-2__item').attr("data-has-event", "1"); 841 } else if ($parent.width() >= 768) { 842 $slider.find('.owl-item.active').next().addClass('next-1').attr("data-has-event", "1").next().addClass('next-2'); 843 $slider.find('.owl-item.active').prev().addClass('prev-1').prev().addClass('prev-2'); 844 } 845 } 846 847 function removeClasses($slider) { 848 $slider.find('.owl-item').removeClass('next-1 next-2 next-3 prev-1 prev-2 prev-3'); 849 } 850 } 851 852 lpc_template.queue.lpcSimpleColumn = function($self) { 853 var $block = $self.find('.js-lpc-simple-colum'); 854 855 if ($block.length) { 856 $block.each(function(){ 857 var $this = $(this), 858 $items = $this.find('._parent'); 859 countArray = $this.data('column-count'); 860 861 $doc.on('checkDeviceType', function(e, param) { 862 var thisCount = param === 'mobile' ? countArray[2] : param === 'tablet' ? countArray[1] : countArray[0]; 863 864 unwrap($items); 865 866 if (thisCount == 1) { 867 $items.wrap('<div class="_simple-col"></div>'); 868 return; 869 } 870 871 var itemsLengthInColumn = Math.round($items.length / thisCount); 872 873 for (let i = 1; i < thisCount + 1; i += 1) { 874 $items.filter(function (index) { 875 return index >= (i - 1) * itemsLengthInColumn && index < i * itemsLengthInColumn; 876 }).wrapAll('<div class="_simple-col"></div>'); 877 } 878 }); 879 }); 880 881 function unwrap ($list) { 882 $list.each(function() { 883 if (!this.parentNode.classList.contains("_simple-col")) return; 884 $(this).unwrap(); 885 }); 886 } 887 } 888 } 889 890 891 892 lpc_template.queue.lpcVideo6 = function($self) { 893 894 var $block = $self.hasClass('lpc-video-6') ? $self : $self.find('.lpc-video-6'); 895 896 if ($block.length) { 897 $(document).on('checkDeviceType', function(e, param) { 898 $block.each(function(){ 899 var $this = $(this), 900 slider_big = $this.find('.lpc-video-6__slider-big'), 901 slider_thumbs = $this.find('.lpc-video-6__slider-thumbs'), 902 $controls = $this.find('.lpc-video-6__thumbs-controls'), 903 $dots = $this.find('.lpc-video-6__thumbs-dots'), 904 $nav = !!slider_thumbs.data('arrows'), 905 $dot = !!slider_thumbs.data('dots'), 906 autoplay = $this.data('autoplay'), 907 pause = $this.data('pause'), 908 speed = $this.data('speed'), 909 infinite = $this.data('infinite'); 910 911 if (slider_big.hasClass('slick-initialized') && slider_thumbs.hasClass('slick-initialized')) { 912 slider_big.slick('unslick'); 913 slider_thumbs.slick('unslick'); 914 } 915 916 slider_big.slick({ 917 autoplay: autoplay, 918 autoplaySpeed: pause, 919 infinite: infinite, 920 slidesToShow: 1, 921 slidesToScroll: 1, 922 asNavFor: slider_thumbs, 923 draggable: false, 924 speed: speed, 925 draggable: true, 926 fade: true,
927 arrows: false, 928 dots: false 929 }); 930 931 slider_thumbs.slick({ 932 autoplay: autoplay, 933 autoplaySpeed: pause, 934 vertical: param == 'desktop' ? true : false, 935 infinite: infinite, 936 verticalSwiping: param == 'desktop' ? true : false, 937 draggable: true, 938 slidesToShow: param == 'desktop' ? 4 : param == 'tablet' ? 3 : 1, 939 slidesToScroll: 1, 940 speed: speed, 941 asNavFor: slider_big, 942 focusOnSelect: true, 943 swipe: true, 944 arrows: $nav, 945 dots: $dot, 946 appendArrows: $controls, 947 appendDots: $dots, 948 prevArrow: '<button data-has-event="1" data-elem-type="container" data-lp-selector=".lpc-video-6__arrow" class="lpc-video-6__arrow lpc-video-6__arrow-prev js-prev-item _primary-fill _svg-light-fill"><div data-elem-type="container" class="arrow-line-wr" data-lp-selector=".arrow-line"><div class="arrow-line"></div><div class="arrow-line"></div></div></button>', 949 nextArrow: '<button data-has-event="1" data-elem-type="container" data-lp-selector=".lpc-video-6__arrow" class="lpc-video-6__arrow lpc-video-6__arrow-next js-next-item _primary-fill _svg-light-fill"><div data-elem-type="container" class="arrow-line-wr" data-lp-selector=".arrow-line"><div class="arrow-line"></div><div class="arrow-line"></div></div></button>' 950 }); 951 952 $(window).on('resize', limitTextLines); 953 954 $this.find('.lpc-video-6__slider-thumbs .lpc-video-6__custom-video-btn').click(function() { 955 $this.find('.lpc-video-6__thumbs-controls').toggle(); 956 }); 957 958 /*$('.slick-slider.lpc-video-6__slider-thumbs').on('beforeChange', function(event, slick, currentSlide, nextSlide){ 959 $('.lpc-video-6__slider-thumbs video').trigger('pause'); 960 $('.lpc-video-6__slider-big ._lp-youtube-video').each(function(){ 961 var el_src = $(this).attr("src"); 962 $(this).attr("src",el_src); 963 }); 964 });*/ 965 966 $('.slick-slider.lpc-video-6__slider-big').on('beforeChange', function(event, slick, currentSlide, nextSlide){ 967 $('.lpc-video-6__slider-big video').trigger('pause'); 968 $('.lpc-video-6__slider-big ._lp-youtube-video').each(function(){ 969 var el_src = $(this).attr("src"); 970 $(this).attr("src",el_src); 971 972 }); 973 }); 974 975 function limitTextLines() { 976 let item_title = '.lpc-video-6__thumbs-item-title', 977 item_text = '.lpc-video-6__thumbs-item-text'; 978 979 $this.find(item_title).css('max-height', ''); 980 $this.find(item_text).css('max-height', ''); 981 982 if (window.matchMedia('(min-width: 1024px)').matches) { 983 984 let line_height_title = parseInt($(item_title).css('line-height')), 985 line_height_text = parseInt($(item_text).css('line-height')); 986 987 $(item_title).css('max-height', 2 * line_height_title); 988 $(item_text).css('max-height', 3 * line_height_text); 989 } 990 } 991 }); 992 }) 993 994 $(window).on('resize', function(){ 995 setTimeout(function(){ 996 var $dotItem = $block.find('.lpc-video-6__thumbs-dots li button'); 997 if ($dotItem.hasClass('lpc-video-6__slider-dot')) { 998 999 } 1000 else { 1001 $dotItem.attr('data-elem-type', 'card_container'); 1002 $dotItem.addClass('lpc-video-6__slider-dot'); 1003 $dotItem.attr('data-lp-selector','.lpc-video-6__slider-dot'); 1004 $dotItem.attr('data-has-event','1'); 1005 } 1006 },500); 1007 }); 1008 } 1009 } 1010 1011 lpc_template.queue.lpcMenu1 = function($self) { 1012 var $block = $self.hasClass('lpc-menu-1') ? $self : $self.find('.lpc-menu-1'); 1013 $block.each(function() { 1014 if ($block.length) { 1015 1016 var $this = $(this), 1017 menu = '.lpc-menu-1', 1018 nav = '.lpc-menu-1-nav', 1019 navWrapper = '.lpc-menu-1-nav-wrapper', 1020 navItem = '.lpc-menu-1-nav__item', 1021 navSubList = '.lpc-menu-1-nav__sublist', 1022 navSubListArrow = '.lpc-menu-1-nav__sublist-arrow', 1023 navSubListArrowHtml = '<div class="lpc-menu-1-nav__sublist-arrow" data-has-event="1" data-elem-type="container" data-lp-selector=".lpc-menu-1-nav__sublist-arrow-line"><div class="lpc-menu-1-nav__sublist-arrow-line"></div><div class="lpc-menu-1-nav__sublist-arrow-line"></div></div>', 1024 navBurger = '.lpc-menu-1__burger', 1025 navPopup = '.lpc-menu-1__popup', 1026 navPopupClass = 'lpc-menu-1__popup-menu', 1027 navPopupCloseBtn = '.lpc-menu-1__popup-close-btn', 1028 navPopupWrapper = '.lpc-menu-1__popup-wrapper', 1029 navPopupOverlay = '.lpc-menu-1__popup-wrapper>.lp-block-bg .lp-block-overlay'; 1030 1031 let dataMediaSource = $('.lpc-menu-1').attr('data-media-source'); 1032 1033 function displayBurger(show, hide) { 1034 $this.find(hide).removeClass('_show'); 1035 $this.find(show).addClass('_show'); 1036 } 1037 1038 function checkNavWidth() { 1039 let navWrapperWidth = $(navWrapper).width(), 1040 navWidth = $this.find(nav).width(); 1041 if (navWidth > navWrapperWidth) { 1042 displayBurger(navBurger, nav); 1043 $this.find(navPopup + '-menu').css('display', ''); 1044 } else { 1045 displayBurger(nav, navBurger); 1046 closeSideMenu(); 1047 } 1048 } 1049 1050 function openSideMenu() { 1051 $this.find(navPopup).addClass('_opened'); 1052 $this.find(navPopupWrapper).css('height', '100vh').addClass('_opened'); 1053 //$this.find(navPopupOverlay).css('background-color', 'rgba(68, 68, 68, 0.6)'); 1054 } 1055 1056 function closeSideMenu() { 1057 //$(navPopupOverlay).css('background-color', 'rgba(68, 68, 68, 0)'); 1058 $(navPopup).removeClass('_opened'); 1059 setTimeout(function(){ 1060 $(navPopupWrapper).css('height', '0').removeClass('_opened');
1061 $(navSubList).slideUp(); 1062 $(navSubListArrow).removeClass('_opened'); 1063 }, 700); 1064 } 1065 1066 try { 1067 $this.find(navBurger).on('click', function(){openSideMenu();}); 1068 1069 $this.find(navPopupOverlay).on('click', function(){closeSideMenu()}); 1070 1071 $this.find(navPopupCloseBtn).on('click', function(){closeSideMenu()}); 1072 1073 checkNavWidth(); 1074 1075 $this.find(nav + ' li').has('ul').addClass('hasChild'); 1076 $this.find(nav + ' .hasChild').append(navSubListArrowHtml); 1077 1078 $this.find(nav).clone().appendTo($this.find(navPopup)).addClass(navPopupClass).css('display', ''); 1079 1080 $(this).find(navPopup + ' a').on('click', function(){ 1081 closeSideMenu(); 1082 }); 1083 1084 $this.find(navSubListArrow).on('click', function() { 1085 $(this).toggleClass('_opened').siblings('ul').stop().slideToggle(400); 1086 }); 1087 1088 $(window).resize(function(){ 1089 checkNavWidth(); 1090 }); 1091 1092 setTimeout(function(){ 1093 $(window).trigger('resize'); 1094 }, 700); 1095 1096 } catch(exception) { 1097 console.log(exception); 1098 } 1099 } 1100 }); 1101 } 1102 1103 lpc_template.queue.lpcMenu2 = function($self) { 1104 var $block = $self.hasClass('lpc-menu-2') ? $self : $self.find('.lpc-menu-2'); 1105 $block.each(function() { 1106 if ($block.length) { 1107 1108 let $this = $(this), 1109 $list = $this.find('.lpc-menu-2__list'), 1110 $item = $this.find('.lpc-menu-2__item'), 1111 $items = $list.children($item), 1112 $button_wrap = $this.find('.lpc-menu-2__button-wrap'), 1113 $button = $this.find('.lpc-menu-2__button'), 1114 $aside_button = $this.find('.lpc-menu-2__aside-button'); 1115 1116 let $sideMenu = $this.find('.lpc-menu-2__aside-wrap'), 1117 $sideMenuOverlay = $this.find('._overlay'); 1118 1119 1120 try { 1121 wrapList(); 1122 1123 $button.on('click', function () { 1124 openSideMenu(); 1125 }); 1126 1127 $aside_button.on('click', function () { 1128 closeSideMenu(); 1129 }); 1130 1131 $sideMenuOverlay.on('click', function () { 1132 closeSideMenu(); 1133 }); 1134 1135 $this.find('.lpc-menu-2__aside-wrap a').on('click', function(){ 1136 closeSideMenu(); 1137 }); 1138 1139 $(window).on('resize', function () { 1140 wrapList(); 1141 closeSideMenu(); 1142 }); 1143 1144 } catch(exception) { 1145 console.log(exception); 1146 } 1147 1148 function wrapList() { 1149 $list.css('display', ''); 1150 $button_wrap.css('display', ''); 1151 1152 if (window.matchMedia('(min-width: 768px)').matches) { 1153 1154 let $itemsWidth = 0; 1155 let $listWidth = $list.width(); 1156 1157 $items.each(function (index, element) { 1158 $itemsWidth += $(element).outerWidth(true); 1159 }); 1160 1161 if ($listWidth < $itemsWidth) { 1162 $list.css('display', 'none'); 1163 $button_wrap.css('display', 'flex'); 1164 } 1165 } 1166 } 1167 1168 function openSideMenu() { 1169 $sideMenu.addClass('_open'); 1170 $sideMenuOverlay.addClass('_open'); 1171 $sideMenuOverlay.css('visibility', 'visible'); 1172 } 1173 1174 function closeSideMenu() { 1175 $sideMenu.removeClass('_open'); 1176 $sideMenuOverlay.removeClass('_open'); 1177 setTimeout(function () { 1178 $sideMenuOverlay.css('visibility', 'hidden') 1179 }, 400); 1180 } 1181 1182 } 1183 }); 1184 } 1185 1186 lpc_template.queue.faq3 = function($self) { 1187 $block = $self.find('.js-qa-3'); 1188 1189 if ($block.length) { 1190 $block.each(function(){ 1191 var $this = $(this), 1192 $thisItems = $this.find('.lpc-qa-3-tabs-item'); 1193 $thisEmptyDiv = $this.find('.lpc-qa-3-content-items'); 1194 1195 $this.on('click', '.js-qa-title', function(e){ 1196 e.preventDefault(); 1197 1198 var $this = $(this), 1199 $parent = $this.closest('.lpc-qa-3-tabs-item'); 1200 1201 if ($parent.hasClass('active')) return; 1202 1203 $thisItems.removeClass('active'); 1204 $parent.addClass('active'); 1205 $(this).closest('.js-qa-3').find('.lpc-qa-3-content-items').html($parent.find('.lpc-qa-3-content-item').html()); 1206 //$thisEmptyDiv.html($parent.find('.lpc-qa-3-content-item').html()); ÐÑÐ´Ð°ÐµÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð¿Ñи множеÑÑвенном кол. одинаковÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² 1207 }); 1208 1209 $this.find('.js-qa-title').eq(0).trigger('click'); 1210 }); 1211 1212 $doc.on('checkDeviceType', function(e, param) { 1213 if (param!='desktop') return; 1214 1215 $block.each(function(){ 1216 var $this = $(this), 1217 $thisTitle = $this.find('.lpc-qa-3__title'); 1218 1219 if (!$thisTitle.length) return; 1220 1221 $this.find('.lpc-qa-3-content-items').css({ 1222 marginTop: +$thisTitle.outerHeight() + +$thisTitle.css('margin-bottom') 1223 }) 1224 }); 1225 1226 1227 }); 1228 } 1229 } 1230 1231 lpc_template.queue.lpcGallery1 = function($self) { 1232 var $block = $self.hasClass('lpc-gallery-1') ? $self : $self.find('.lpc-gallery-1'); 1233 1234 if ($block.length) { 1235 $block.each(function() { 1236 var $this = $(this), 1237 $mainSlider = $this.find('.lpc-gallery-1__main'), 1238 gallerySlider = $this.find('.lpc-gallery-1__main'), 1239 dataMediaSource = $('.lpc-gallery-1').attr('data-media-source'), 1240 $dots = $this.find('.lpc-gallery-1__preview'), 1241 itemsCount = $this.find('.lpc-gallery-1__main').children('.lpc-gallery-1__main-image').length; 1242 1243 try { 1244 initLightGallery(); 1245 initOwlCarousel(); 1246 1247 $this.find('.lpc-gallery-1__preview-more').on('click', function() { 1248 $this.find('.lpc-gallery-1__main-image:first-child').trigger('click'); 1249 }); 1250 1251 $(window).resize(function(){ 1252 let newDataMediaSource = $('.lpc-gallery-1').attr('data-media-source'); 1253 if (newDataMediaSource != dataMediaSource) { 1254 hidePreviews(newDataMediaSource); 1255 dataMediaSource = newDataMediaSource; 1256 } 1257 }); 1258 1259 $(document).on('checkDeviceType', function(e, param) { 1260 setTimeout(function(){ 1261 $(window).trigger('resize'); 1262 },100); 1263 }); 1264 1265 setTimeout(function(){ 1266 $(window).trigger('resize'); 1267 $mainSlider.trigger('refresh.owl.carousel'); 1268 makePreviews(); 1269 },500); 1270 1271 } catch(exception) { 1272 console.log(exception); 1273 } 1274 1275 1276 function makePreviews() { 1277 $this.find('.lpc-gallery-1__main-image').each(function(index, element){ 1278 let item = $(this).children('img').clone(); 1279 $this.find('.lpc-gallery-1__preview').children('.js-owl-dot').eq(index).addClass('lpc-gallery-1__preview-image').prepend(item); 1280 }); 1281 hidePreviews(dataMediaSource); 1282 } 1283 1284 function hidePreviews(dataMediaSource) { 1285 if (dataMediaSource == 'desktop') { 1286 if (itemsCount>6) { 1287 $this.find('.lpc-gallery-1__preview').children('.js-owl-dot').slice(5, itemsCount).css('display', 'none'); 1288 $this.find('.lpc-gallery-1__preview-more').css('display', ''); 1289 } else { 1290 $this.find('.lpc-gallery-1__preview-more').css('display', 'none'); 1291 } 1292 } else { 1293 $this.find('.lpc-gallery-1__preview').children('.js-owl-dot').css('display', ''); 1294 $this.find('.lpc-gallery-1__preview-more').css('display', 'none'); 1295 } 1296 } 1297 1298 function initLightGallery() { 1299 $this.find('.lpc-gallery-1__main.js-lg').lightGallery({ 1300 selector: '.lpc-gallery-1__main-image.js-lg-item', 1301 nextHtml: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.98528 4.32805C9.3758 3.93753 10.009 3.93753 10.3995 4.32805L17.0563 10.9849C17.4469 11.3754 17.4469 12.0086 17.0563 12.3991L10.3995 19.056C10.009 19.4465 9.3758 19.4465 8.98528 19.056C8.59475 18.6654 8.59475 18.0323 8.98528 17.6418L14.935 11.692L8.98528 5.74226C8.59475 5.35174 8.59475 4.71857 8.98528 4.32805Z" fill="white"/></svg>', 1302 prevHtml: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.8492 5.03516L8.19239 11.692L14.8492 18.3489" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>' 1303 }); 1304 }; 1305 1306 function initOwlCarousel() { 1307 gallerySlider.owlCarousel({ 1308 loop: false, 1309 rewind: false, 1310 items: 1, 1311 dots: true, 1312 nav: true, 1313 margin: 0, 1314 navContainer: '.lpc-gallery-1-controls', 1315 navClass: ['js-prev-item','js-next-item'], 1316 onTranslated: function(e){ 1317 $dots.find('.js-owl-dot').attr('data-lp-selector', '.lpc-gallery-1__preview-image'); 1318 $dots.find('.js-owl-dot').removeClass('active').eq(e.page.index).addClass('active').attr('data-lp-selector', '.lpc-gallery-1__preview-image.active'); 1319 }, 1320 onInitialized: function(e){ 1321 addClasses($mainSlider, $this); 1322 1323 if ($dots.length) { 1324 var dotsLength = $mainSlider.find('.owl-dots > *').length; 1325 if (dotsLength <= 1) { 1326 $dots.html(''); 1327 1328 } else { 1329 var dotItems = '', 1330 dotClass = $dots.data('dot-class'); 1331 1332 for (let i = 0; i < dotsLength; i++) { 1333 dotItems += '<div class="js-owl-dot _primary-fill ' + dotClass +'" data-elem-type="container" data-lp-selector=".lpc-gallery-1__preview-image" data-has-event="1"></div>' 1334 } 1335 1336 $dots.html(dotItems); 1337 $dots.find('.js-owl-dot').eq(0).addClass('active'); 1338 1339 } 1340 } 1341 } 1342 }); 1343 1344 $dots.find('.js-owl-dot').on('click', function(e) { 1345 var $newDot = $(this), 1346 $owlItems = $mainSlider.find('.owl-item'), 1347 newIndex = $newDot.index(), 1348 oldIndex = $newDot.parent().find('.active').index(), 1349 scrolledItems = (newIndex - oldIndex); 1350 1351 $mainSlider.trigger('to.owl.carousel', [$(this).index()]); 1352 1353 removeClasses($mainSlider); 1354 1355 if (oldIndex < newIndex) { 1356 $owlItems.addClass('movingLeft'); 1357 } else if (oldIndex > newIndex) { 1358 $owlItems.addClass('movingRight'); 1359 scrolledItems *= -1; 1360 } 1361 1362 if (scrolledItems > 1500) { 1363 scrolledItems = 1500; 1364 } 1365 1366 setTimeout(function() { 1367 addClasses($mainSlider, $this); 1368 }, scrolledItems); 1369 1370 setTimeout(function () { 1371 $owlItems.removeClass('movingLeft movingRight'); 1372 }, scrolledItems); 1373 }); 1374 1375 function addClasses($slider, $parent) { 1376 if ($this.width() >= 1024) { 1377 $slider.find('.owl-item.active').next().addClass('next-1').next().addClass('next-2').next().addClass('next-3'); 1378 $slider.find('.owl-item.active').prev().addClass('prev-1').prev().addClass('prev-2').prev().addClass('prev-3'); 1379 } else if ($this.width() >= 768) { 1380 $slider.find('.owl-item.active').next().addClass('next-1').next().addClass('next-2'); 1381 $slider.find('.owl-item.active').prev().addClass('prev-1').prev().addClass('prev-2'); 1382 } 1383 } 1384 1385 function removeClasses($slider) { 1386 $slider.find('.owl-item').removeClass('next-1 next-2 next-3 prev-1 prev-2 prev-3'); 1387 } 1388 }; 1389 1390 }); 1391 } 1392 } 1393 1394 lpc_template.queue.lpcGallery2 = function($self) { 1395 var $block = $self.hasClass('lpc-gallery-2') ? $self : $self.find('.lpc-gallery-2'); 1396 1397 $block.each(function() { 1398 if ($block.length) { 1399 1400 let $thisBlock = $(this), 1401 $owlSlider = $('.lpc-gallery-2__slider'), 1402 gallerySlider = '.lpc-gallery-2__slider', 1403 dataCount = parseInt($thisBlock.find('.lpc-gallery-2__slider').attr('data-count')), 1404 dataMediaSource = $thisBlock.attr('data-media-source'), 1405 itemsCount = $thisBlock.find('.lpc-gallery-2__slider').children('.lpc-gallery-2__item').length, 1406 gridWrapper = '<div class="lpc-gallery-2__slider-grid"></div>', 1407 1408 carouselSpeed = $thisBlock.find(gallerySlider).data('speed'), 1409 infinite = !!$thisBlock.find(gallerySlider).data('infinite'), 1410 autoplay = !!$thisBlock.find(gallerySlider).data('autoplay'), 1411 pause = $thisBlock.find(gallerySlider).data('pause'), 1412 $navPrev = $thisBlock.find('.js-prev-item'), 1413 $navNext = $thisBlock.find('.js-next-item'), 1414 $dots = $thisBlock.find('.lpc-gallery-2__dots'); 1415 1416 try { 1417 formGrid(dataMediaSource); 1418 $thisBlock.find('.lpc-gallery-2__slider.js-lg').lightGallery({ 1419 selector: '.lpc-gallery-2__item', 1420 nextHtml: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.98528 4.32805C9.3758 3.93753 10.009 3.93753 10.3995 4.32805L17.0563 10.9849C17.4469 11.3754 17.4469 12.0086 17.0563 12.3991L10.3995 19.056C10.009 19.4465 9.3758 19.4465 8.98528 19.056C8.59475 18.6654 8.59475 18.0323 8.98528 17.6418L14.935 11.692L8.98528 5.74226C8.59475 5.35174 8.59475 4.71857 8.98528 4.32805Z" fill="white"/></svg>', 1421 prevHtml: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.8492 5.03516L8.19239 11.692L14.8492 18.3489" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>' 1422 }); 1423 setTimeout(function(){ 1424 initOwlCarousel(); 1425 },1500); 1426 1427 $(window).resize(function(){ 1428 setTimeout(function(){ 1429 let newDataMediaSource = $thisBlock.attr('data-media-source'); 1430 if (newDataMediaSource != dataMediaSource) { 1431 if (dataCount > 4 || newDataMediaSource == 'mobile' || dataMediaSource == 'mobile') { 1432 reInitOwlCarousel(newDataMediaSource); 1433 } 1434 dataMediaSource = newDataMediaSource; 1435 } 1436 },100); 1437 }); 1438 } catch(exception) { 1439 console.log(exception); 1440 } 1441 1442 1443 1444 function sliceFunc(itemsInGrid){ 1445 for (var i = 0;
1445 i < itemsCount/itemsInGrid; i++) { 1446 $thisBlock.find('.lpc-gallery-2__slider>.lpc-gallery-2__item').slice(0, itemsInGrid).wrapAll(gridWrapper); 1447 } 1448 $thisBlock.find('.lpc-gallery-2__slider-grid').each(function(){ 1449 $(this).addClass('_'+$(this).children().length); 1450 }); 1451 }; 1452 1453 function formGrid(dataMediaSource) { 1454 if (dataMediaSource == 'mobile') { 1455 sliceFunc(2) 1456 } else if (dataMediaSource == 'tablet' && dataCount > 4){ 1457 sliceFunc(8); 1458 } else { 1459 sliceFunc(dataCount*2) 1460 } 1461 } 1462 1463 function initOwlCarousel() { 1464 $(gallerySlider).owlCarousel({ 1465 loop: infinite, 1466 items: 1, 1467 autoplay: autoplay, 1468 autoplayTimeout: pause, 1469 autoplayHoverPause: true || 5000, 1470 smartSpeed: carouselSpeed || 250, 1471 dots: true, 1472 nav: true, 1473 margin: 0, 1474 onTranslated: function(e){ 1475 $dots.find('.lpc-simple-dot-item').removeClass('active').eq(e.page.index).addClass('active'); 1476 }, 1477 onInitialized: function(e){ 1478 addClasses($owlSlider, $thisBlock); 1479 1480 if ($dots.length) { 1481 var dotsLength = $thisBlock.find('.owl-dots > *').length; 1482 if (dotsLength <= 1) { 1483 $dots.html(''); 1484 1485 $navPrev.addClass('_hide'); 1486 $navNext.addClass('_hide'); 1487 1488 } else { 1489 var dotItems = '', 1490 dotClass = $dots.data('dot-class'); 1491 1492 for (let i = 0; i < dotsLength; i++) { 1493 dotItems += '<div class="lpc-simple-dot-item ' + dotClass +'" data-elem-type="container" data-lp-selector=".lpc-simple-dot-item" data-has-event="1"></div>' 1494 } 1495 1496 $dots.html(dotItems); 1497 $dots.find('.lpc-simple-dot-item').eq(0).addClass('active'); 1498 1499 } 1500 } 1501 if(!s3LP.is_cms) { 1502 s3LP.convertImages($owlSlider); 1503 } 1504 else { 1505 if (typeof LpController !== 'undefined') { 1506 LpController.convertImages($owlSlider); 1507 } 1508 } 1509 }, 1510 onResized: function() { 1511 var dotsLength = $thisBlock.find('.owl-dots > *').length; 1512 1513 if (dotsLength <= 1) { 1514 $navPrev.addClass('_hide'); 1515 $navNext.addClass('_hide'); 1516 1517 } else { 1518 $navPrev.removeClass('_hide'); 1519 $navNext.removeClass('_hide'); 1520 } 1521 } 1522 }); 1523 1524 $owlSlider.trigger('refresh.owl.carousel'); 1525 $owlSlider.on('changed.owl.carousel', function(event) { 1526 if (autoplay == false) { 1527 $owlSlider.trigger('stop.owl.autoplay') 1528 } 1529 1530 }); 1531 1532 $navPrev.off(); 1533 1534 $navPrev.on('click', function(e){ 1535 e.preventDefault(); 1536 $owlSlider.trigger('prev.owl.carousel'); 1537 removeClasses($owlSlider); 1538 addClasses($owlSlider, $thisBlock); 1539 }); 1540 1541 $navNext.off(); 1542 1543 $navNext.on('click', function(e){ 1544 e.preventDefault(); 1545 $owlSlider.trigger('next.owl.carousel'); 1546 removeClasses($owlSlider); 1547 addClasses($owlSlider, $thisBlock); 1548 }); 1549 1550 $dots.find('.lpc-simple-dot-item').on('click', function(e) { 1551 var $newDot = $(this), 1552 $owlItems = $owlSlider.find('.owl-item'), 1553 newIndex = $newDot.index(), 1554 oldIndex = $newDot.parent().find('.active').index(), 1555 scrolledItems = (newIndex - oldIndex) * carouselSpeed; 1556 1557 $owlSlider.trigger('to.owl.carousel', [$(this).index()]); 1558 1559 removeClasses($owlSlider); 1560 1561 if (oldIndex < newIndex) { 1562 $owlItems.addClass('movingLeft'); 1563 } else if (oldIndex > newIndex) { 1564 $owlItems.addClass('movingRight'); 1565 scrolledItems *= -1; 1566 } 1567 1568 if (scrolledItems > 1500) { 1569 scrolledItems = 1500; 1570 } 1571 1572 setTimeout(function() { 1573 addClasses($owlSlider, $thisBlock); 1574 }, scrolledItems); 1575 1576 setTimeout(function () { 1577 $owlItems.removeClass('movingLeft movingRight'); 1578 }, scrolledItems); 1579 }); 1580 1581 function addClasses($slider, $parent) { 1582 if ($thisBlock.width() >= 1024) { 1583 $slider.find('.owl-item.active').next().addClass('next-1').next().addClass('next-2').next().addClass('next-3'); 1584 $slider.find('.owl-item.active').prev().addClass('prev-1').prev().addClass('prev-2').prev().addClass('prev-3'); 1585 } else if ($thisBlock.width() >= 768) { 1586 $slider.find('.owl-item.active').next().addClass('next-1').next().addClass('next-2'); 1587 $slider.find('.owl-item.active').prev().addClass('prev-1').prev().addClass('prev-2'); 1588 } 1589 } 1590 1591 function removeClasses($slider) { 1592 $slider.find('.owl-item').removeClass('next-1 next-2 next-3 prev-1 prev-2 prev-3'); 1593 } 1594 }; 1595 1596 function reInitOwlCarousel(dataMediaSource) { 1597 $thisBlock.find(gallerySlider).trigger('destroy.owl.carousel'); 1598 $thisBlock.find('.lpc-gallery-2__dots-wrap').append('<div class="lpc-gallery-2__dots"></div>'); 1599 $thisBlock.find('.lpc-gallery-2__item').unwrap(); 1600 formGrid(dataMediaSource); 1601 initOwlCarousel(); 1602 }; 1603 } 1604 }); 1605 } 1606 1607 lpc_template.queue.lpcGallery5 = function($self) { 1608 var $block = $self.find('.js-gallery-5'), 1609 deviceTypes = ['desktop', 'tablet', 'mobile']; 1610 1611 if ($block.length) { 1612 $block.each(function() { 1613 var $this = $(this), 1614 thisItems = $this.data('items'), 1615 carouselSpeed = $this.data('speed'), 1616 pause = $this.data('pause'), 1617 infinite = !!$this.data('infinite'), 1618 autoplay = !!$this.data('autoplay'), 1619 $parent = $this.closest('[data-block-layout]'), 1620 $dots = $parent.find('.js-simple-slider-dots'), 1621 $arrows = $parent.find('.js-simple-slider-nav'); 1622 1623 1624 $(document).on('checkDeviceType', function(e, param){ 1625 $this.trigger('destroy.owl.carousel'); 1626 1627 setTimeout(function(){ 1628 1629 $this.owlCarousel({ 1630 items: thisItems[deviceTypes.indexOf(param)], 1631 loop: infinite || false, 1632 autoplay: autoplay || false, 1633 autoplayTimeout: pause || 5000, 1634 smartSpeed: carouselSpeed || 250, 1635 autoplayHoverPause: true, 1636 dots: true, 1637 nav: false, 1638 onTranslated: function(e){ 1639 $dots.find('.lpc-simple-dot-item').removeClass('active').eq(e.page.index).addClass('active'); 1640 }, 1641 onInitialized: function(e){ 1642 if ($dots.length) { 1643 var dotsLength = $parent.find('.owl-dots > *').length; 1644 if (dotsLength <= 1) { 1645 $dots.html(''); 1646 1647 } else { 1648 var dotItems = '', 1649 dotClass = $dots.data('dot-class'); 1650 1651 for (let i = 0; i < dotsLength; i++) { 1652 dotItems += '<div class="lpc-simple-dot-item ' + dotClass +'" data-elem-type="container" data-lp-selector=".lpc-simple-dot-item"></div>' 1653 } 1654 1655 $dots.html(dotItems); 1656 $dots.find('.lpc-simple-dot-item').eq(0).addClass('active'); 1657 1658 } 1659 } 1660 } 1661 }); 1662 }, 500); 1663 }); 1664 1665 1666 if ($arrows.length) { 1667 $arrows.on('click', '.js-prev-item', function(e) { 1668 e.preventDefault(); 1669 $this.trigger('prev.owl.carousel'); 1670 }); 1671 1672 $arrows.on('click', '.js-next-item', function(e) { 1673 e.preventDefault(); 1674 $this.trigger('next.owl.carousel'); 1675 }) 1676 } 1677 }); 1678 } 1679 } 1680 1681 lpc_template.queue.lpcReviews3 = function($self) { 1682 var $block = $self.hasClass('lpc-reviews-3') ? $self : $self.find('.lpc-reviews-3'); 1683 1684 $block.each(function() { 1685 if ($block.length) { 1686 1687 var $parent = $(this), 1688 $this = $parent.find('.lpc-reviews-3__slider'), 1689 $arrows = !!$this.data('arrows'), 1690 $dots = !!$this.data('dots'), 1691 $autoplay = !!$this.data('autoplay'), 1692 $infinite = !!$this.data('infinite'), 1693 $repeat = !!$this.data('repeat'), 1694 $autoplaySpeed = $this.data('autoplay-speed'), 1695 $speed = $this.data('speed'), 1696 $slide = $this.find('.lp-reviews-10-slider__slide'), 1697 //list = '.lpc-reviews-3__slider', 1698 item = $parent.find('.lpc-reviews-3__item'), 1699 items = $this.children(item); 1700 1701 1702 1703 try { 1704 1705 initSlick(); 1706 1707 $this.on('breakpoint', function (event, slick, breakpoint) { 1708 1709 $this.slick('unslick'); 1710 1711 let slides = $parent.find('.lpc-reviews-3__slider').find('.lpc-reviews-3__item');; 1712 1713 if (slides.length > items.length) { 1714 for (let j = 0; j < slides.length - items.length; j++) { 1715 slides[slides.length - 1 - j].remove(); 1716 } 1717 } 1718
1719 $parent.find('.lpc-reviews-3__controls').show(); 1720 initSlick(); 1721 }); 1722 1723 1724 } catch(exception) { 1725 console.log(exception); 1726 } 1727 1728 function initSlick() { 1729 1730 if(!$repeat){ 1731 fillSlide(); 1732 } 1733 1734 1735 $this.slick({ 1736 infinite: $infinite, 1737 autoplay: $autoplay, 1738 autoplaySpeed: $autoplaySpeed, 1739 speed: $speed, 1740 swipe: true, 1741 rows: 3, 1742 slidesPerRow: 1, 1743 focusOnSelect: true, 1744 arrows: $arrows, 1745 dots:$dots, 1746 appendArrows: $parent.find('.lpc-reviews-3__navs'), 1747 appendDots: $parent.find('.lpc-reviews-3__dots-wrap'), 1748 prevArrow:'<a href="#" data-elem-type="card_container" data-has-event="1" data-lp-selector=".lpc-reviews-3-slider__nav-button" class="lp-button lp-button--type-1 lpc-reviews-3-slider__nav-button _prev js-prev-item _v2-icon"><div class="_slider-arrows" data-elem-type="card_container" data-lp-selector="._slider-arrows-inner"><div class="_slider-arrows-inner"></div><div class="_slider-arrows-inner"></div></div></a>', 1749 nextArrow:'<a href="#" data-elem-type="card_container" data-has-event="1" data-lp-selector=".lpc-reviews-3-slider__nav-button" class="lp-button lp-button--type-1 lpc-reviews-3-slider__nav-button _next js-next-item _v2-icon"><div class="_slider-arrows reverse" data-elem-type="card_container" data-lp-selector="._slider-arrows-inner"><div class="_slider-arrows-inner"></div><div class="_slider-arrows-inner"></div></div></a>', 1750 responsive: [ 1751 { 1752 breakpoint: 768, 1753 settings: { 1754 slidesPerRow: 1, 1755 rows: 1, 1756 arrows: false 1757 } 1758 } 1759 ] 1760 }); 1761 1762 1763 1764 $('.lpc-reviews-3__controls') // find the parents 1765 .not(':has(> div:not(:empty))') // select only those that have no children with content 1766 .hide() // hide them 1767 ; 1768 1769 } 1770 1771 $(window).on('resize', function(){ 1772 setTimeout(function(){ 1773 var $dotItem = $parent.find('.lpc-reviews-3__dots-wrap li button'); 1774 if ($dotItem.hasClass('lpc-reviews-3-slider__dot')) { 1775 1776 } 1777 else { 1778 $dotItem.attr('data-elem-type', 'card_container'); 1779 $dotItem.addClass('lpc-reviews-3-slider__dot'); 1780 $dotItem.attr('data-lp-selector','.lpc-reviews-3-slider__dot'); 1781 } 1782 },100); 1783 }); 1784 1785 function fillSlide() { 1786 if (window.matchMedia('(min-width: 768px)').matches) { 1787 1788 $this.on('init', function (slick, currentSlide) { 1789 let slides = currentSlide.$slides, 1790 lastSlide = slides[slides.length - 1], 1791 lastSlideItems = lastSlide.children, 1792 emptyDivs = []; 1793 1794 if (slides.length > 1) { 1795 1796 for (let i = 0; i < lastSlideItems.length; i++) { 1797 if (lastSlideItems[i].childNodes.length < 1) { 1798 emptyDivs.push(lastSlideItems[i]); 1799 } 1800 } 1801 1802 if (emptyDivs.length > 0) { 1803 1804 for (let j = 0; j < emptyDivs.length; j++) { 1805 emptyDivs[j].appendChild($(items)[j].cloneNode(true)); 1806 } 1807 } 1808 } 1809 }); 1810 } 1811 } 1812 } 1813 }); 1814 } 1815 1816 lpc_template.queue.lpcReviews5 = function($self) { 1817 var $block = $self.hasClass('lpc-reviews-5') ? $self : $self.find('.lpc-reviews-5'); 1818 1819 $block.each(function() { 1820 if ($block.length) { 1821 var $parent = $(this), 1822 $this = $parent.find('.js-owl-carousel'), 1823 carouselSpeed = $this.data('speed'), 1824 infinite = !!$this.data('infinite'), 1825 autoplay = !!$this.data('autoplay'), 1826 pause = $this.data('pause'), 1827 $navPrev = $parent.find('.js-prev-slide'), 1828 $navNext = $parent.find('.js-next-slide'), 1829 $dots = $parent.find('.js-simple-slider-dots'), 1830 $item_content = $('.lpc-reviews-5__item-content'), 1831 $item_img = $('.lpc-reviews-5__item-img'); 1832 1833 try { 1834 setTimeout(function () { 1835 initOwlCarousel(); 1836 setImgHeight(); 1837 },1500); 1838 1839 $(window).on('resize', function(){ 1840 setTimeout(function () { 1841 setImgHeight(); 1842 },300); 1843 }); 1844 1845 } catch(exception) { 1846 console.log(exception); 1847 } 1848 1849 function setImgHeight() { 1850 if (window.matchMedia('(min-width: 768px)').matches) { 1851 $item_content.each(function () { 1852 let item_img = $(this).siblings($item_img), 1853 height = $(this).height() + parseInt($(this).css("padding-top")) + parseInt($(this).css("padding-bottom")); 1854 ; 1855 1856 item_img.height(''); 1857 1858 if (item_img.height() > height) { 1859 item_img.height(height); 1860 } 1861 }); 1862 } 1863 } 1864 1865 function initOwlCarousel() { 1866 $this.owlCarousel({ 1867 loop: infinite, 1868 autoplay: autoplay, 1869 autoplayTimeout: pause, 1870 smartSpeed: carouselSpeed, 1871 autoplayHoverPause: true, 1872 mouseDrag: false, 1873 items: 1, 1874 dots: true, 1875 nav: false, 1876 responsive: { 1877 768: { 1878 nav: true 1879 } 1880 }, 1881 onTranslated: function(e){ 1882 $dots.find('.lpc-simple-dot-item').removeClass('active').eq(e.page.index).addClass('active'); 1883 setImgHeight(); 1884 }, 1885 onInitialized: function(e){ 1886 addClasses($this, $parent); 1887 1888 if ($dots.length) { 1889 var dotsLength = $parent.find('.owl-dots > *').length; 1890 if (dotsLength < 1) { 1891 $dots.html(''); 1892 1893 } else { 1894 var dotItems = '', 1895 dotClass = $dots.data('dot-class'); 1896 1897 for (let i = 0; i < dotsLength; i++) { 1898 dotItems += '<div class="lpc-simple-dot-item ' + dotClass +'" data-elem-type="container" data-lp-selector=".lpc-simple-dot-item"></div>' 1899 } 1900 1901 $dots.html(dotItems); 1902 $dots.find('.lpc-simple-dot-item').eq(0).addClass('active'); 1903 1904 } 1905 } 1906 } 1907 }); 1908 1909 $navPrev.on('click', function(e){ 1910 e.preventDefault(); 1911 $this.trigger('prev.owl.carousel'); 1912 removeClasses($this); 1913 addClasses($this, $parent); 1914 }); 1915 1916 $navNext.on('click', function(e){ 1917 e.preventDefault(); 1918 $this.trigger('next.owl.carousel'); 1919 removeClasses($this); 1920 addClasses($this, $parent); 1921 }); 1922 1923 $dots.find('.lpc-simple-dot-item').on('click', function(e) { 1924 var $newDot = $(this), 1925 $owlItems = $this.find('.owl-item'), 1926 newIndex = $newDot.index(), 1927 oldIndex = $newDot.parent().find('.active').index(), 1928 scrolledItems = (newIndex - oldIndex) * carouselSpeed; 1929 1930 $this.trigger('to.owl.carousel', [$(this).index()]); 1931 1932 removeClasses($this); 1933 1934 if (oldIndex < newIndex) { 1935 $owlItems.addClass('movingLeft'); 1936 } else if (oldIndex > newIndex) { 1937 $owlItems.addClass('movingRight'); 1938 scrolledItems *= -1; 1939 } 1940 1941 if (scrolledItems > 1500) { 1942 scrolledItems = 1500; 1943 } 1944 1945 setTimeout(function() { 1946 addClasses($this, $parent); 1947 }, scrolledItems); 1948 1949 setTimeout(function () { 1950 $owlItems.removeClass('movingLeft movingRight'); 1951 }, scrolledItems); 1952 }); 1953 1954 function addClasses($slider, $parent) { 1955 if ($parent.width() >= 1024) { 1956 $slider.find('.owl-item.active').next().addClass('next-1').next().addClass('next-2').next().addClass('next-3'); 1957 $slider.find('.owl-item.active').prev().addClass('prev-1').prev().addClass('prev-2').prev().addClass('prev-3'); 1958 } else if ($parent.width() >= 768) { 1959 $slider.find('.owl-item.active').next().addClass('next-1').next().addClass('next-2'); 1960 $slider.find('.owl-item.active').prev().addClass('prev-1').prev().addClass('prev-2'); 1961 } 1962 } 1963 1964 function removeClasses($slider) { 1965 $slider.find('.owl-item').removeClass('next-1 next-2 next-3 prev-1 prev-2 prev-3'); 1966 } 1967 1968 }; 1969 } 1970 }); 1971 } 1972 1973 lpc_template.queue.lpcCarousel2 = function($self) { 1974 var $block = $self.hasClass('lpc-carousels-2') ? $self : $self.find('.lpc-carousels-2'); 1975 1976 $block.each(function() { 1977 if ($block.length) { 1978 1979 var $parent = $(this), 1980 $this = $parent.find('.js-owl-carousel'), 1981 carouselSpeed = $this.data('speed'), 1982 infinite = !!$this.data('infinite'), 1983 pause = $this.data('pause'), 1984 $navPrev = $parent.find('.js-lpc-carousels-2-prev-slide'), 1985 $navNext = $parent.find('.js-lpc-carousels-2-next-slide'), 1986 $dots = $parent.find('.js-simple-slider-dots'); 1987 1988 try { 1989 1990 setTimeout(function(){ 1991 initOwlCarousel(); 1992 $(window).trigger('resize'); 1993 },1500); 1994 } catch(exception) { 1995 console.log(exception); 1996 } 1997 if (carouselSpeed == 250 || (!carouselSpeed && carouselSpeed != 0)) { 1998 carouselSpeed = 2500; 1999 } 2000 function initOwlCarousel() { 2001 $this.owlCarousel({ 2002 loop: infinite,
2003 autoplay: (carouselSpeed > 0), 2004 autoplayTimeout: carouselSpeed, 2005 smartSpeed: carouselSpeed, 2006 autoplayHoverPause: true, 2007 dots: true, 2008 nav: false, 2009 items: 1, 2010 responsive:{ 2011 768:{ 2012 autoWidth: true, 2013 center: true, 2014 items: 3, 2015 dots: true, 2016 nav: false 2017 } 2018 }, 2019 onTranslated: function(e){ 2020 $dots.find('.lpc-simple-dot-item').removeClass('active').eq(e.page.index).addClass('active'); 2021 }, 2022 onInitialized: function(e){ 2023 addClasses($this, $parent); 2024 2025 if ($dots.length) { 2026 var dotsLength = $parent.find('.owl-dots > *').length; 2027 if (dotsLength < 1) { 2028 $dots.html(''); 2029 $navPrev.addClass("_hide"); 2030 $navNext.addClass("_hide"); 2031 } else { 2032 var dotItems = '', 2033 dotClass = $dots.data('dot-class'); 2034 2035 for (let i = 0; i < dotsLength; i++) { 2036 dotItems += '<div class="lpc-simple-dot-item ' + dotClass +'" data-elem-type="container" data-lp-selector=".lpc-simple-dot-item"></div>' 2037 } 2038 2039 $dots.html(dotItems); 2040 $dots.find('.lpc-simple-dot-item').eq(0).addClass('active'); 2041 2042 } 2043 } 2044 }, 2045 onResize: function() { 2046 var dotsLength = $parent.find('.owl-dots > *').length; 2047 if (dotsLength < 1) { 2048 $navPrev.addClass("_hide"); 2049 $navNext.addClass("_hide"); 2050 } else { 2051 $navPrev.removeClass("_hide"); 2052 $navNext.removeClass("_hide"); 2053 } 2054 } 2055 }); 2056 2057 if (window.matchMedia('(min-width: 768px)').matches) { 2058 addClasses(); 2059 } 2060 2061 $this.on('resized.owl.carousel', function (event) { 2062 if (window.matchMedia('(min-width: 768px)').matches) { 2063 $this.trigger('destroy.owl.carousel'); 2064 initOwlCarousel(); 2065 } 2066 }); 2067 2068 $this.on('dragged.owl.carousel changed.owl.carousel initialized.owl.carousel', function (event) { 2069 if (window.matchMedia('(min-width: 768px)').matches) { 2070 removeClasses(); 2071 addClasses(); 2072 } 2073 }); 2074 2075 $navPrev.on('click', function(e){ 2076 e.preventDefault(); 2077 $this.trigger('prev.owl.carousel'); 2078 removeClasses($this); 2079 addClasses($this, $parent); 2080 }); 2081 2082 $navNext.on('click', function(e){ 2083 e.preventDefault(); 2084 $this.trigger('next.owl.carousel'); 2085 removeClasses($this); 2086 addClasses($this, $parent); 2087 }); 2088 2089 $dots.find('.lpc-simple-dot-item').on('click', function(e) { 2090 var $newDot = $(this), 2091 $owlItems = $this.find('.owl-item'), 2092 newIndex = $newDot.index(), 2093 oldIndex = $newDot.parent().find('.active').index(), 2094 scrolledItems = (newIndex - oldIndex) * carouselSpeed; 2095 2096 $this.trigger('to.owl.carousel', [$(this).index()]); 2097 2098 removeClasses($this); 2099 2100 if (oldIndex < newIndex) { 2101 $owlItems.addClass('movingLeft'); 2102 } else if (oldIndex > newIndex) { 2103 $owlItems.addClass('movingRight'); 2104 scrolledItems *= -1; 2105 } 2106 2107 if (scrolledItems > 1500) { 2108 scrolledItems = 1500; 2109 } 2110 2111 setTimeout(function() { 2112 addClasses($this, $parent); 2113 }, scrolledItems); 2114 2115 setTimeout(function () { 2116 $owlItems.removeClass('movingLeft movingRight'); 2117 }, scrolledItems); 2118 }); 2119 2120 function addClasses() { 2121 let center = $this.find('.owl-item.center'); 2122 center.next().addClass('next'); 2123 center.prev().addClass('prev'); 2124 center.find('.lpc-carousels-2__item').addClass('current-slide'); 2125 center.find('.lpc-carousels-2__item').attr('data-lp-selector', '.lpc-carousels-2__item.current-slide'); 2126 2127 center.siblings('.owl-item').find('.lpc-carousels-2__item').removeClass('current-slide'); 2128 center.siblings('.owl-item').find('.lpc-carousels-2__item').attr('data-lp-selector', '.lpc-carousels-2__item'); 2129 } 2130 2131 function removeClasses() { 2132 $this.find('.owl-item').removeClass('next prev'); 2133 } 2134 } 2135 } 2136 }); 2137 } 2138 2139 lpc_template.queue.lpcText7 = function($self) { 2140 var $block = $self.hasClass('lpc-text-7') ? $self : $self.find('.lpc-text-7'); 2141 $block.each(function() { 2142 if ($block.length) { 2143 var $this = $(this), 2144 $content = $this.find('.lpc-text-7__content'), 2145 $imgWrap = $this.find('.lpc-text-7__img-wrap'), 2146 $imgItems = $this.find('.lpc-text-7__img-items'); 2147 2148 try {
2149 let childs = $imgItems.children().length; 2150 setAutoRows(childs); 2151 $(window).on('resize', function(){ 2152 setAutoRows(childs); 2153 }); 2154 2155 setTimeout(function(){ 2156 $(window).trigger('resize'); 2157 }); 2158 } catch(exception) { 2159 console.log(exception); 2160 } 2161 2162 function setAutoRows(childs) { 2163 if (window.matchMedia('(min-width: 1024px)').matches) { 2164 2165 let imgSetCount = Math.ceil(childs/3), 2166 contentHeight = $content.height() + 2167 parseInt($content.css('padding-top')) + 2168 parseInt($content.css('padding-bottom')), 2169 imgWrapHeight = contentHeight - 2170 parseInt($imgWrap.css('padding-top')) - 2171 parseInt($imgWrap.css('padding-bottom')), 2172 imgItemsMinHeigth = parseInt($imgItems.css('min-height')); 2173 2174 if (imgWrapHeight > imgItemsMinHeigth*imgSetCount) { 2175 2176 let imgSetHeight = (imgWrapHeight - 32*(imgSetCount - 1))/imgSetCount, 2177 autoRows = (imgSetHeight - 32)/2; 2178 2179 $imgItems.css('grid-auto-rows', autoRows); 2180 } else { 2181 $imgItems.css('grid-auto-rows', ''); 2182 } 2183 } else { 2184 $imgItems.css('grid-auto-rows', ''); 2185 } 2186 } 2187 } 2188 }); 2189 } 2190 2191 lpc_template.queue.lpcText8 = function($self) { 2192 var $block = $self.find('.js-text8'); 2193 2194 if ($block.length) { 2195 2196 $block.each(function(){ 2197 var $this = $(this), 2198 $list = $this.find('.lpc-text-8__tabs'), 2199 $nav = $this.find('.js-simple-slider-nav'), 2200 $tabs = $this.find('.js-tab-item'), 2201 $contents = $this.find('.js-content'), 2202 activeClass = '_active'; 2203 2204 $doc.on('checkDeviceType', function(e, param) { 2205 destroyOwlCarousel($list); 2206 2207 if (param === 'desktop') { 2208 initOwlCarousel($list); 2209 } 2210 }); 2211 2212 2213 if ($nav.length) { 2214 $nav.on('click', '.js-prev-slide', function(e) { 2215 e.preventDefault(); 2216 $list.trigger('prev.owl.carousel'); 2217 }); 2218 2219 $nav.on('click', '.js-next-slide', function(e) { 2220 e.preventDefault(); 2221 $list.trigger('next.owl.carousel'); 2222 }); 2223 } 2224 2225 $list.on('click', '.js-tab-item', function() { 2226 var $this = $(this); 2227 2228 $tabs.removeClass(activeClass); 2229 $contents.removeClass(activeClass); 2230 2231 $this.addClass(activeClass); 2232 $contents.filter(function() { 2233 return $(this).data('index') === $this.data('index'); 2234 }).addClass(activeClass); 2235 }); 2236 2237 }); 2238 2239 } 2240 2241 function initOwlCarousel($list) { 2242 $list.owlCarousel({ 2243 loop: false, 2244 items: 1, 2245 autoPlay: false, 2246 autoWidth: true, 2247 dots: false, 2248 nav: false, 2249 mouseDrag:false 2250 }); 2251 }; 2252 2253 function destroyOwlCarousel($list) { 2254 $list.owlCarousel('destroy'); 2255 } 2256 } 2257 2258 lpc_template.queue.videoPlayButton = function($self) { 2259 var $allVideoParets = $self.find('.js-lp-play-video').closest('.lp-video-block-wrappper'); 2260 2261 $self.on('click', '.js-lp-play-video', function(e) { 2262 e.preventDefault(); 2263 2264 var $this = $(this); 2265 var thisVideo = $this.parent('.lp-video-block-wrappper').find('video')[0]; 2266 2267 $this.addClass('hide'); 2268 thisVideo.play(); 2269 thisVideo.setAttribute('controls', 1); 2270 }); 2271 2272 $allVideoParets.find('video').each(function(){ 2273 this.addEventListener('pause', function(){ 2274 this.removeAttribute('controls'); 2275 $(this).parent('.lp-video-block-wrappper').find('.js-lp-play-video').removeClass('hide') 2276 }); 2277 }); 2278 } 2279 2280 lpc_template.queue.autoplayVideo = function($self) { 2281 var $block = $self.find('[data-autoplay-video="1"]'); 2282 2283 if ($block.length) { 2284 2285 $block.on('autoplayVideo', function(e, type, nodeName) { 2286 var video = this.querySelector(nodeName); 2287 2288 if (nodeName === 'video') { 2289 if (type === 'play') { 2290 video.play(); 2291 } else { 2292 video.pause(); 2293 } 2294 } else if (nodeName === 'iframe') { 2295 var video = $(video).data('youtube'); 2296 2297 if (type === 'play') { 2298 video.playVideo(); 2299 } else { 2300 video.pauseVideo(); 2301 } 2302 } 2303 }); 2304 } 2305 2306 //setTimeout(function(){ 2307 // $win.trigger('scroll'); 2308 //}, 1000); 2309 } 2310 2311 2312 2313 lpc_template.queue.lg = function($self) { 2314 var $block = $self.find('.js-lg-init'); 2315 2316 if ($block.length) { 2317 setTimeout(function(){ 2318 $block.lightGallery({ 2319 selector: '.lg-item', 2320 toogleThumb: false, 2321 getCaptionFromTitleOrAlt: false, 2322 download: false, 2323 thumbWidth: 64,
2324 thumbHeight: '64px', 2325 addClass: '_lpc-lg', 2326 nextHtml: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.98528 4.32805C9.3758 3.93753 10.009 3.93753 10.3995 4.32805L17.0563 10.9849C17.4469 11.3754 17.4469 12.0086 17.0563 12.3991L10.3995 19.056C10.009 19.4465 9.3758 19.4465 8.98528 19.056C8.59475 18.6654 8.59475 18.0323 8.98528 17.6418L14.935 11.692L8.98528 5.74226C8.59475 5.35174 8.59475 4.71857 8.98528 4.32805Z" fill="white"/></svg>', 2327 prevHtml: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.8492 5.03516L8.19239 11.692L14.8492 18.3489" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>' 2328 }); 2329 }, 500); 2330 } 2331 } 2332 2333 2334 2335 2336 2337 2338 lpc_template.checkAutoplayVideo = function($blocks) { 2339 $blocks.each(function() { 2340 var $this = $(this), 2341 playStatus = $this.data('playStatus'), 2342 inViewport = isElementInViewport(this), 2343 $video = $this.find('video'), 2344 $thisVideo = $video.length ? $video : $this.find('iframe'); 2345 2346 if (inViewport && playStatus !== 'play') { 2347 $this.trigger('autoplayVideo', ['play', $thisVideo[0].nodeName.toLowerCase()]); 2348 $this.data('playStatus', 'play'); 2349 } else if (!inViewport && playStatus === 'play') { 2350 $this.trigger('autoplayVideo', ['pause', $thisVideo[0].nodeName.toLowerCase()]); 2351 $this.data('playStatus', 'pause'); 2352 } 2353 }) 2354 } 2355 2356 window.lp_init = function($block) { 2357 2358 var initializedMaps = []; 2359 2360 var $maps = $block.find('.js-lpc-simple-map'); 2361 2362 if ($maps.length) { 2363 $maps.each(function() { 2364 var mapElement = this; 2365 var id = $(mapElement).attr('id'); 2366 2367 if (initializedMaps.includes(id)) return; 2368 2369 var observer = new IntersectionObserver(function(entries, observerInstance) { 2370 entries.forEach(function(entry) { 2371 if (entry.isIntersecting) { 2372 2373 lpc_template.initMaps($(mapElement)); 2374 initializedMaps.push(id); 2375 observerInstance.unobserve(entry.target); 2376 } 2377 }); 2378 }, { 2379 root: null, 2380 rootMargin: '0px', 2381 threshold: 0.1 2382 }); 2383 2384 observer.observe(mapElement); 2385 }); 2386 } 2387 2388 2389 /*if ($maps.length) { 2390 setTimeout(function () { 2391 lpc_template.checkMapInitialization($maps); 2392 }, 750); 2393 2394 $win.on('scroll', function () { 2395 lpc_template.checkMapInitialization($maps); 2396 }); 2397 }*/ 2398 2399 if (s3LP.is_cms) { 2400 var contentColor = $('#lpc_contructor_iframe').contents().find('.decor-wrap').css('color') 2401 $('#landing_page_site').css('color', contentColor); 2402 } 2403 2404 $win.on('resize', function() { 2405 var decorWidth = $('.decor-wrap').width(); 2406 2407 $('.lpc-block').not('.custom-lpc-block').css('max-width', decorWidth); 2408 }).trigger('resize'); 2409 2410 Object.keys(lpc_template.queue).forEach(function(func) { 2411 var thisFunction = lpc_template.queue[func]; 2412 if (typeof thisFunction == 'function') { 2413 thisFunction($block); 2414 } 2415 }); 2416 2417 var $autoplayVideo = $doc.find('[data-autoplay-video="1"]'); 2418 2419 if ($autoplayVideo.length && !s3LP.is_cms && window.self == window.top) { 2420 $win.on('scroll', function() { 2421 lpc_template.checkAutoplayVideo($autoplayVideo); 2422 }); 2423 } 2424 2425 lpc_template.deviceType = null; 2426 2427 $win.on('resize', function() { 2428 lpc_template.adaptiveBlock(); 2429 2430 $('.js-proportion-height').each(function() { 2431 var $this = $(this); 2432 2433 setProportionHeight($this, $this.data('proportion') || 100); 2434 }); 2435 2436 2437 }).trigger('resize'); 2438 2439 if (s3LP.is_cms && typeof LpController !== 'undefined') { 2440 2441 LpController.convertImages($block); 2442 2443 setTimeout(function(){ 2444 LpController.convertImages($block); 2445 LpController.afterSave(function () { 2446 $('.lpc-features-3-chart-item__number').each(function(){ 2447 var $this = $(this); 2448 $this.closest('.lpc-features-3-chart-item').find('.lpc-features-3-chart-item__bar-inner').css('width', $this.text()); 2449 }); 2450 }); 2451 }, 1000); 2452 } 2453 2454 if (document.location.hash.length > 1 && $(document.location.hash).length) { 2455 setTimeout(function() { 2456 $('html, body').scrollTop($(document.location.hash).offset().top); 2457 }, 200); 2458 } 2459 } 2460 2461 window.onYouTubeIframeAPIReady = function() { 2462 $(function(){ 2463 var listYoutube = $('.js-lp-video-youtube'); 2464 2465 listYoutube.each(function(){ 2466 var $this = $(this), 2467 isFullFrame = $this.hasClass('_not-paused'); 2468 2469 var player = new YT.Player(this.id, { 2470 iv_load_policy: 3, 2471 modestbranding: 1, 2472 rel: 0, 2473 mute: isFullFrame ? 1 : 0, 2474 playsinline: 1, 2475 showinfo: isFullFrame ? 0 : 1, 2476 events: { 2477 'onStateChange': function(event) { 2478 if (event.data == YT.PlayerState.ENDED && $(event.target.a).hasClass('_not-paused')) { 2479 event.target.playVideo(); 2480 } 2481 } 2482 } 2483 }); 2484 2485 $this.data('youtube', player); 2486 }); 2487 }); 2488 } 2489 2490 function isElementInViewport(el) { 2491 var rect = el.getBoundingClientRect(); 2492 return ( 2493 rect.top <= window.innerHeight-200 && 2494 rect.bottom >= 50 2495 ); 2496 } 2497 2498 function setProportionHeight ($block, proportion) { 2499 $block.height($block.width() * proportion/100); 2500 } 2501})();
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.