jQuery(document).ready(function($){
if($('.wx-kalendar-wrapper').length){
const ajax_wrapper=$('.dnes-na-programu .wx-kalendar-wrapper').first();
$(document).on('click', '.home .program-header .day-column', function(e){
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
var $nav=$(this).closest('.program-header');
if($nav.length){
$('html, body').stop(true).animate({
scrollTop: Math.max(0, $nav.offset().top - 100)
}, 250);
}
wx_kalendar_akci(this);
return false;
});
if(!ajax_wrapper.length){
return;
}
const observer=new MutationObserver(function(mutationsList){
mutationsList.forEach(function(mutation){
if(mutation.attributeName==='class'){
if(ajax_wrapper.hasClass('loading')){
ajax_wrapper.stop(true, true).animate({ opacity: 0.2 }, 1000);
showLoader(ajax_wrapper);
}else{
ajax_wrapper.stop(true, true).animate({ opacity: 1 }, 1000);
hideLoader(ajax_wrapper);
}}
});
});
observer.observe(ajax_wrapper[0], { attributes: true });
$(window).on('unload', function(){
observer.disconnect();
});
function showLoader(wrapper){
if(!wrapper.find('.minimal-loader').length){
const loader=$('<div class="minimal-loader"></div>');
wrapper.append(loader);
}}
function hideLoader(wrapper){
wrapper.find('.minimal-loader').fadeOut(300, function(){
$(this).remove();
});
}
function wx_kalendar_akci(selected_column){
ajax_wrapper.addClass('loading');
const selected_day=$(selected_column).attr('data-date');
$('.day-column').not(selected_column).find('strong').css('opacity', '0.5');
$(selected_column).find('strong').css('opacity', '1');
var date=new Date(selected_day);
var currentLang=$('html').attr('lang');
var formatter=new Intl.DateTimeFormat(currentLang, {
weekday: 'long',
day: 'numeric',
month: 'long'
});
var formattedDate=formatter.format(date);
$('.dnesni_program_nadpis').html(formattedDate);
var selectedLang=getLanguage();
$.ajax({
url: myAjax.ajaxurl,
type: 'POST',
data: {
action: 'wx_ajax_kalendar',
selected_day: selected_day,
lang: currentLang
},
success: function(response){
ajax_wrapper.removeClass('loading');
if(response.success){
ajax_wrapper.hide().html(response.data).fadeIn('slow');
}else{
ajax_wrapper.html('<div>Žádné výsledky nenalezeny.</div>');
}},
error: function(xhr, status, error){
console.error("AJAX Error:", status, error);
ajax_wrapper.removeClass('loading');
ajax_wrapper.html('<div>Chyba.</div>');
}});
}
function getLanguage(){
var urlParams=new URLSearchParams(window.location.search);
return urlParams.get('lang')||'cs';
}}
});