$(document).ready(function(){if(!isDescktopDevice()){$('.burger-menu-btn').on('click',function(){$('.hidden-overlay').toggleClass('overlay');$('body').toggleClass('with-overlay');});}
$('.hidden-overlay').on('click',function(){if($(this).hasClass('overlay')){$(this).removeClass('overlay');$('body').removeClass('with-overlay');}});var lastScrollTop=0;var offset=100;var searchFilters=$('.search-page .filters');$('#dropdownSideMenu').on('show.bs.dropdown',function(){toggleWindowScroll(true);$('.side-menu-nav').css('overflow','auto');$(this).find('.visually-hidden').text($(this).data('close-side-menu'));});$('#dropdownSideMenu').on('hide.bs.dropdown',function(){toggleWindowScroll(false);$(this).find('.visually-hidden').text($(this).data('open-side-menu'));});$(document).on('mousemove',function(e){var menu=$('.side-menu-nav')[0];var isMouseOverMenu=menu===e.target||(menu&&menu.contains(e.target))
if($('#dropdownSideMenu').hasClass('show')){if(!isMouseOverMenu){toggleWindowScroll(false);}
else{toggleWindowScroll(true)
$('.side-menu-nav').css('overflow','auto');}}});$(window).scroll(function(){$('#dropdownSideMenu').dropdown('hide');var st=$(this).scrollTop();if(st>lastScrollTop){$('.main-submenu-wrap').addClass('fixed');$('#header').removeClass('fixed').addClass('scrolled-hidden');$('.top-space').removeClass('active');searchFilters.addClass('is-hide');}else if(st==0){$('#header').removeClass('fixed').removeClass('scrolled-hidden');$('.top-space').removeClass('active');searchFilters.removeClass('is-hide');}else{$('.main-submenu-wrap').removeClass('fixed');$('#header').addClass('fixed').removeClass('scrolled-hidden');$('.top-space').addClass('active');searchFilters.removeClass('is-hide');}
if(Math.abs(st-lastScrollTop)>offset){lastScrollTop=st<0?0:st;}});if(isDescktopDevice()){$('.header .has-submenu').on('mouseover',function(){$(this).addClass('open').siblings().removeClass('open');});$('body').on('click',function(e){if(!$(e.target).hasClass('.main-submenu-collapse')){$('.header .has-submenu').removeClass('open');}});}
$('.open-more-links').each(function(){var button=$(this);button.on('show.bs.dropdown',function(){var closeText=button.data('close-menu-text');button.find('.visually-hidden').text(closeText);});button.on('hide.bs.dropdown',function(){var openText=button.data('open-menu-text');button.find('.visually-hidden').text(openText);});});});var scrollBarWidth=window.innerWidth-document.documentElement.clientWidth;function toggleWindowScroll(disable){$('body').css({'overflow':disable?'hidden':'auto','padding-right':disable?scrollBarWidth:0});}
function isDescktopDevice(){const mobileDeviceMaxWidth=$('#wrapper').attr('data-mobile-width');return $(window).width()>mobileDeviceMaxWidth;}
function play(itemId,playerType,programId,includeInAcrCloud=false){if(/ Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){window.location.href=""+"/live/radio.aspx?itemId="+itemId;}
else{let popupPlayerWith=489;if(includeInAcrCloud&&$(window).width()>1400){popupPlayerWith=655;}
popupWin=window.open(`/player?itemId=${itemId}&playerType=${playerType}&programId=${programId}`,'win_player',`directories=no,titlebar=no,toolbar=no,location=no,scrollbars=no,width=1064,height=${popupPlayerWith},top=100,left=100`);popupWin.focus();}};;
function updateUrlParameter(uri,key,value){var i=uri.indexOf('#');var hash=i===-1?'':uri.substr(i);uri=i===-1?uri:uri.substr(0,i);var re=new RegExp("([?&])"+key+"=.*?(&|$)","i");var separator=uri.indexOf('?')!==-1?"&":"?";if(uri.match(re)){if(value=="")
uri=uri.replace(re,'$1'+''+'$2')
else
uri=uri.replace(re,'$1'+key+"="+value+'$2');}else{uri=uri+separator+key+"="+value;}
return uri+hash;}
function getUrlQueryString(){var vars=[],hash;var hashes=window.location.href.slice(window.location.href.indexOf('?')+1).split('&');for(var i=0;i<hashes.length;i++){hash=hashes[i].split('=');vars.push(hash[0]);vars[hash[0]]=hash[1];}
return vars;}
function removeURLParameter(url,parameter){var urlparts=url.split('?');if(urlparts.length>=2){var prefix=encodeURIComponent(parameter)+'=';var pars=urlparts[1].split(/[&;]/g);for(var i=pars.length;i-->0;){if(pars[i].lastIndexOf(prefix,0)!==-1){pars.splice(i,1);}}
url=urlparts[0]+(pars.length>0?'?'+pars.join('&'):"");return url;}else{return url;}}
function updateUrl(urlSegment,urlValue){var url=window.location.href;let url3='';if(!isNullOrEmpty(urlValue)){url3=updateUrlParameter(url,urlSegment,urlValue);}else{url3=removeURLParameter(url,urlSegment);}
window.history.pushState('','',url3);}
function isNullOrEmpty(str){return(!str||/^\s*$/.test(str));}
String.format=function(){var s=arguments[0];for(var i=0;i<arguments.length-1;i++){var reg=new RegExp("\\{"+i+"\\}","gm");s=s.replace(reg,arguments[i+1]);}
return s;}
function loadMoreItems(itemsData,handlerLoad,spinner,successHandler=null){spinner.removeClass('visually-hidden');return $.ajax({url:window.location.href,data:itemsData,success:function(result){handlerLoad(result);requestAnimationFrame(()=>{if(successHandler){successHandler();}});},complete:function(){spinner.addClass('visually-hidden');}});}
function InitLoadMore(initjQueryId,replacejQueryClass,loadHandler,eventType='click',changePageCounter=true){$('body').on(eventType,initjQueryId,function(e){e.preventDefault();if(changePageCounter){currentPage++;}
loadHandler(function(result){$(replacejQueryClass).replaceWith(result);var numberOfPages=parseInt($('#number-of-pages').val());if(currentPage==numberOfPages){$(initjQueryId).addClass('d-none');}});});}
function getSelectedSlideIndex(channelQueryName,channelAttribute){let channelId=getUrlQueryString()[channelQueryName];if(channelId===undefined){return;}
channelId=isNaN(channelId)?channelId.slice(0,channelId.length-1):channelId;if(isNaN(channelId)){return;}
let selectedLinks=document.querySelectorAll(`[${channelAttribute}="${channelId}"]`);let selectedChannels=Array.from(selectedLinks).filter(element=>element.classList.contains('channel-link')).map(element=>element.closest('.slick-slide')).filter(element=>!element.classList.contains('slick-cloned'));let slideIndex=selectedChannels[0].getAttribute('data-slick-index');if(!isNaN(slideIndex)){return slideIndex;}}
function isMobileApp(){var params=getUrlQueryString();var paramName="app";if(paramName in params){var value=params[paramName].toLowerCase();return value==='true';}
return false;};;
class AuthService{constructor(){this.accessTokenKey='X-Access-Token';this.refreshTokenKey='X-Refresh-Token';this.idTokenKey='X-ID-Token';this.userDataKey='kan-user-data';this.isAuthorizedKey='IsAuthorized';}
getAuthPromise(){if(!this.authCheckPromise){this.authCheckPromise=this.validateAndRefreshTokens().catch(()=>({success:false}));}
return this.authCheckPromise;}
getToken(key){return localStorage.getItem(key);}
setToken(key,value){localStorage.setItem(key,value);}
removeToken(key){localStorage.removeItem(key);}
setCookie(name,value,expireMinutes=60){const date=new Date();date.setTime(date.getTime()+(expireMinutes*60*1000));const expireTime=date.toUTCString();const domain=window.location.hostname;document.cookie=`${name}=${encodeURIComponent(value)};expires=${expireTime};path=/;domain=${domain};Secure;SameSite=Lax`;}
removeCookie(name){const domain=window.location.hostname;document.cookie=`${name}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=${domain};Secure;SameSite=Lax`;}
clearAllTokens(){this.removeToken(this.accessTokenKey);this.removeToken(this.refreshTokenKey);this.removeToken(this.idTokenKey);this.removeToken(this.userDataKey);this.removeCookie(this.isAuthorizedKey);}
async validateAndRefreshTokens(){const accessToken=this.getToken(this.accessTokenKey);const refreshToken=this.getToken(this.refreshTokenKey);const idToken=this.getToken(this.idTokenKey);const userId=this.getToken(this.userDataKey);if(!accessToken&&!refreshToken){return{success:false};}
try{const response=await $.ajax({url:'/api/authentication/authenticate',method:'POST',headers:{'Content-Type':'application/json','X-Access-Token':accessToken,'X-Refresh-Token':refreshToken,'X-ID-Token':idToken,'User-Id':userId,'RequestVerificationToken':$('[name="__RequestVerificationToken"]').val()},dataType:'json'});if(response.isValid){if(response.accessToken){this.setToken(this.accessTokenKey,response.accessToken);}
if(response.idToken){this.setToken(this.idTokenKey,response.idToken);}
if(response.userData){this.setToken(this.userDataKey,response.userData.primaryKey);}
return{success:true,userData:response.userData};}else{this.clearAllTokens();return{success:false};}}catch(error){this.clearAllTokens();return{success:false};}}}
const authService=new AuthService();$(document).ready(async function(){const authStatus=await authService.getAuthPromise();const greetingSpan=$('.greeting-text');const registration=$('.registration');const userData=authStatus.userData;if(authStatus.success){const registredText=greetingSpan.data('registred-text');registration.addClass('login');greetingSpan.text(`${registredText}, ${userData.firstName}`);const userAuthInfo={IsAuthorized:true,FirstName:userData.firstName};authService.setCookie(authService.isAuthorizedKey,JSON.stringify(userAuthInfo));}else{greetingSpan.text(greetingSpan.data('login-text'));registration.removeClass('login');}
$(document).trigger('authCheckCompleted',[authStatus.success,userData]);if(history.pushState){const params=new URLSearchParams(window.location.search);if(params.get('access_token')){const newUrl=`${location.protocol}//${location.host}${location.pathname}`;window.history.pushState({path:newUrl},'',newUrl);}}
$(".logout-btn").on("click",function(e){e.preventDefault();authService.clearAllTokens();location.reload();});});;;
