PageSourceSearch

https://www.crussis.cz/js/script.js?timestamp=1777492055

js crussis.cz collected 2026-10-01 16:09:36 UTC 47,644 bytes, 2,081 lines download raw bytes

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 každé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.