jQuery(document).ready(function ($){
$(".cmplz-accept").on("click", function(){
let data={
action: 'tsz_ret_data',
};
jQuery.post(tsz_public_localize.ajaxurl, data, function (response, b){
let as=JSON.parse(response);
let pageType=as['pageType'];
let retargetingConf={
rtgId: as['rtgId'],
consent: 1,
};
if(pageType==='category'){
retargetingConf.category=as['category'];
retargetingConf.pageType='category';
}else if(pageType==='offerdetail'){
retargetingConf.itemId=as['itemId'];
retargetingConf.pageType='offerdetail';
}
window.rc.retargetingHit(retargetingConf);
});
});
if($('#tab-title-tsaz_custom_tab').length > 0){
let text=$('#tab-title-tsaz_custom_tab').children().first().html();
let count=$('.heureka-shop-review-wrap').length
$('#tab-title-tsaz_custom_tab').children().first().html(text + ' (' + count + ')')
}});
jQuery(document).ready(function($){
function getResponsiveItemsPerView(sliderContainer){
const responsiveSettingsAttr=sliderContainer.attr('data-responsive');
const defaultItemsPerView=parseInt(sliderContainer.attr('data-items-per-view'), 10)||1;
if(!responsiveSettingsAttr){
return defaultItemsPerView;
}
try {
const responsiveSettings=JSON.parse(responsiveSettingsAttr);
if(!Array.isArray(responsiveSettings)||responsiveSettings.length===0){
return defaultItemsPerView;
}
responsiveSettings.sort((a, b)=> (parseInt(b.breakpoint, 10)||0) - (parseInt(a.breakpoint, 10)||0));
const windowWidth=$(window).width();
for (const setting of responsiveSettings){
const breakpointVal=parseInt(setting.breakpoint, 10);
const itemsVal=parseInt(setting.items, 10);
if(isNaN(breakpointVal)||isNaN(itemsVal)||itemsVal <=0){
console.warn("Invalid breakpoint or items in responsive settings:", setting);
continue;
}
if(windowWidth >=breakpointVal){
return itemsVal;
}}
const smallestBreakpointSetting=responsiveSettings[responsiveSettings.length - 1];
if(smallestBreakpointSetting&&!isNaN(parseInt(smallestBreakpointSetting.items, 10))&&parseInt(smallestBreakpointSetting.items, 10) > 0){
return parseInt(smallestBreakpointSetting.items, 10);
}} catch (e){
console.error("Error parsing responsive settings for slider:", e, responsiveSettingsAttr);
}
return defaultItemsPerView;
}
function initReviewSlider(sliderContainerElem){
const sliderContainer=$(sliderContainerElem);
const prevButton=sliderContainer.find('.tsz-prev').off('click.sliderApi');
const nextButton=sliderContainer.find('.tsz-next').off('click.sliderApi');
const dotsContainer=sliderContainer.find('.tsz-slider-dots').off('click.sliderApi', '.tsz-dot');
const slidesViewport=sliderContainer.find('.tsz-slides-viewport');
const slidesWrapper=sliderContainer.find('.tsz-slides');
const slides=slidesWrapper.find('.tsz-review-slide');
const totalSlides=slides.length;
let itemsPerView=getResponsiveItemsPerView(sliderContainer);
let currentStoredPage=sliderContainer.data('currentPage')||0;
if(totalSlides===0){
sliderContainer.hide();
return;
}else{
sliderContainer.show();
}
if(totalSlides <=itemsPerView){
itemsPerView=totalSlides;
prevButton.hide().addClass('hidden-by-js');
nextButton.hide().addClass('hidden-by-js');
if(dotsContainer.length) dotsContainer.hide().addClass('hidden-by-js');
const slideWidthPercentageAll=(100 / itemsPerView);
slides.css({
'flex-basis': `${slideWidthPercentageAll}%`,
'width': `${slideWidthPercentageAll}%`
});
slidesWrapper.css('transform', 'translateX(0%)');
sliderContainer.data('currentPage', 0);
return;
}else{
if(prevButton.hasClass('hidden-by-js')) prevButton.show().removeClass('hidden-by-js');
if(nextButton.hasClass('hidden-by-js')) nextButton.show().removeClass('hidden-by-js');
if(dotsContainer.length&&dotsContainer.hasClass('hidden-by-js')){
dotsContainer.show().removeClass('hidden-by-js');
}}
const slideWidthPercentage=(100 / itemsPerView);
slides.css({
'flex-basis': `${slideWidthPercentage}%`,
'width': `${slideWidthPercentage}%`
});
const totalPages=Math.ceil(totalSlides / itemsPerView);
let currentPage=Math.min(currentStoredPage, totalPages - 1);
currentPage=Math.max(0, currentPage);
if(totalPages > 1&&dotsContainer.length){
dotsContainer.empty().show();
for (let i=0; i < totalPages; i++){
$('<span></span>')
.addClass('tsz-dot' + (i===currentPage ? ' active':''))
.attr('data-page-index', i)
.appendTo(dotsContainer);
}}else if(dotsContainer.length){
dotsContainer.empty().hide();
}
const dots=dotsContainer.find('.tsz-dot');
function goToPage(pageIndex){
if(pageIndex < 0) pageIndex=0;
if(pageIndex >=totalPages) pageIndex=totalPages - 1;
const offsetPercentage=- (pageIndex * 100);
slidesWrapper.css('transform', `translateX(${offsetPercentage}%)`);
currentPage=pageIndex;
sliderContainer.data('currentPage', currentPage);
if(dots.length > 0){
dots.removeClass('active').eq(currentPage).addClass('active');
}
prevButton.prop('disabled', currentPage===0).toggle(totalPages > 1);
nextButton.prop('disabled', currentPage===totalPages - 1).toggle(totalPages > 1);
}
nextButton.on('click.sliderApi', function (){
let currentItems=getResponsiveItemsPerView(sliderContainer);
let currentTotalPages=Math.ceil(totalSlides / currentItems);
let storedPage=sliderContainer.data('currentPage')||0;
if(storedPage < currentTotalPages - 1){
goToPage(storedPage + 1);
}});
prevButton.on('click.sliderApi', function (){
let storedPage=sliderContainer.data('currentPage')||0;
if(storedPage > 0){
goToPage(storedPage - 1);
}});
dotsContainer.on('click.sliderApi', '.tsz-dot', function (){
const pageIndex=$(this).data('page-index');
if(typeof pageIndex!=='undefined'){
goToPage(parseInt(pageIndex, 10));
}});
goToPage(currentPage);
}
$('.tsz-review-slider-container').each(function(){
initReviewSlider(this);
});
function debounce(func, wait, immediate){
var timeout;
return function (){
var context=this, args=arguments;
var later=function (){
timeout=null;
if(!immediate) func.apply(context, args);
};
var callNow=immediate&&!timeout;
clearTimeout(timeout);
timeout=setTimeout(later, wait);
if(callNow) func.apply(context, args);
};}
const debouncedResizeHandler=debounce(function (){
$('.tsz-review-slider-container').each(function (){
initReviewSlider(this);
});
}, 250);
$(window).on('resize.sliderEvents', debouncedResizeHandler);
});
document.addEventListener('DOMContentLoaded', function(){
const readMoreLinks=document.querySelectorAll('.tsz-read-more');
readMoreLinks.forEach(link=> {
link.addEventListener('click', function(event){
event.preventDefault();
const wrapper=this.closest('.tsz-review-text-wrapper');
if(!wrapper){
return;
}
const textBody=wrapper.querySelector('.tsz-review-text-body');
if(!textBody){
return;
}
textBody.classList.toggle('expanded');
if(textBody.classList.contains('expanded')){
this.textContent=this.dataset.lessText||'Skrýt';
}else{
this.textContent=this.dataset.moreText||'Číst více';
}});
});
});