1(function($) { 2 3 var $ajaxNewsletter = $('#ajax-newsletter'); 4 5 if ($ajaxNewsletter.length) { 6 7 $ajaxNewsletter.on('submit', function(e) { 8 e.preventDefault(); 9 10 var $form = $(this); 11 if (!$form.animatoIsValid()) return false; 12 13 const needsCaptcha = $form.find('.animato-g-captcha').length > 0 && $form.find('.animato-g-captcha.standard-captcha').length === 0 && $form.find('.animato-g-captcha').val() == ''; 14 if(needsCaptcha) { 15 return; 16 } 17 18 $.ajax({ 19 url: $form.attr('action'), 20 method: 'POST', 21 data: $form.serialize() + '&disable-return=true', 22 }).done(function( msg ) { 23 $form.fadeOut(300, function() { 24 $('<div class="mb-2" style="display: none">' + msg + '</div>') 25 .insertAfter($form) 26 .fadeIn(); 27 }); 28 }).fail(function( jqXHR, textStatus ) { 29 console.log('Request failed: ' + textStatus); 30 }); 31 }); 32 33 } 34 35})(jQuery); 36 37(function($) { 38 39 $(window).on('scroll', function () { 40 if ($(window).scrollTop() > $(window).height() * 2) { 41 $('.back-to-top').addClass('visible'); 42 } else { 43 $('.back-to-top').removeClass('visible'); 44 } 45 }); 46 47})(jQuery); 48 49 50(function($) { 51 52 function initCompare(){ 53 54 $(".c-add__compare-add").ajaxify({ 55 refresh: [ 56 ".c-line-compare" 57 ], 58 history: false, 59 onStart: function(data) { 60 $('.c-line-compare').addClass('c-line-compare__visible'); 61 data.sourceElement.closest('.c-add__compare-add').addClass('c-add__hide'); 62 data.sourceElement.next('.c-add__compare-delete').removeClass('c-add__hide'); 63 }, 64 onFinish: function() { 65 } 66 }); 67 68 } 69 70 initCompare(); 71 72 function initCompareDelete(){ 73 74 $(".c-add__compare-delete").ajaxify({ 75 refresh: [ 76 ".c-line-compare" 77 ], 78 history: false, 79 onStart: function(data) { 80 data.sourceElement.closest('.c-add__compare-delete').addClass('c-add__hide'); 81 }, 82 onFinish: function() { 83 84 } 85 }); 86 87 } 88 89 initCompareDelete(); 90 91 $(".c-add__compare-delete").click(function(){ 92 93 var d = $(this).attr("data-id"); 94 $(".c-add__compare-add-"+d).removeClass('c-add__hide'); 95 96 }); 97 98})(jQuery); 99 100 101$(function() { 102 103 if (getCookie('cookie') == "open") { 104 105 $(".c-contact-person").addClass("close"); 106 107 } 108 109 $(".c-contact-person__button-close").click(function(){ 110 111 $(".c-contact-person").addClass("close"); 112 113 setCookie('cookie','close',7); 114 115 116 }); 117 118 $(".c-contact-person__button-open").click(function(){ 119 120 $(".c-contact-person").removeClass("close"); 121 122 setCookie('cookie','open',7); 123 124 125 }); 126 127 128 129 var width = $(document).width(); 130 131 if (width < 576) { 132 133 $('.c-contact-person').hide(); 134$(document).scroll(function () { 135 var $hero = $('.c-product-hero__card__inner'); 136 if ($hero.length && $(this).scrollTop() >= $hero.offset().top) { 137 $('.c-contact-person').show(); 138 } else { 139 $('.c-contact-person').hide(); 140 } 141 142 }); 143 144 }else { 145 146 } 147 148 149}); 150 151function setCookie(name,value,days) { 152 var expires = ""; 153 if (days) { 154 var date = new Date(); 155 date.setTime(date.getTime() + (days*24*60*60*1000)); 156 expires = "; expires=" + date.toUTCString(); 157 } 158 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 159} 160 161function getCookie(name) { 162 var nameEQ = name + "="; 163 var ca = document.cookie.split(';'); 164 for(var i=0;i < ca.length;i++) { 165 var c = ca[i]; 166 while (c.charAt(0)==' ') c = c.substring(1,c.length); 167 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 168 } 169 return null; 170} 171 172(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this); 173 174 175$(function() { 176 177 $(".filter-mobile").click(function(){ 178 179 $("#filter").toggleClass("open"); 180 $(".overall-dark").toggleClass("open"); 181 //$(".c-filter__mobile").toggleClass("open"); 182 $(".content").toggleClass("open-filter"); 183 184 }); 185 186 $(".close-filter").click(function(){ 187 188 $("#filter").toggleClass("open"); 189 $(".overall-dark").toggleClass("open"); 190 $(".content").toggleClass("open-filter"); 191 192 }); 193 194 var filterBlocked = false;
195 196 // var debouncedSend = $.debounce(1000, function($form) { 197 // if (!filterBlocked) { 198 // $($form).trigger("ajaxify"); 199 // } 200 // }); 201 202 203 function initAjaxFilters() { 204 205 //-----click filter----------------------------------- 206 207 //alert("a"); 208 209 $("#filter-wrap form, #filter-wrap .ajax-reset-link, #select-filter .ajax-reset-link").ajaxify({ 210 refresh: [ 211 "#filter-wrap", 212 "#refresh-target", 213 "#select-filter", 214 "#paginator-top", 215 "#paginator-bottom", 216 "#next-page-row", 217 ".c-category__count", 218 ".c-add-close", 219 ".line-bottom" 220 ], 221 history: false, 222 onStart: function(data) { 223 data.sourceElement.closest('#filter-wrap .c-filter__group').addClass('group--sending'); 224 filterBlocked = true; 225 }, 226 onFinish: function() { 227 filterBlocked = false; 228 initAjaxFilters(); 229 initFiltersAnalytics(); 230 $(".close-filter-bottom").click(function(){ 231 232 $("#filter").toggleClass("open"); 233 $(".overall-dark").toggleClass("open"); 234 $(".content").toggleClass("open-filter"); 235 236 }); 237 } 238 }); 239 $("#filter-wrap input:checkbox").click(function() { 240 debouncedSend($(this).closest("form")); 241 }); 242 243 } 244 245 $(function() { 246 initAjaxFilters(); 247 }); 248}); 249 250(function($) { 251 252 $('.consent-checkbox__chkb-wrap').click(function () { 253 254 if ($(this).children().is(':checked')) { 255 $(this).children().prop("checked",false); 256 $(this).removeClass('is-filled'); 257 } else { 258 $(this).addClass('is-filled'); 259 $(this).children().prop("checked",true); 260 } 261 262 }); 263 264 $('.consent-checkbox__text').click(function () { 265 266 if ($(this).prev().children().is(':checked')) { 267 $(this).prev().children().prop("checked",false); 268 $(this).prev().removeClass('is-filled'); 269 } else { 270 $(this).prev().addClass('is-filled'); 271 $(this).prev().children().prop("checked",true); 272 } 273 274 }); 275 276 277 $('.formsCheckboxTd').click(function () { 278 279 if ($(this).children().is(':checked')) { 280 $(this).children().prop("checked",false); 281 $(this).removeClass('is-filled'); 282 } else { 283 $(this).addClass('is-filled'); 284 $(this).children().prop("checked",true); 285 } 286 287 }); 288 289 $('.formsCheckboxTdLabel').click(function () { 290 291 if ($(this).prev().children().is(':checked')) { 292 $(this).prev().children().prop("checked",false); 293 $(this).prev().removeClass('is-filled'); 294 } else { 295 $(this).prev().addClass('is-filled'); 296 $(this).prev().children().prop("checked",true); 297 } 298 299 }); 300 301 302 //var $formInputs = $('.jq-input, .jq-textarea, .jq-select, .jq-checkbox, .jq-radio, .forms-input, .forms-textarea, .forms-prvek > select, .forms-prvek input[type="checkbox"], .forms-prvek input[type="radio"]'); 303 304 var $formInputs = $('.jq-input, .jq-textarea, .jq-select, .jq-checkbox, .jq-radio, .forms-input, .forms-textarea, .forms-prvek > select'); 305 306 if ($formInputs.length) { 307 308 $formInputs 309 .each(setFilledState) 310 .on('change', setFilledState); 311 312 } 313 314 function setFilledState() { 315 var $input = $(this); 316 317 var defaultValue = ''; 318 319 if ($input.prop('tagName') === 'INPUT' && $input.prop('type') === 'checkbox') { 320 321 if ($input.is(':checked')) { 322 $input.parent().addClass('is-filled'); 323 } else { 324 $input.parent().removeClass('is-filled'); 325 } 326 327 } else if ($input.prop('tagName') === 'INPUT' && $input.prop('type') === 'radio') { 328 329 $('[name="' + $input.attr('name') + '"]').parent().removeClass('is-filled'); 330 331 if ($input.is(':checked')) { 332 $input.parent().addClass('is-filled'); 333 } 334 335 } else { 336 337 if ($input.prop('tagName') === 'SELECT' && typeof $input.attr('placeholder') !== 'undefined') { 338 defaultValue = $input.attr('placeholder'); 339 } 340 341 if ($input.val() !== defaultValue) { 342 $input.addClass('is-filled'); 343 } else { 344 $input.removeClass('is-filled'); 345 } 346 347 } 348 }; 349 350 351 352})(jQuery); 353 354(function($) { 355 356 357 function initAnalytics() { 358 $('.c-header-search__close').click(function () { 359 var conversion = {event: 'search', action: 'closed'}; 360 sendConversion(conversion); 361 }); 362 $('.c-header-search__control').click(function () { 363 var conversion = {event: 'search', action: 'opened'}; 364 sendConversion(conversion); 365 }); 366 367 $('form.c-header-search__form').submit(function () { 368 var searchedValue = $(this).find('input[name="q"]').val(); 369 var conversion = {event: 'search', action: 'search performed', label: searchedValue}; 370 sendConversion(conversion); 371 }); 372 373 374 375 $('.c-category__sort.c-markets__tabs a').click(function () { 376 var href = $(this).attr('href'); 377 if (href.indexOf("seradit=cena&seradit_zpusob=asc") >= 0) { 378 var conversion = {event: 'orderingProduct', orderby: 'cena vzestupne'}; 379 sendConversion(conversion); 380 } else if (href.indexOf("seradit=cena&seradit_zpusob=desc") >= 0) { 381 var conversion = {event: 'orderingProduct', orderby: 'cena sestupne'}; 382 sendConversion(conversion); 383 } 384 }); 385 386 $('#search-dealer').click(function () { 387 388 var conversion = {event: 'searchDealer'}; 389 sendConversion(conversion); 390 391 }); 392 393 $('.basket-new input[name="platba"]').change(function () { 394 if ($(this).is(':checked')) { 395 var conversion = {event: 'changePaymentMethod', newPaymentMethod: $.trim($(this).parent().find('.b-product-row__text').text())}; 396 sendConversion(conversion); 397 } 398 }); 399 $('.basket-new input[name="doprava"]').change(function () { 400 if ($(this).is(':checked')) { 401 var conversion = {event: 'changePaymentMethod', newPaymentMethod: $.trim($(this).parent().find('.b-product-row__text').text())}; 402 sendConversion(conversion); 403 } 404 }); 405 406 $('.f-discount-code input[type="text"]').focus(function () { 407 var conversion = {event: 'clickCoupon'}; 408 sendConversion(conversion); 409 }); 410 411 $('.filter-info__title').click(function(){ 412 var conversion = {event:'clickInfo', info:$.trim($(this).find('span span').text())}; 413 sendConversion(conversion); 414 }); 415 416 $('.c-product__category-col a.c-add__compare-add').click(function(){ 417 var href= $(this).attr('href'); 418 var href_parts = href.split('=') 419 var conversion = {event:'addToComparison', product:$.trim($(this).parent().find('.c-product__text h3').text()), product_id:href_parts[href_parts.length-1]}; 420 sendConversion(conversion); 421 }); 422 423 $('.c-product-hero__card__inner a.c-add__compare-add').click(function(){ 424 var href= $(this).attr('href'); 425 var href_parts = href.split('=') 426 var conversion = {event:'addToComparison', product:$.trim($('#info h1.h3').text()), product_id:href_parts[href_parts.length-1]}; 427 sendConversion(conversion); 428 }); 429 430 initFiltersAnalytics(); 431 432 setTimeout( 433 function() 434 { 435 436 $('.c-product-hero__card .c-slider__pagination button').click(function(){ 437 var slideId = $(this).attr('aria-controls'); 438 var slideHref = $('#'+slideId).attr('href'); 439 var conversion = {event: 'clickGallery', image:slideHref}; 440 sendConversion(conversion); 441 }); 442 }, 3000); 443 444 445 446 447 } 448 449 initAnalytics(); 450 451 452 453 454})(jQuery); 455 456function sendConversion(conversion) { 457 if (true) { 458 window.dataLayer = window.dataLayer || []; 459 window.dataLayer.push(conversion); 460 } 461 462 console.log(conversion); 463} 464 465function initFiltersAnalytics(){ 466 $('#se-sorting form input').change(function () { 467 468 var filterName = $.trim($(this).parents('.c-filter__group').find('.filter-info__title span').first().text()).replace(/\t/g, ""); 469 ; 470 var conversion = {event: 'filterProduct', filterName: filterName, filterValue: $(this).val()}; 471 sendConversion(conversion); 472 }); 473} 474 475 476$(function() { 477 478 var $el = { 479 triggers: $('.jq-header-submenu, .jq-header-dropdown'), 480 state: $('.jq-submenu-status'), 481 links: $('.jq-header-submenu-link'), 482 thumbs: $('.jq-header-submenu-thumb'), 483 }; 484 485 var temp = {}; 486 487 $el.triggers 488 .on('touchstart', function(event) { 489 490 temp[event.currentTarget] = { 491 startX: event.originalEvent.changedTouches[0].screenX, 492 startY: event.originalEvent.changedTouches[0].screenY, 493 }; 494 495 }) 496 .on('touchend', function(event) { 497 498 var diffX = event.originalEvent.changedTouches[0].screenX - temp[event.currentTarget]['startX']; 499 500 var diffY = event.originalEvent.changedTouches[0].screenY - temp[event.currentTarget]['startY']; 501 502 var ratioX = Math.abs(diffX / diffY); 503 504 var ratioY = Math.abs(diffY / diffX); 505 506 var absDiff = Math.abs(ratioX > ratioY ? diffX : diffY); 507 508 // Ignore small movements. 509 if (absDiff < 30) { 510 return; 511 } 512 513 if (ratioX > ratioY) { 514 $el.state.prop('checked', (diffX >= 0 ? true : false)).trigger('change'); 515 } 516 517 }); 518 519 $el.links.on('mouseenter mouseleave', function(event) { 520 var $submenuThumbs = $(this).parents('.jq-header-dropdown').find('.jq-header-submenu-thumb'); 521 522 var $submenuDefaultThumb = $submenuThumbs.find('.jq-header-submenu-thumb-image'); 523 524 if (event.type == 'mouseenter') { 525 $el.links.not(this).addClass('is-disabled'); 526 527 var $linkThumb = $($(this).data('thumb')); 528 529 if ($linkThumb.length) { 530 if (typeof delayShowDefaultThumb !== 'undefined') clearTimeout(delayShowDefaultThumb); 531 532 if ($linkThumb.hasClass('d-none')) { 533 loadLazyImages($linkThumb[0]); 534 535 $submenuThumbs.append($linkThumb); 536 537 $linkThumb 538 .hide() 539 .removeClass('d-none'); 540 } 541 542 $linkThumb.fadeIn(); 543 544 $submenuDefaultThumb.fadeOut(); 545 } 546 } else { 547 $el.links.not(this).removeClass('is-disabled'); 548 549 var $linkThumb = $($(this).data('thumb')); 550 551 if ($linkThumb.length) { 552 $linkThumb.fadeOut(); 553 554 delayShowDefaultThumb = setTimeout(function(){ 555 $submenuDefaultThumb.fadeIn(); 556 }, 200); 557 } 558 } 559 }); 560 561 $el.triggers.on('mouseenter.lazyImages', function() { 562 563 var $activeTrigger = $(this); 564 565 var $lazyImages = $('.jq-header-submenu-thumb img[data-src]', $activeTrigger); 566 567 if ($lazyImages.length) { 568 569 $lazyImages.each(loadLazyImages); 570 571 } 572 573 $activeTrigger.off('mouseenter.lazyImages'); 574 575 }); 576 577 function loadLazyImages(image) { 578 if (!image || typeof image == 'undefined') { 579 image = this; 580 } 581 582 image.src = image.dataset.src; 583 584 image.removeAttribute('data-src'); 585 586 if (image.dataset.srcset) { 587 588 image.srcset = image.dataset.srcset; 589 590 image.removeAttribute('data-srcset'); 591 592 } 593 } 594 595}); 596 597$(function() { 598 599 var $el = { 600 status: { 601 menu: $('.jq-menu-status'), 602 submenu: $('.jq-submenu-status'), 603 search: $('.jq-search-status'), 604 }, 605 searchinput: $('.jq-search-input') 606 }; 607 608 $el.status.panels = $el.status.menu.add($el.status.search); 609 610 $el.status.all = $el.status.menu.add($el.status.submenu).add($el.status.search); 611 612 function resetStatus() { 613 614 $el.status.all.prop('checked', false).trigger('change'); 615 616 } 617 618 var resetStatusBreakpoint = window.matchMedia('(min-width: 1200px)'); // sass variable $grid-breakpoints(xl) 619 620 resetStatus(resetStatusBreakpoint); 621 622 resetStatusBreakpoint.addListener(resetStatus); 623 624 $el.status.panels.change(function() { 625 var $otherPanels = $el.status.panels.not(this); 626 627 if (this.checked) { 628 if (this == $el.status.search[0]) { 629 $el.searchinput.focus(); 630 } 631 632 if ($otherPanels.is(':checked')) { 633 $otherPanels.prop('disabled', true); 634 } else { 635 //$('html, body').addClass('no-scroll'); 636 } 637 638 $(document).on('keyup.closeMenuOnEscape', { status: this }, closeMenuOnEscape); 639 } else { 640 if (this == $el.status.search[0]) { 641 $el.searchinput.val('').blur(); 642 } else if (this == $el.status.menu[0]) { 643 $el.status.submenu.prop('checked', false); 644 } 645 646 if ($otherPanels.is(':disabled')) { 647 $otherPanels.prop('disabled', false); 648 } else { 649 $('html, body').removeClass('no-scroll'); 650 } 651 652 $(document).off('keyup.closeMenuOnEscape', closeMenuOnEscape); 653 } 654 }); 655 656 function closeMenuOnEscape(event) { 657 if (event.keyCode === 27) { 658 var args = event.data; 659 660 var status = args.status; 661 662 $(status).prop('checked', false).trigger('change'); 663 } 664 } 665 666}); 667 668(function($){ 669/* 670 $(document.body).click(function() { 671 $("body").removeClass("overlay"); 672 $(".c-lang").removeClass("open"); 673 }); 674 675*/ 676 $("#c-lang-in").click(function(e){ 677 if($(".c-lang").hasClass('open')){ 678 $("body").removeClass("overlay"); 679 $(".c-lang").removeClass("open"); 680 }else { 681 $("body").addClass("overlay"); 682 $(".c-lang").addClass("open"); 683 } 684 e.stopPropagation(); 685 }); 686 687 $("#c-lang__close").click(function(e){ 688 $("body").removeClass("overlay"); 689 $(".c-lang").removeClass("open"); 690 e.stopPropagation(); 691 }); 692 693 $(document.body).keyup(function(e) { 694 if (e.key === 'Escape') { 695 $("body").removeClass("overlay"); 696 $(".c-lang").removeClass("open"); 697 } 698 }); 699 700 $(".c-lang__choice-lang-item-activ").click(function(e){ 701 702 if($(".c-lang__choice-lang-item-noactiv").hasClass('open')){ 703 $('.c-lang__choice-lang-item-noactiv').removeClass("open"); 704 }else { 705 $('.c-lang__choice-lang-item-noactiv').addClass("open"); 706 } 707 e.stopPropagation(); 708 }); 709 710 711 712})(jQuery); 713 714(function($) { 715 716 var temp = {}; 717 718 if ($('.jq-listing-stage').length) { 719 720 initListingStage(); 721 722 $(window).on('resize', initListingStage); 723 724 } 725 726 function initListingStage() { 727 728 $('.jq-listing-stage').each(function(stageIndex, stageElement) { 729 730 initListingScroll($(stageElement)); 731 732 }); 733 734 } 735 736 function initListingScroll($stage) { 737 738 var stageElement = $stage[0]; 739 740 var $el = {}; 741 742 $el.stage = $stage; 743 744 $el.scrollBar = $el.stage.next('.jq-listing-scrollbar'); 745 746 $el.navigation = $el.stage.prev('.jq-listing-navigation'); 747 748 $el.buttons = $('.jq-listing-button', $el.navigation); 749 750 if ($el.scrollBar.length === 0) { 751 752 $el.scrollBar = $el.stage 753 .after('<div class="jq-listing-scrollbar"></div>') 754 .next('.jq-listing-scrollbar'); 755 756 } 757 758 $el.stage 759 .removeClass('is-overflowing') 760 .css('--listing-container-margin', 0) 761 .off('scroll.listing'); 762 763 $el.scrollBar 764 .hide() 765 .css('--listing-stage-width', 0) 766 .off('scroll.listing'); 767 768 $el.navigation 769 .hide(); 770 771 if (stageElement.scrollWidth > stageElement.clientWidth) { 772 773 var stageElementMargin = (window.innerWidth - stageElement.clientWidth) / 2; 774 775 var scrollRatio = window.innerWidth / stageElement.clientWidth; 776 777 $el.stage 778 .addClass('is-overflowing') 779 .css('--listing-container-margin', stageElementMargin + 'px') 780 .on('scroll.listing', function() { 781 onListingScroll($el.stage, $el.scrollBar, $el.buttons, scrollRatio); 782 }); 783 784 $el.scrollBar 785 .show() 786 .css('--listing-stage-width', stageElement.scrollWidth / scrollRatio + 'px') 787 .on('scroll.listing', function() { 788 onListingScroll($el.scrollBar, $el.stage, $el.buttons, scrollRatio); 789 }); 790 791 $el.navigation 792 .show(); 793 794 initListingButtons($el.buttons, $el.stage); 795 796 } 797 798 } 799 800 function onListingScroll($currentElement, $targetElement, $buttons, scrollRatio) { 801 802 clearTimeout(temp.onListingScrollStop); 803 804 var isScrollBar = $currentElement.hasClass('jq-listing-scrollbar'); 805 806 $targetElement 807 .off('scroll.listing') 808 .scrollLeft(function() { 809 if (!isScrollBar) { 810 return $currentElement.scrollLeft() / scrollRatio; 811 } else { 812 return $currentElement.scrollLeft() * scrollRatio; 813 } 814 }); 815 816 if (isScrollBar) { 817 818 stateListingButtons($buttons, $targetElement); 819 820 } else { 821 822 stateListingButtons($buttons, $currentElement); 823 824 } 825 826 temp.onListingScrollStop = setTimeout(function() { 827 828 $targetElement.on('scroll.listing', function() { 829 830 onListingScroll($targetElement, $currentElement, $buttons, scrollRatio); 831 }); 832 833 }, 500); 834 835 } 836 837 function initListingButtons($buttons, $stage) { 838 839 stateListingButtons($buttons, $stage); 840 841 $buttons.on('click', function() { 842 843 var $button = $(this); 844 845 var $nodes = $stage.find('> div > div'); 846 847 var direction = $button.data('navigation-direction') || 'next'; 848
849 var stageCurrentScroll = $stage.scrollLeft(); 850 851 var nodeWidth = Math.ceil($nodes.eq(0).width()); 852 853 $stage 854 .scrollLeft(function() { 855 if (direction == 'next') { 856 return stageCurrentScroll + nodeWidth; 857 } else { 858 return stageCurrentScroll - nodeWidth; 859 } 860 }); 861 862 }); 863 864 } 865 866 function stateListingButtons($buttons, $stage) { 867 868 var stageElement = $stage[0]; 869 870 var stageCurrentScroll = $stage.scrollLeft(); 871 872 if (stageCurrentScroll <= 10) { // intentionally more than 0 873 874 $buttons 875 .removeAttr('disabled') 876 .filter('[data-navigation-direction="prev"]') 877 .attr('disabled', 'disabled'); 878 879 } else if (stageCurrentScroll >= stageElement.scrollWidth - stageElement.clientWidth - 10) { 880 881 $buttons 882 .removeAttr('disabled') 883 .filter('[data-navigation-direction="next"]') 884 .attr('disabled', 'disabled'); 885 886 } else { 887 888 $buttons 889 .removeAttr('disabled') 890 891 } 892 893 } 894 895})(jQuery); 896 897(function($) { 898 899 function marketsInit() { 900 901 var $marketsFilter = $('.jq-markets-filter'); 902 903 if ($marketsFilter.length) { 904 905 $marketsFilter.each(function() { 906 907 var $marketFilter = $(this); 908 909 if ($marketFilter.hasClass('is-loaded')) return; 910 911 $marketFilter.addClass('is-loaded'); 912 913 $marketFilter 914 .find(':input') 915 .on('change', function() { 916 $marketFilter.submit(); 917 }); 918 919 $marketFilter 920 .on('submit', function(event) { 921 event.preventDefault(); 922 923 if ($().ajaxify) { 924 marketsReload($marketFilter, event); 925 } else { 926 $.getScript(siteConfig.shared + 'jquery.ajaxify.js', function() { 927 marketsReload($marketFilter, event); 928 }); 929 } 930 }); 931 932 }); 933 934 } 935 936 var $marketsMap = $('.jq-markets-map'); 937 938 if ($marketsMap.length) { 939 940 var marketsMapObserver = new IntersectionObserver(function(entries, observer) { 941 $.each(entries, function(entryKey, entry) { 942 if (entry.isIntersecting) { 943 var $marketMap = $(entry.target); 944 945 if (typeof google === 'object' && google && 'maps' in google){ 946 marketsMap($marketMap); 947 } else { 948 $marketMap.addClass('is-in-view'); 949 950 $.getScript('//maps.googleapis.com/maps/api/js?key=' + siteConfig.gmapKey + '&callback=marketsMap'); 951 } 952 953 observer.unobserve(entry.target); 954 } 955 }); 956 }); 957 958 $('.jq-markets-map').each(function() { 959 marketsMapObserver.observe(this); 960 }); 961 962 } 963 964 var $marketsGallery = $('.jq-market-gallery'); 965 966 if ($marketsGallery.length) { 967 968 marketsGalleryState($marketsGallery); 969 970 $(window).on('resize', function() { 971 marketsGalleryState($marketsGallery); 972 }); 973 974 } 975 976 }; 977 978 function marketsGalleryState($marketsGallery) { 979 980 $marketsGallery.each(function() { 981 982 var $gallery = $(this); 983 984 var $stage = $gallery.children('.jq-market-gallery-stage'); 985 986 var $navLeft = $stage.next('.jq-market-gallery-scroll-left'); 987 988 var $navRight = $navLeft.next('.jq-market-gallery-scroll-right'); 989 990 var $navs = $navLeft.add($navRight); 991 992 var stageElement = $stage[0]; 993 994 var isOverflowing = false; 995 996 $gallery.removeClass('is-overflowing'); 997 998 $navs 999 .removeAttr('style') 1000 .off('click.marketGalleryNavigation'); 1001 1002 $stage.off('scroll.marketGallery'); 1003 1004 if (stageElement.scrollWidth > stageElement.clientWidth || 1005 stageElement.scrollHeight > stageElement.clientHeight) { 1006 1007 $gallery.addClass('is-overflowing'); 1008 1009 isOverflowing = true; 1010 1011 } 1012 1013 if (isOverflowing) { 1014 1015 marketsGalleryNavigation($stage); 1016 1017 $navs.on('click.marketGalleryNavigation', marketsGalleryOnClick); 1018 1019 $stage.on('scroll.marketGallery', marketsGalleryOnScroll); 1020 1021 } 1022 1023 }); 1024 1025 }; 1026 1027 function marketsGalleryOnClick(clickEvent) { 1028 1029 var $navButton = $(clickEvent.currentTarget); 1030 1031 var $stage = $navButton.prevAll('.jq-market-gallery-stage'); 1032 1033 var stageElement = $stage[0]; 1034 1035 var stageScroll = { 1036 top: $stage.scrollTop(), 1037 left: $stage.scrollLeft(), 1038 step: { 1039 x: 60, 1040 y: 40 1041 } 1042 }; 1043 1044 if ($navButton.hasClass('jq-market-gallery-scroll-left')) { 1045 1046 stageScroll.top -= stageScroll.step.y; 1047 stageScroll.left -= stageScroll.step.x; 1048 1049 } else { 1050
1051 stageScroll.top += stageScroll.step.y; 1052 stageScroll.left += stageScroll.step.x; 1053 1054 } 1055 1056 stageScroll.top = Math.min(Math.max(parseInt(stageScroll.top), 0), stageElement.scrollHeight); 1057 1058 stageScroll.left = Math.min(Math.max(parseInt(stageScroll.left), 0), stageElement.scrollWidth); 1059 1060 var stageWrap = $stage[0]; 1061 stageWrap.scrollTo({ 1062 top: stageScroll.top, 1063 left: stageScroll.left, 1064 behavior: 'smooth' 1065 }); 1066 1067 //$stage.scrollTop(stageScroll.top); 1068 //$stage.scrollLeft(stageScroll.left); 1069 1070 1071 }; 1072 1073 function marketsGalleryOnScroll(scrollEvent) { 1074 1075 marketsGalleryNavigation($(scrollEvent.currentTarget)); 1076 1077 }; 1078 1079 function marketsGalleryNavigation($stage) { 1080 1081 var $navLeft = $stage.next('.jq-market-gallery-scroll-left'); 1082 1083 var $navRight = $navLeft.next('.jq-market-gallery-scroll-right'); 1084 1085 var stageElement = $stage[0]; 1086 1087 var scrollTreshold = 15; 1088 1089 if ((stageElement.scrollWidth > stageElement.clientWidth && 1090 $stage.scrollLeft() > scrollTreshold) || 1091 (stageElement.scrollHeight > stageElement.clientHeight && 1092 $stage.scrollTop() > scrollTreshold)) { 1093 1094 $navLeft.fadeIn(); 1095 1096 } else { 1097 1098 $navLeft.fadeOut(); 1099 1100 } 1101 1102 if ((stageElement.scrollWidth > stageElement.clientWidth && 1103 $stage.width() + $stage.scrollLeft() > stageElement.scrollWidth - scrollTreshold) || 1104 (stageElement.scrollHeight > stageElement.clientHeight && 1105 $stage.height() + $stage.scrollTop() > stageElement.scrollHeight - scrollTreshold)) { 1106 1107 $navRight.fadeOut(); 1108 1109 } else { 1110 1111 $navRight.fadeIn(); 1112 1113 } 1114 1115 }; 1116 1117 function marketsReload($marketFilter, event) { 1118 var ajaxRequest = $marketFilter.serialize(); 1119 1120 if ('originalEvent' in event && 'submitter' in event.originalEvent) { 1121 ajaxRequest += '&' + event.originalEvent.submitter.getAttribute('name') + '=true'; 1122 } 1123 1124 $.ajaxLink( 1125 window.location.href, 1126 { 1127 history: false, 1128 refresh: [ '#' + $marketFilter.parents('.jq-markets').attr('id') ], 1129 onFinish: marketsInit 1130 }, 1131 document.body, 1132 'GET', 1133 ajaxRequest 1134 ); 1135 }; 1136 1137 function marketsMap($marketMap) { 1138 1139 if (typeof $marketMap == 'undefined' || $marketMap == '') { 1140 1141 $marketMap = $('.jq-markets-map.is-in-view'); 1142 1143 $marketMap.removeClass('is-in-view'); 1144 1145 } 1146 1147 if ($marketMap.hasClass('is-loaded')) return; 1148 1149 $marketMap.addClass('is-loaded'); 1150 1151 var $markets = $marketMap.parents('.jq-markets'); 1152 1153 var marketMapOptions = $marketMap.data('map-options') || ''; 1154 1155 if (marketMapOptions == '') return; 1156 1157 marketMapOptions.zoomControlOptions = { 1158 position: google.maps.ControlPosition.RIGHT_CENTER, 1159 }; 1160 1161 var marketMap = new google.maps.Map($marketMap[0], marketMapOptions); 1162 1163 var marketMarkers = []; 1164 1165 $markets.find('.jq-markets-marker').each(function() { 1166 1167 var $marketsMarker = $(this); 1168 1169 if (typeof $marketsMarker.data('marker-position') == 'undefined') return; 1170 1171 var marketMarkerOptions = { 1172 position: $marketsMarker.data('marker-position'), 1173 map: marketMap, 1174 }; 1175 1176 var marketMarkerContent = $marketsMarker.html(); 1177 1178 var marketMarkerIcon = ($marketsMarker.is('.js-market-not-in-region') && marketMapOptions.region) ? 2 : 0; 1179 var extraMarketIcon = $marketsMarker.data('extra-icon'); 1180 if($marketsMarker.is('.js-market-not-in-filter')){ 1181 marketMarkerIcon = 2; 1182 } 1183 1184 if(marketMarkerIcon!=2 && extraMarketIcon !=''){ 1185 marketMarkerOptions.icon =extraMarketIcon; 1186 marketMarkerOptions.extra_icon =extraMarketIcon; 1187 }else{ 1188 if ('icons' in marketMapOptions && marketMapOptions.icons[marketMarkerIcon]) { 1189 marketMarkerOptions.icon = marketMapOptions.icons[marketMarkerIcon]; 1190 } 1191 } 1192 1193 1194 var marketMarker = { 1195 pin: new google.maps.Marker(marketMarkerOptions), 1196 icon: marketMarkerIcon, 1197 }; 1198 1199 if (marketMarkerContent != '') { 1200 marketMarker.window = new google.maps.InfoWindow({ 1201 content: '<div class="' + ($marketsMarker.data('marker-class') || '') + '">' + marketMarkerContent + '</div>', 1202 }); 1203 } 1204 1205 marketMarkers.push(marketMarker); 1206 1207 /*$marketsMarker.css('cursor', 'pointer'); 1208 1209 $marketsMarker.on('click', function() { 1210 marketMarkerOpen(marketMarker); 1211 });*/ 1212 1213 }); 1214 1215 marketMarkers.forEach(function(marketMarker) { 1216 1217 if ('window' in marketMarker) { 1218 1219 if ('region' in marketMapOptions && marketMapOptions.region) { 1220 1221 marketMarker.pin.addListener('mouseover', function() { 1222 // marketMarker.clickOpen = true; 1223 1224 // marketMarkerOpen(marketMarker, true); 1225 // marketMarker.pin.trigger('click'); 1226 //marketMarkerOpen(marketMarker, true); 1227 }); 1228 1229 marketMarker.pin.addListener('mouseout', function() { 1230 1231 if (!('clickOpen' in marketMarker) || !marketMarker.clickOpen) { 1232 marketMarker.window.close(); 1233 marketMarkerChangeIcon(marketMarker, marketMarker.icon); 1234 } 1235 1236 }); 1237 1238 } 1239 1240 marketMarker.pin.addListener('click', function() { 1241 marketMarker.clickOpen = true; 1242 1243 marketMarkerOpen(marketMarker, true); 1244 }); 1245 1246 marketMarker.window.addListener('closeclick', function() { 1247 marketMarker.clickOpen = false;
1248 marketMarkerChangeIcon(marketMarker, marketMarker.icon); 1249 }); 1250 1251 } 1252 1253 }); 1254 1255 function marketMarkerOpen(marketMarker, enableScrollMarket) { 1256 enableScrollMarket = enableScrollMarket || false; 1257 1258 if (typeof marketMarkerActive !== 'undefined') { 1259 marketMarkerActive.window.close(); 1260 1261 marketMarkerChangeIcon(marketMarkerActive, marketMarkerActive.icon); 1262 } 1263 1264 if (marketMarker.window.content.indexOf('data-src') !== -1) { 1265 1266 marketMarker.window.setContent( 1267 marketMarker.window.content.replace('data-src', 'src') 1268 ); 1269 1270 } 1271 1272 marketMarker.window.open({ 1273 anchor: marketMarker.pin, 1274 map: marketMap, 1275 shouldFocus: false, 1276 }); 1277 1278 marketMarkerChangeIcon(marketMarker, 1); 1279 1280 marketMarkerActive = marketMarker; 1281 1282 if (enableScrollMarket) { 1283 // scroll to market in list 1284 } 1285 1286 google.maps.event.addListener(marketMarker.window, 'domready', function() { 1287 1288 var $gallery = $('.gm-style-iw-d').find('.jq-market-gallery'); 1289 1290 if ($gallery.length) { 1291 1292 marketsGalleryState($gallery); 1293 1294 } 1295 1296 }); 1297 } 1298 1299 function marketMarkerChangeIcon(marketMarker, icon) { 1300 if ('icons' in marketMapOptions && marketMapOptions.icons[icon]) { 1301 if(icon==0 && typeof marketMarker.pin.extra_icon !== 'undefined'){ 1302 marketMarker.pin.setIcon(marketMarker.pin.extra_icon); 1303 }else{ 1304 marketMarker.pin.setIcon(marketMapOptions.icons[icon]); 1305 } 1306 1307 } 1308 }; 1309 1310 }; 1311 1312 window.marketsMap = marketsMap; 1313 1314 marketsInit(); 1315 1316})(jQuery); 1317 1318$(function() { 1319 1320 $("#next-page-button").ajaxNextEshopPage({ 1321 "containerId": "refresh-target", 1322 "buttonId": "next-page-button", 1323 "alsoRefresh": ["#paginator-bottom","#paginator-top","#next-page-button"], 1324 "loadingClass": "now-loading", 1325 "success": function() { 1326 var scrollPosition = $(window).scrollTop(); 1327 //window.location = "#refresh-target"; 1328 $(window).scrollTop(scrollPosition); 1329 var countR = $("#count-refresh").html(); 1330 var countL = $("#count-last").html(); 1331 var countC = parseInt(countR) + parseInt(countL); 1332 $("#count-refresh").text(countC); 1333 } 1334 }); 1335 1336}); 1337(function($) { 1338 1339 var $el = { 1340 gallery: $('.jq-product-gallery') 1341 }; 1342 1343 if ($el.gallery.length && productGallery.length) { 1344 1345 window._pswpStack = window._pswpStack || []; 1346 1347 window._pswpStack.push(function() { 1348 1349 $el.gallery.on('click', openGallery); 1350 1351 }); 1352 1353 } 1354 1355 function openGallery(clickEvent) { 1356 1357 clickEvent.preventDefault(); 1358 1359 $el.item = $(this); 1360 1361 $el.pswp = $('.pswp'); 1362 1363 var galleryInstance = new PhotoSwipe($el.pswp[0], PhotoSwipeUI_Default, productGallery, { 1364 index: $el.item.data('product-gallery-index') || 0, 1365 loop: true, 1366 bgOpacity: 1, 1367 wheelToZoom: true, 1368 closeEl: true, 1369 captionEl: false, 1370 fullscreenEl: true, 1371 zoomEl: true, 1372 shareEl: false, 1373 counterEl: false, 1374 arrowEl: true, 1375 preloaderEl: true, 1376 wheelToZoom: true, 1377 barsSize: { 1378 top: 50, 1379 bottom: -50 1380 }, 1381 padding: { top: 0, bottom: 0, left: 0, right: 0 }, 1382 1383 initialZoomLevel: 'fill', 1384 secondaryZoomLevel:3, 1385 maxZoomLevel: 4, 1386 // option to disable zoom below 1387 // maxSpreadZoom: 2, 1388 // getDoubleTapZoom: function(isMouseClick, item) { 1389 // return item.initialZoomLevel; 1390 // }, 1391 pinchToClose: false 1392 }); 1393 1394 // if (galleryInstance.options.maxSpreadZoom == 1) { 1395 // 1396 // $el.pswp.addClass('is-disable-zoom'); 1397 // 1398 // } 1399 1400 $('.pswp__top-bar').css({'border-bottom': 'none', 'background': 'transparent'}); 1401 1402 $el.paginations = $('.pswp__paginations', $el.pswp); 1403 1404 if ('thumb' in productGallery[0]) { 1405 1406 delete $el.thumbnails; 1407 1408 if ($el.paginations.length == 0) { 1409 1410 $el.paginations = $('<div class="pswp__paginations"></div>'); 1411 1412 $el.pswp 1413 .prepend($el.paginations); 1414 1415 } else { 1416 1417 $el.paginations.empty(); 1418 1419 delete $el.thumbnails; 1420 1421 } 1422 1423 productGallery.forEach(function(productImage) { 1424 1425 var $thumbnail = $('<button type="button" class="pswp__thumbnail"' + ('thumb' in productImage ? ' style="background-image: url(\'' + productImage.thumb + '\')"' : '') + '></button>'); 1426 1427 if (!('thumbnails' in $el)) { 1428 1429 $el.thumbnails = $thumbnail; 1430 1431 } else { 1432 1433 $el.thumbnails = $el.thumbnails.add($thumbnail); 1434 1435 } 1436 1437 }); 1438 1439 $el.paginations.append($el.thumbnails); 1440 1441 $el.thumbnails.on('click.pswpThumbnails', function() { 1442 1443 galleryInstance.goTo($(this).index()); 1444 1445 }); 1446 1447 galleryInstance.listen('afterChange', function() { 1448 1449 $el.thumbnails.removeClass('is-active'); 1450 1451 var $thumbnail = $el.thumbnails.eq(galleryInstance.getCurrentIndex()); 1452 1453 $thumbnail.addClass('is-active'); 1454 1455 var thumbnailOffset = $thumbnail.offset().left; 1456 1457 var thumbnailWidth = $thumbnail.width(); 1458 1459 var paginationsCurrentScroll = $el.paginations.scrollLeft(); 1460 1461 var paginationsWidth = $el.paginations.width(); 1462 1463 if (thumbnailOffset < paginationsCurrentScroll || 1464 thumbnailOffset + thumbnailWidth > paginationsWidth) { 1465 1466 $el.paginations.scrollLeft( 1467 paginationsCurrentScroll + 1468 thumbnailOffset - 1469 thumbnailWidth / 2 1470 ); 1471 1472 } 1473 1474 1475 }); 1476 1477 } else { 1478 1479 if ($el.thumbnails != 0) $el.thumbnails.off('click.pswpThumbnails'); 1480 1481 if ($el.paginations != 0) $el.paginations.empty(); 1482 1483 } 1484 1485 // create variable that will store real size of viewport 1486 var realViewportWidth, 1487 useLargeImages = false, 1488 firstResize = true, 1489 imageSrcWillChange; 1490 1491 // beforeResize event fires each time size of gallery viewport updates 1492 galleryInstance.listen('beforeResize', function() { 1493 1494 // gallery.viewportSize.x - width of PhotoSwipe viewport 1495 // gallery.viewportSize.y - height of PhotoSwipe viewport 1496 // window.devicePixelRatio - ratio between physical pixels and device independent pixels (Number) 1497 // 1 (regular display), 2 (@2x, retina) ... 1498 1499 1500 // calculate real pixels when size changes 1501 realViewportWidth = galleryInstance.viewportSize.x * window.devicePixelRatio; 1502 1503 // Code below is needed if you want image to switch dynamically on window.resize 1504 1505 // Find out if current images need to be changed 1506 if (useLargeImages && realViewportWidth < 1000) { 1507 useLargeImages = false;
1508 imageSrcWillChange = true; 1509 } else if (!useLargeImages && realViewportWidth >= 1000) { 1510 useLargeImages = true; 1511 imageSrcWillChange = true; 1512 } 1513 1514 // Invalidate items only when source is changed and when it's not the first update 1515 if (imageSrcWillChange && !firstResize) { 1516 // invalidateCurrItems sets a flag on slides that are in DOM, 1517 // which will force update of content (image) on window.resize. 1518 galleryInstance.invalidateCurrItems(); 1519 } 1520 1521 if (firstResize) { 1522 firstResize = false; 1523 } 1524 1525 imageSrcWillChange = false; 1526 1527 }); 1528 1529 1530 // gettingData event fires each time PhotoSwipe retrieves image source & size 1531 galleryInstance.listen('gettingData', function(index, item) { 1532 1533 // Set image source & size based on real viewport width 1534 if (useLargeImages) { 1535 item.src = item.originalImage.src; 1536 item.w = item.originalImage.w; 1537 item.h = item.originalImage.h; 1538 } else { 1539 item.src = item.mediumImage.src; 1540 item.w = item.mediumImage.w; 1541 item.h = item.mediumImage.h; 1542 } 1543 1544 }); 1545 1546 galleryInstance.listen('close', function() { 1547 1548 $el.pswp.removeClass('is-disable-zoom'); 1549 1550 if ($el.paginations != 0) $el.paginations.remove(); 1551 1552 if ('splideInstances' in window) { 1553 1554 $el.syncSlider = $el.item.parents('.jq-slider'); 1555 1556 window.splideInstances.forEach(function(splideInstance) { 1557 1558 if (splideInstance.root == $el.syncSlider[0]) { 1559 1560 var $syncSliderItems = $el.syncSlider.find('.jq-slider-item:not(.splide__slide--clone)'); 1561 1562 var syncSliderOffset = $syncSliderItems.index($syncSliderItems.filter('.jq-product-gallery')); 1563 1564 splideInstance.go(syncSliderOffset + galleryInstance.getCurrentIndex()); 1565 1566 } 1567 1568 }); 1569 1570 } 1571 1572 }); 1573 1574 // Note that init() method is called after gettingData event is bound 1575 galleryInstance.init(); 1576 1577 } 1578 1579})(jQuery); 1580 1581(function($) { 1582 1583 var $el = { 1584 hero: $('.jq-product-hero'), 1585 window: $(window) 1586 }; 1587 1588 var triggers = {}; 1589 1590 if ($el.hero.length) { 1591 1592 if ($el.hero.length > 1) { 1593 1594 $el.hero = $el.hero.eq(1); 1595 1596 } 1597 1598 $el.stage = $('.jq-product-hero-stage', $el.hero); 1599 1600 $el.card = $('.jq-product-hero-card', $el.hero); 1601 1602 setHeroOverflowHeight(); 1603 1604 $el.window.on('resize.setHeroOverflowHeight', setHeroOverflowHeight); 1605 1606 } 1607 1608 function setHeroOverflowHeight() { 1609 1610 if ($el.stage.length == 0 || $el.card.length == 0) { 1611 1612 return; 1613 1614 } 1615 1616 var stateOverflow = isOverflowing($el.stage[0]); 1617 1618 if (stateOverflow) { 1619 1620 $el.stage.addClass('is-stacked'); 1621 1622 if (!('clip' in $el)) { 1623 1624 $el.flow = $el.hero.wrap('<div style="position: sticky; top: 0"></div>').parent(); 1625 1626 $el.flow.append($el.flow.next()); 1627 1628 $el.clip = $el.flow.wrap('<div></div>').parent(); 1629 1630 } 1631 1632 triggers = { 1633 top: $el.clip.offset().top, 1634 bottom: $el.stage.prop('scrollHeight') - $el.stage.height() 1635 }; 1636 1637 $el.clip.height($el.clip.height() + triggers.bottom); 1638 1639 if (!('float' in $el)) { 1640 1641 $el.float = $el.card.clone(); 1642 1643 $el.float.find('.jq-slider').remove(); 1644 1645 $el.stage.prepend($el.float); 1646 1647 } 1648 1649 $el.float.addClass('is-cloned'); 1650 1651 $el.card.addClass('is-stacked'); 1652 1653 $el.window.on('scroll.initHeroScroll', initHeroScroll); 1654 1655 } else { 1656 1657 $el.window.off('scroll.initHeroScroll'); 1658 1659 $el.stage.removeClass('is-stacked'); 1660 1661 $el.card.removeClass('is-stacked'); 1662 1663 if ('clip' in $el) { 1664 1665 $el.clip.height(''); 1666 1667 } 1668 1669 if ('float' in $el) { 1670 1671 $el.float.remove(); 1672 1673 delete $el.float; 1674 1675 } 1676 1677 triggers = {}; 1678 1679 } 1680 1681 } 1682 1683 function isOverflowing(stageElement) { 1684 return stageElement.scrollHeight > stageElement.clientHeight; 1685 } 1686 1687 function initHeroScroll() { 1688 1689 var moveTo = Math.min(Math.max(parseInt($el.window.scrollTop() - triggers.top), 0
1689), triggers.bottom); 1690 1691 if (triggers.moveTo != moveTo || !('moveTo') in triggers) { 1692 1693 triggers.moveTo = moveTo; 1694 1695 $el.float 1696 .css( 1697 'transform', 1698 'translate3d(0, ' + 1699 (triggers.moveTo * -1) + 'px, ' + 1700 '0)' 1701 ); 1702 1703 } 1704 1705 } 1706 1707})(jQuery); 1708 1709(function($){ 1710 1711 if ($("body").is(".soubor-zobrazit_detail")) { 1712 1713 if ($('.why-love').length) { 1714 $(document).scroll(function () { 1715 if ($(this).scrollTop() >= $('.why-love').offset().top) { 1716 $(".c-produkt-detail__fixed").addClass("position-fixed"); 1717 } else { 1718 $(".c-produkt-detail__fixed").removeClass("position-fixed"); 1719 } 1720 }); 1721 } 1722 } 1723 1724})(jQuery); 1725 1726(function($) { 1727 1728 $(document).on('click', function(e) { 1729 if (!$(e.target).closest('.c-header__container').length) { 1730 $('.search-status:checked').prop('checked', false); 1731 } 1732 }); 1733 1734})(jQuery); 1735 1736(function($) { 1737 1738 $(document.body).click(function() { 1739 $(".c-sizer__content.open").removeClass("open"); 1740 $(".c-product-hero__card__inner").css("overflow","hidden"); 1741 }); 1742 1743 $("main.c-category__main").on("click", ".c-sizer__click", function(e) { 1744 $(this).next().toggleClass("open"); 1745 e.stopPropagation(); 1746 }); 1747 1748 $(".c-sizer").on("click", ".c-sizer__click", function(e) { 1749 $(this).next().toggleClass("open"); 1750 $(".c-product-hero__card__inner").css("overflow","inherit"); 1751 e.stopPropagation(); 1752 1753 }); 1754 1755 $(document.body).keyup(function(e) { 1756 if (e.key === 'Escape') { 1757 $(".c-sizer__content.open").removeClass("open"); 1758 } 1759 }); 1760 1761 1762})(jQuery); 1763 1764(function($) { 1765 1766 var swiper = new Swiper('.swiper-container-desktop', { 1767 autoplay: 7000, 1768 effect: 'fade', 1769 nextButton: '#button-next-desktop', 1770 prevButton: '#button-prev-desktop', 1771 lazyLoading: true, 1772 loop: true, 1773 pagination: '.pagination-desktop', 1774 paginationClickable: true, 1775 1776 }); 1777 1778 var swiperMobile = new Swiper('.swiper-container-mobile', { 1779 autoplay: 7000, 1780 effect: 'fade', 1781 nextButton: '#button-next-mobile', 1782 prevButton: '#button-prev-mobile', 1783 lazyLoading: true, 1784 loop: true, 1785 pagination: '.pagination-mobile', 1786 paginationClickable: true, 1787 1788 }); 1789 1790})(jQuery); 1791 1792(function($) { 1793 1794 if ($('.jq-slider').length) { 1795 1796 var sliderObserver = new IntersectionObserver(slidersInView, { 1797 rootMargin: '20% 0%' 1798 }); 1799 1800 $('.jq-slider').each(function() { 1801 if ($('.jq-slider-item', this).length > 1) sliderObserver.observe(this); 1802 }); 1803 1804 function slidersInView(entries, observer) { 1805 entries.forEach(function(entry) { 1806 if (entry.isIntersecting) { 1807 if ('Splide' in window) { 1808 initSplide(entry.target); 1809 } else { 1810 $.getScript(siteConfig.path + 'js/libs/splide-2.4.20.min.js', function() { 1811 initSplide(entry.target); 1812 }); 1813 } 1814 1815 observer.unobserve(entry.target); // disable this line to turn on / off autoplay function by position in viewport 1816 } else { 1817 // TO-DO: stop autoplay slider if is not in viewport (optionally) 1818 } 1819 }); 1820 } 1821 1822 function initSplide(slider) { 1823 1824 var $el = { 1825 slider: $(slider), 1826 stage: $('.jq-slider-stage', slider), 1827 items: $('.jq-slider-item', slider) 1828 }; 1829 1830 var cssClassPrefix = 'c-slider'; 1831 1832 $el.slider.addClass('splide'); 1833 1834 $el.stage.addClass('splide__list'); 1835 1836 $el.items.addClass('splide__slide'); 1837 1838 $el.stage.wrap('<div class="splide__track"></div>'); 1839 1840 var splideOptions = { 1841 type: 'loop', 1842 autoplay: false, 1843 arrows: false, 1844 pagination: true, 1845 speed: 800, 1846 interval: 0, // nastav frekvenci pøechodu v ms (napø. 5 sekund) 1847 classes: { 1848 arrows: cssClassPrefix + '__navs', 1849 arrow: cssClassPrefix + '__button', 1850 prev: cssClassPrefix + '__prev', 1851 next: cssClassPrefix + '__next', 1852 pagination: cssClassPrefix + '__pagination', 1853 page: cssClassPrefix + '__pagination__button jq-slider-button', 1854 } 1855 }; 1856 1857 if($el.slider.hasClass('c-product-hero__slider')) { 1858 1859 splideOptions.autoplay = false; 1860 1861 } 1862 1863 if ($el.slider.hasClass('jq-slider-simple')) { 1864 1865 $el.slider.addClass(cssClassPrefix + '--simple'); 1866 1867 } else { 1868 1869 splideOptions.arrows = true; 1870 1871 splideOptions.arrowPath = 'M25.732 20L11.615 5.885l1.77-1.77L29.268 20 13.385 35.885l-1.77-1.77L25.732 20z'; 1872 1873 splideOptions.padding = {
1874 //right: 'var(--splide-padding)', 1875 //left : 'var(--splide-padding)', 1876 right: 0, 1877 left : 0, 1878 }; 1879 1880 } 1881 1882 if (splideOptions.pagination) { 1883 1884 $el.slider.addClass(cssClassPrefix + '--pagination'); 1885 1886 } 1887 1888 var splideInstance = new Splide(slider, splideOptions); 1889 1890 splideInstance.on('mounted', function () { 1891 1892 $el.buttons = $('.jq-slider-button', $el.slider); 1893 1894 $el.buttons.each(function(buttonKey) { 1895 1896 var $slide = $el.items.eq(buttonKey); 1897 1898 if ($slide.length == 0) return; 1899 1900 if (typeof $slide.data('slider-item-thumb') === 'undefined') return; 1901 1902 $(this).css('background-image', 'url("' + $slide.data('slider-item-thumb') + '")'); 1903 1904 }); 1905 1906 }); 1907 1908 splideInstance.on('pagination:updated', function(paginationElements, previousElement, currentElement) { 1909 1910 var $pagination = $(paginationElements.list); 1911 1912 var $button = $(currentElement.button); 1913 1914 var buttonOffset = $button.offset().left; 1915 1916 var buttonWidth = $button.width(); 1917 1918 var paginationCurrentScroll = $pagination.scrollLeft(); 1919 1920 var paginationWidth = $pagination.width(); 1921 1922 if (buttonOffset < paginationCurrentScroll || 1923 buttonOffset + buttonWidth > paginationWidth) { 1924 1925 $pagination.scrollLeft( 1926 paginationCurrentScroll + 1927 buttonOffset - 1928 paginationWidth / 2 1929 ); 1930 1931 } 1932 1933 }); 1934 1935 splideInstance.mount(); 1936 1937 if (!('splideInstances' in window)) { 1938 1939 window.splideInstances = []; 1940 1941 } 1942 1943 window.splideInstances.push(splideInstance); 1944 1945 } 1946 1947 } 1948 console.log(Splide.defaults); 1949 1950})(jQuery); 1951 1952(function($) { 1953 1954 $(".c-specifications__group-title").click(function(){ 1955 1956 $(this).parent().toggleClass("open-group"); 1957 1958 }); 1959 1960})(jQuery); 1961 1962(function($) { 1963 1964 var $tables = $('.s-wysiwyg-content table'); 1965 1966 if ($tables.length) { 1967 1968 $tables.each(function() { 1969 1970 var $head = $(this).find('thead th'); 1971 1972 if ($head.length) { 1973 1974 $tables.find('td').each(function() { 1975 1976 var $column = $(this); 1977 1978 var order = $column.index(); 1979 1980 $column.attr('data-th', $head.eq(order).text()); 1981 1982 }); 1983 1984 } 1985 1986 }); 1987 1988 } 1989 1990})(jQuery); 1991 1992(function($) { 1993 1994 $(document).ready(function() { 1995 1996 if ($('.jq-toggle').length) { 1997 1998 $('.jq-toggle-control:checked').each(function() { 1999 var $toggle = $(this).parent('.jq-toggle'); 2000 2001 $('.jq-toggle-panel', $toggle).show(); 2002 }); 2003 2004 $(document).on('change', '.jq-toggle-control', function() { 2005 var $toggle = $(this).parent('.jq-toggle'); 2006 2007 if ($(this).hasClass('jq-toggle-one')) { 2008 var $toggles = $('[name="' + $(this).attr('name') + '"]'); 2009 2010 $toggles.not(this).prop('checked', false); 2011 2012 $toggles.nextAll('.jq-toggle-panel').slideUp(); 2013 2014 if ($(this).is(':checked')) { 2015 $('.jq-toggle-panel', $toggle).slideDown(); 2016 } 2017 } else { 2018 $('.jq-toggle-panel', $toggle).slideToggle(); 2019 } 2020 }); 2021 2022 } 2023 2024}); 2025 2026 2027})(jQuery); 2028 2029function filterBottomInit() { 2030 var filter = document.querySelector('.c-filter'); 2031 var closeBottom = document.querySelector('#close-filter-bottom'); 2032 var closeTop = document.querySelector('#close-filter-top'); 2033 2034 function isFilterActive() { 2035 if (!filter) return false; 2036 if (filter.querySelector('input[type="checkbox"]:checked')) return true; 2037 var priceMin = filter.querySelector('.cenovka-leva'); 2038 var priceMax = filter.querySelector('.cenovka-prava'); 2039 if (priceMin && priceMin.value !== priceMin.defaultValue) return true; 2040 if (priceMax && priceMax.value !== priceMax.defaultValue) return true; 2041 return false; 2042 } 2043 2044 function updateBottomButton() { 2045 var fm = document.querySelector('.c-filter__mobile'); 2046 if (!fm) return; 2047 fm.classList.toggle('filter-is-active', isFilterActive()); 2048 } 2049 2050 if (filter) { 2051 updateBottomButton(); 2052 new MutationObserver(updateBottomButton).observe(filter, { 2053 attributes: true, attributeFilter: ['class'] 2054 }); 2055 filter.addEventListener('change', updateBottomButton); 2056 filter.addEventListener('input', updateBottomButton); 2057 } 2058 2059 if (closeBottom && closeTop) { 2060 // Zabráníme duplikaci listenerù 2061 closeBottom.removeEventListener('click', closeBottom._filterHandler); 2062 closeBottom._filterHandler = function(e) { 2063 e.preventDefault(); 2064 closeTop.setAttribute('href', window.location.pathname + '#se-sorting'); 2065 closeTop.click(); 2066 }; 2067 closeBottom.addEventListener('click', closeBottom._filterHandler); 2068 } 2069} 2070 2071// Spustíme pøi naètení stránky 2072if (document.readyState === 'loading') { 2073 document.addEventListener('DOMContentLoaded', filterBottomInit); 2074} else { 2075 filterBottomInit(); 2076} 2077 2078// Spustíme také po kadém ajax naètení (ajaxify)
2079App.initComponents = function() { 2080 filterBottomInit(); 2081};
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.