$(document).ready(function(){let resizeTimer;function detectResizing(){document.body.classList.add("resizing");clearTimeout(resizeTimer);resizeTimer=setTimeout(function(){document.body.classList.remove("resizing");},100);}
window.addEventListener("resize",detectResizing);});function animatedXbox(){const section=document.querySelector(".animated-mask-xbox");if(section){const bgAfterImage=section.querySelector('.background-before-image').getAttribute('src');const style=document.createElement('style');style.type='text/css';const css=`.animated-mask-xbox__image-wrapper::before{background-image:url(${bgAfterImage})}`;style.appendChild(document.createTextNode(css));section.appendChild(style);const backgroundImage=document.querySelector(".animated-mask-xbox__image-wrapper--background");const maskImage=document.querySelector(".animated-mask-xbox__image-wrapper--mask");function animateClipPathToFinal(){gsap.to(backgroundImage,{duration:1,clipPath:"ellipse(15% 51% at 85% 50%)",onStart:()=>{setTimeout(function(){gsap.to(maskImage,{duration:0,opacity:1,});},800);},});const animateImage=document.querySelector('.animated-mask-xbox__line-animate-image');if(section){section.classList.add('animated');}
if(animateImage){animateImage.classList.add('path-animate-init');}}
function animateClipPathToInitial(){gsap.to(backgroundImage,{duration:1,clipPath:"ellipse(100% 100% at calc(50% + 402px) 52%)",});gsap.to(maskImage,{duration:0,opacity:0,});setTimeout(()=>{let img=document.querySelector('.animated-mask-xbox__line-animate-image');if(img){img.classList.remove('path-animate-init');}},1000);if(section){section.classList.remove('animated');}}
gsap.registerPlugin(ScrollTrigger);ScrollTrigger.create({trigger:section,start:"-30% center",end:"70% center",scrub:true,onEnter:animateClipPathToFinal,onLeaveBack:animateClipPathToInitial,});}}
if($(window).width()>=1200){setTimeout(()=>{animatedXbox();},1000);document.addEventListener("DOMContentLoaded",function(){const boxes=document.querySelectorAll('.animated-mask-xbox__line-animate-image');const observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{const box=entry.target;if(entry.isIntersecting){box.classList.add('path-animate-init');}else{box.classList.remove('path-animate-init');}});});boxes.forEach(box=>{observer.observe(box);});});}
addToAutoLoadLibs('https://static.dhi.smart360web.com/vendor-lib/vivus/vivus.min.js',SVGPathAnimations);function SVGPathAnimations(){$("[data-path-animate]").each(function(){const $SVG=$(this);const data=$SVG.data();const options={type:data.animateType||"sync",duration:data.animateDuration||100,delay:data.animateDelay||0,};const observer=new IntersectionObserver(function(entries){entries.forEach((entry)=>{if(entry.isIntersecting){const vivusPath=new Vivus($SVG[0]);}});},options);observer.observe($SVG[0]);});}
$(document).ready(function(){$('header.header--brand').each(function(){const $header=$(this);const headerData=$header.data();$('.header .header__nav-items').append(`<li class="header__toggle-more-menu"><span class="header__hamburger-more-menu"><span class="header__hamburger-icon-more-menu"></span></span></li>`);const $headerToggle=$header.find('.header__toggle');const $moreMenuToggle=$header.find('.header__toggle-more-menu');const $moreMenu=$('.header .header__more-menu-wrapper');$headerToggle.on('click',function(){toggleMainMenu();});const breakpoints=[768,1024,1200,1366,1600];const $navItems=$header.find('.header__nav .header__nav-items > li').not('.header__toggle-more-menu,.social-link-wrapper');$navItems.not('.header__search-wrappper').not('.header__toggle-more-menu,.social-link-wrapper').addClass('navigation-link');breakpoints.forEach((breakpoint,index)=>{$navItems.slice(0,headerData[`itemsOn-${breakpoint}`]).addClass(`show-on-${breakpoint}`);});const mainNavClone=$('.header .header__nav .header__nav-items').clone();const $moreMenuWrapper=$header.find('.header__more-menu-wrapper');breakpoints.forEach((breakpoint)=>{let $itemsOnBreackpoint=mainNavClone.find(`.show-on-${breakpoint}`).not('.header__toggle-more-menu').removeClass(`show-on-${breakpoint}`).addClass(`hide-on-${breakpoint}`);if($itemsOnBreackpoint.length&&($navItems.length>headerData[`itemsOn-${breakpoint}`])){$moreMenuToggle.addClass(`show-on-${breakpoint}`);}});$header.find('.header__nav--more-menu').append(mainNavClone);$('.header .header__accesability,.header__site_language').clone().appendTo('.header__top-menu-items-on-mobile');$moreMenuToggle.on('click',function(){$('body').toggleClass('more-menu--open');});$('.header .header__nav-items li').each(function(){const listItem=$(this);if(listItem.find('> ul').not('.mega-menu,.slide-menu').length){listItem.addClass('has-submenu');listItem.append('<span class="icon arrow submenu-arrow"></span>');listItem.append('<span class="icon arrow submenu-arrow-desktop"></span>');}});$('.header .submenu-arrow').each(function(){const $submenuArrow=$(this);$submenuArrow.on('click',function(){$submenuArrow.siblings('ul').slideToggle();$submenuArrow.closest('li').toggleClass('submenu--open');});});$('.header .submenu-arrow-desktop').each(function(){const $submenuArrowDesktop=$(this);$submenuArrowDesktop.on('click',function(){$submenuArrowDesktop.closest('li').toggleClass('submenu--open');});});$('.header__site_language').each(function(){const $dropdown=$(this).find('.header_language-dropdown');const hasZhHant=$dropdown.find('li[data-code="zh-hant"]').length>0;const hasZhHants=$dropdown.find('li[data-code="zh-hants"]').length>0;if(!(hasZhHant||hasZhHants)){$(this).hide();}});const currentLanguage=$('html').attr('lang')||'en';const languageShortCodes={'en':{'name':'English','short_code':'En'},'zh-hans':{'name':'Simplified Chinese','short_code':'简'},'zh-hant':{'name':'Traditional Chinese','short_code':'繁'}};const origin=window.location.origin;const pathname=window.location.pathname.replace(/\/zh-(hans|hant)/,"");$('.header_language-dropdown').each(function(){const $dropdown=$(this);$dropdown.find('li').each(function(){const langCode=$(this).attr('data-code');let langUrl=`${origin}${pathname}`;if(langCode!='en'){langUrl=`${origin}/${langCode}${pathname}`;$(this).find('> a').attr('href',langUrl);}else{$(this).find('> a').attr('href',langUrl);}});});const currentLanguageCode=languageShortCodes[currentLanguage];$('.header_selected-language').text(currentLanguageCode.short_code);$(`.header .header_language-dropdown li[data-code="${currentLanguage}"]`).hide();$(`.header .header_language-dropdown li[data-code=""]`).remove();$('.header .header__top .header_selected-language-wrapper').on('click',function(){$('body').toggleClass('lang-menu-desktop--open');});$('.header__site_language').addClass('initialized');$('.header .header__bottom .header_selected-language-wrapper').on('click',function(){$('body').toggleClass('lang-menu-desktop--open');});$(document).on('click',function(event){if(!$(event.target).closest('.header__more-menu-wrapper, .header__toggle-more-menu').length){$('body').removeClass('more-menu--open');}
if(!$(event.target).closest('.header').length){$('body').removeClass('main-menu--open');}
if(!$(event.target).closest('.header__site_language').length){$('body').removeClass('lang-menu-desktop--open');$('body').removeClass('lang-menu-mobile--open');}});if(currentLanguage!='en'){const $form=$('.header__search form');$form.append(`<input type='hidden' name='language' value='${currentLanguage}' />`);}
function toggleMainMenu(){let $body=$('body');let isOpen=$body.hasClass('main-menu--open');if(isOpen){$('.main-menu__backdrop').remove();}else{$body.append('<span class="backdrop main-menu__backdrop"></span>');}
$body.toggleClass('main-menu--open',!isOpen);}
$('body').on('click','.main-menu__backdrop',function(){$('.main-menu__backdrop').remove();});$('body').on('click','.form-group__password-toggle',function(){$input=$(this).siblings('input');if($input.attr('type')=='password'){$input.attr('type','text');}else{$input.attr('type','password');}
$(this).closest('.form-group').toggleClass('show');});$('.slide-menu').each(function(){const $megaMenuOnMobile=$(this);const $parentLi=$megaMenuOnMobile.closest('li');if($megaMenuOnMobile.find('.mega-menu-link').length>1){$parentLi.append('<span class="megamenu-arrow icon-d-005-arrow-right"></span>');}});$('.header').find('.megamenu-arrow').each(function(){$(this).on('click',function(){$(this).siblings('.slide-menu').addClass('active');$(this).closest('.simplebar-content-wrapper').addClass('overflow-visible');});});$('.header').find('.slide-menu-back').each(function(){$(this).on('click',function(){$(this).closest('.slide-menu').removeClass('active');$(this).parent().hasClass("mega-menu")&&$(this).closest('.simplebar-content-wrapper').removeClass('overflow-visible');});});$header.find('.slide-menu').each(function(){const $slideMenu=$(this);if(!$slideMenu.find('.mega-menu-link').length){$slideMenu.hide();}});});});addToAutoLoadLibs('https://static.dhi.smart360web.com/vendor-lib/simplebar/v6-2-7/simplebar.min.css');addToAutoLoadLibs('https://static.dhi.smart360web.com/vendor-lib/simplebar/v6-2-7/simplebar.min.js',initHeaderScrollbar);function initHeaderScrollbar(){new SimpleBar($('.header .header__nav')[0],{autoHide:false});new SimpleBar($('.header .header__nav--more-menu')[0],{autoHide:false});const megaMenuOnMobileScrollWrappers=$('.header .mega-menu.on-mobile .scroll-wrapper');megaMenuOnMobileScrollWrappers.each(function(){const $scrollWrapper=$(this);new SimpleBar($scrollWrapper[0],{autoHide:false});setSwipeMenuScrollHeight($scrollWrapper);$(window).on('resize',function(){setSwipeMenuScrollHeight($scrollWrapper);})});}
function setSwipeMenuScrollHeight($swipeMenuScrollWrapper){setTimeout(function(){const headerHeight=$('.header').height();const backLinkHeight=$swipeMenuScrollWrapper.siblings('.slide-menu-back').outerHeight(true);const extraItemsHeight=$('.header .header__extra-items').height();const reduceHeight=headerHeight+backLinkHeight+extraItemsHeight+110;$swipeMenuScrollWrapper.css('height',`calc(100vh - ${reduceHeight}px)`);},500);}
$(window).scroll(function(){let scrolled=$(window).scrollTop()>0;if(scrolled){$('body').addClass('scrolled');}else{$('body').removeClass('scrolled');}
if($(window).scrollTop()>250){$('body').addClass('scrolled hide-header');}else{$('body').removeClass('scrolled hide-header');}});$(document).ready(function(){let lastScrollTop=0;$(window).scroll(function(){let scrollTop=$(this).scrollTop();if(scrollTop>lastScrollTop){$("body").removeClass("going-up more-menu--open").addClass("going-down");}else{$("body").removeClass("going-down").addClass("going-up");}
lastScrollTop=scrollTop;});});const items=document.querySelectorAll('[data-cse_blockid="block-65def9de26991___1709111774"] .swiper .swiper-wrapper .xList-item');for(let i=2;i<items.length;i++){items[i].classList.add('hide');}
$(document).ready(function(){const parent=$('.citis-hotels-list-wrapper .bottom-content');const noresults='<h5 class="no-results-message">No Results Found</h5>';$('#city-search').on('input',function(){const searchText=$(this).val().toLowerCase();let anyResultsFound=false;$('.search-field').hide();$('.search-field-child').hide();if(searchText===''){$('.search-field').show();$('.search-field-child').show();$('.no-results-message').remove();return;}
$('.search-field').each(function(){const introText=$(this).find('.intro-content').text().toLowerCase();if(introText.includes(searchText)){$(this).stop(true,true).fadeIn();$(this).find('.search-field-child').show();anyResultsFound=true;}else{$(this).find('.search-field-child').each(function(){const hotelInfo=$(this).find('.item-hotel-info .presentaion-only-h5').text().toLowerCase();if(hotelInfo.includes(searchText)){$(this).closest('.search-field').stop(true,true).fadeIn();$(this).stop(true,true).fadeIn();anyResultsFound=true;}else{$(this).stop(true,true).fadeOut();}});}});if(!anyResultsFound){if($('.no-results-message').length===0){parent.append(noresults).fadeIn();}}else{$('.no-results-message').remove();}});});$(document).ready(function(){if($('#whats-on-list').length>0){let page=1;let totalPages=1;let loading=false;let html='';let pagination='';let responseData=null;let filteredData=null;let categoryData=null;let originalData=null;let sortOrder='asc';function fetchData(){return new Promise(function(resolve,reject){if(!loading){loading=true;$.ajax({url:'/dcb/dynamic.php?dcbName=WhatsOnListingJson&requestType=json',method:'GET',dataType:'json',success:function(response){responseData=response.data;responseData.pop();loading=false;originalData=responseData;resolve();},error:function(xhr,status,error){console.error(error);loading=false;reject(error);}});}});}
function fetchCategories(){return new Promise(function(resolve,reject){if(!loading){loading=true;$.ajax({url:'/dcb/dynamic.php?dcbName=WhatsOnCategory&requestType=json',method:'GET',dataType:'json',success:function(response){categoryData=response.data;categoryData.pop();loading=false;resolve();},error:function(xhr,status,error){console.error(error);loading=false;reject(error);}});}});}
function filterByCategory(cat){filteredData=responseData;if(cat!=='all'){let catIds=cat.split(",");filteredData=responseData.filter(function(post){let postCategoryIds=post.main_categories.split(",");return catIds.some(id=>postCategoryIds.includes(id));});}
totalPages=Math.ceil(filteredData.length / 6);originalData=filteredData;if(page>totalPages){page=1;}}
function filterByYear(year){filteredData=responseData;if(year!=='all'){filteredData=responseData.filter(function(post){let postYear=new Date(post.date).getFullYear();return postYear===parseInt(year);});}
totalPages=Math.ceil(filteredData.length / 6);originalData=filteredData;if(page>totalPages){page=1;}}
function searchData(searchQuery){filteredData=responseData;filteredData=searchQuery?originalData.filter(function(item){return item.page_heading.toLowerCase().includes(searchQuery)||item.short_description.toLowerCase().includes(searchQuery)||item.seo_url.toLowerCase().includes(searchQuery)||item.description.toLowerCase().includes(searchQuery);}):originalData;totalPages=Math.ceil(filteredData.length / 6);if(page>totalPages){page=1;}}
function sortData(){filteredData.sort((a,b)=>b.date-a.date);}
function getCategoryName(categoryID){let category=categoryData.find(function(cat){return cat.id===categoryID;});return category?category.name:null;}
function getCategoryId(categoryName){let category=categoryData.find(function(cat){return cat.seo_url===categoryName;});return category?category.id:null;}
function formatDate(inputDate){let parts=inputDate.split("-");let formattedDate=parts[2]+"/"+parts[1]+"/"+parts[0];return formattedDate;}
function renderData(pageID){$('#whats-on-list').html('');let startIdx=(pageID-1)*6;let endIdx=startIdx+6;let dataToShow=filteredData.slice(startIdx,endIdx);if(dataToShow.length===0){$('#whats-on-list').append('<li>No Results Found</li>');renderPagination();return;}
dataToShow.forEach((post,index)=>{html='';let formattedDate=formatDate(post.date);html+=`<li class="xList-item item-1 news-parent-block" data-cat=''>`;html+=`<div class='r2g-xbox-sub-component r2g-sub-component news-listing-block text-align-left'  data-popup-image='false' data-large-image='' data-caption='' data-group='' data-cse_blockid='block-6615054499349___1558933145'>`;html+=`<div class="xbox-wrapper" data-aos="fade-up">`;html+=`<div class="image-wrapper">`;html+=`<a href="/news-events/${post.seo_url}.html" title="${post.page_heading}">`;html+=`<span style="display:none;"></span>`;html+=`<img src="${post.image_listing}" alt="${post.page_heading}" title="${post.page_heading}" loading="lazy" width="654" height="auto" />`;html+=`</a>`;html+=`</div>`;html+=`<div class="flex-container">`;html+=`<div class="content-wrapper">`;if(post.date||post.main_categories){html+=`<div class="whats-on-date-category">`;if(post.date){html+=`<div class="date">`;html+=`<p><span class="icon-d-054-calendar"></span>${formattedDate}</p>`;html+=`</div>`;}
html+=`<div class="category btn-wrapper">`;let postCategory=post.main_categories.split(",");$.each(postCategory,function(index,categoryID){let categoryName=getCategoryName(categoryID);if(categoryName){let catSeoUrl=encodeURI(categoryName.toLowerCase());html+=`<p><a href="/news-events/${catSeoUrl}/">${categoryName}</a></p>`;}});html+=`</div>`;html+=`</div>`;}
html+=`<h3><a href="/news-events/${post.seo_url}.html" title="${post.main_title}">${post.page_heading}</a></h3>`;if(post.short_description){html+=`<div class="feature-content">`;html+=`<p>${post.short_description}</p>`;html+=`</div>`;}
if(post.seo_url){html+=`<p class="read-more-wrapper"><a class="btn-tertiary" href="/news-events/${post.seo_url}.html" title="Read More">Read More</a></p>`;}
html+=`</div>`;html+=`</div>`;html+=`</div>`;html+=`</div>`;html+=`</li>`;$('#whats-on-list').append(html);});renderPagination();paginationFunction();initAOS();}
function renderPagination(){pagination='';let pg_prev=page-1;let pg_next=page+1;if(totalPages>1){$('#whatsOnPagination').show();pagination+=`<li class="prev pg-btn nav-btn ${page === 1 ? 'disabled' : ''}"><a data-page="${pg_prev}" title="Previous Page"></a></li>`;for(let i=1;i<=totalPages;i++){if(i===page){pagination+=`<li class="active pg-btn Page${i}"><a data-page="${i}" title="Page ${i}">${i}</a></li>`;}else{pagination+=`<li class="pg-btn Page${i}"><a data-page="${i}" title="Page ${i}">${i}</a></li>`;}}
pagination+=`<li class="next pg-btn nav-btn ${page === totalPages ? 'disabled' : ''}"><a data-page="${pg_next}" title="Next Page"></a></li>`;$('#whatsOnPagination').html(pagination);}else{$('#whatsOnPagination').hide();}}
function paginationFunction(){$('.pg-btn').click(function(e){let pageAnchor=$(this).find('a');let pageNumber=pageAnchor.data('page');page=pageNumber;$('html, body').animate({scrollTop:$('.search-filter').offset().top},1000,function(){renderData(pageNumber);let currentURL=new URL(window.location.href);let path=currentURL.pathname;let filename=path.split('/').pop();let newPath=path.substring(0,path.lastIndexOf('/')+1);let newURL=pageNumber===1?newPath:`${newPath}page${pageNumber}.html`;history.pushState(null,null,newURL);});});}
function initialzePageData(){filterByCategory('all');renderPagination();paginationFunction();initAOS();let currentURL=new URL(window.location.href);let path=currentURL.pathname;let filename=path.split('/').pop();let newPath=path.substring(0,path.lastIndexOf('/')+1);let category='';let year='';let pageNumber=1;let searchQuery='';let pathComponents=newPath.split('/');for(let i=0;i<pathComponents.length;i++){let component=pathComponents[i];if(component!=='news-events'&&!isNaN(component)){if(component.length===4){year=component;}}else if(component!=='news-events'&&component!=='search'){category=component;}}
if(path.startsWith('/news-events/search/')){let searchPath=path.substring('/news-events/search/'.length);searchQuery=decodeURIComponent(searchPath.replace(/\/$/,''));}
if(searchQuery){$('#filterSearch').val(searchQuery);}else if(category&&category!=='search'){let catId=getCategoryId(category);$('#filterCategory').find('option[value="'+catId+'"]').prop('selected',true);}else if(year&&year!=='news-events'){$('#filterYear').find('option[value="'+year+'"]').prop('selected',true);}}
fetchCategories().then(()=>{fetchData().then(()=>{initialzePageData();}).catch(error=>{console.error(error);});}).catch(error=>{console.error(error);});$('#filterCategory').change(function(){let selectedType=$(this).val();let categoryName=$(this).find('option:selected').data('url');if(selectedType==='all'){history.pushState(null,null,window.location.origin+'/news-events/');}else{let currentURL=window.location.href;let currentPath=currentURL.split('/').pop();let[filename,extension]=currentPath.split('.');let newURL;if(filename&&extension){newURL=window.location.origin+'/news-events/'+categoryName+'/';}else{newURL=window.location.origin+'/news-events/'+categoryName+'/';}
history.pushState(null,null,newURL);}
filterByCategory(selectedType);sortData();renderData(page);$('#filterYear').val($('#filterYear option:first').val());});$('#filterYear').change(function(){let selectedType=$(this).val();if(selectedType==='all'){history.pushState(null,null,window.location.origin+'/news-events/');}else{let currentURL=window.location.href;let currentPath=currentURL.split('/').pop();let[filename,extension]=currentPath.split('.');let newURL;if(filename&&extension){newURL=window.location.origin+'/news-events/'+selectedType+'/';}else{newURL=window.location.origin+'/news-events/'+selectedType+'/';}
history.pushState(null,null,newURL);}
filterByYear(selectedType);sortData();renderData(page);$('#filterCategory').val($('#filterCategory option:first').val());});$('#filterSearch').on('input',function(){$('#whats-on-list').html('');let searchQuery=$(this).val().trim().toLowerCase();let currentURL=new URL(window.location.href);let path=currentURL.pathname;let filename=path.split('/').pop();let newPath=path.substring(0,path.lastIndexOf('/')+1);let newURL;let isSearch=newPath.includes("/search/");if(searchQuery===''){newURL=isSearch?newPath.replace(/\/search\/([^\/]*)\//,'/'):currentURL.pathname;}else{if(isSearch){newURL=newPath.replace(/\/search\/([^\/]*)\//,`/search/${searchQuery}/`);}else{newURL=`${newPath}search/${searchQuery}/`;}}
history.pushState(null,null,newURL);searchData(searchQuery);renderData(page);});}});$(document).ready(function(){let $searchWrapper=$('.header__search').clone();$('.header__bottom').prepend($searchWrapper);});$(document).ready(function(){let $socialLinks=$('.header__more-menu-wrapper .social-media-links').clone();let $socialLinksLi=$socialLinks.wrapAll('<li></li>').parent();$socialLinksLi.addClass('social-link-wrapper');$('.header__bottom  .header__nav-items').append($socialLinksLi);});$('.header__search-submit').on('click',function(event){const searchFormState=$('body').hasClass('search-open');if(!searchFormState){event.preventDefault();$('body').addClass('search-open');}});$(document).on('click',function(event){if(!$(event.target).closest('.header__search').length){$('body').removeClass('search-open');}});$(document).ready(function(){$('.header__search-input').on('input',function(){if($(this).val().trim().length>0){$(this).closest('.header__search').addClass('has-text');}else{$(this).closest('.header__search').removeClass('has-text');}});$('.header__search-clear').on('click',function(){$('.header__search-input').val('');$('.header__search').removeClass('has-text');});});$(document).ready(function(){let exploreData={};$('.explore-categories').each(function(){let dataTitle=$(this).data('title');if(!exploreData[dataTitle]){exploreData[dataTitle]=[];}
exploreData[dataTitle].push($(this).find('.explore-slider').html());});$.each(exploreData,function(dataTitle,contents){if(contents.length<=1)return;$('.explore-categories[data-title="'+dataTitle+'"]').first().find('.explore-slider').append(contents.slice(1).join(''));$('.explore-categories[data-title="'+dataTitle+'"]').not(':first').remove();});setTimeout(function(){$('.explore-city-tabs').each(function(){$(this).find('.remove-parent').each(function(){let tabID=$(this).closest('.explore-categories').data('id');if(tabID!==undefined&&tabID!==""){$('.tab-title#'+tabID).hide();}});});$('.tab-title:visible > span').first().trigger('click');},250);});$(document).ready(function(){$('.home-featured-whats-on').each(function(){const $tabComponent=$(this);$tabComponent.find('.r2g-rotator-sub-component-sw').each(function(){$rotator=$(this);$rotatorItems=$rotator.find('.swiper-slide');if($rotatorItems.length<=$rotator.attr('data-slides-per-view-1366')){$rotator.addClass('low-slide-1366');}
if($rotatorItems.length<=$rotator.attr('data-slides-per-view-1600')){$rotator.addClass('low-slide-1600');}});});});