function is_touch_enabled(){
return('ontouchstart' in window) ||
(navigator.msMaxTouchPoints > 0);
}
let deviceistouch=is_touch_enabled();
(function($){
'use strict';
let m_debugGsap=true;
let m_debugScrollTimeOut=false;
let m_debugOffcanvas=false;
let m_scrollTriggerAction=false;
let m_scrollTriggerDelay=1000;
let m_gsapAnimationsEnabled=true;
function sdkScrollTriggerRefresh($origin=null){
if(m_scrollTriggerAction==false&&ScrollTrigger!==null){
ScrollTrigger.refresh();
m_scrollTriggerAction=true;
if(m_debugScrollTimeOut){
console.log('scroll refreshed :', $origin);
}
setTimeout(()=> {
m_scrollTriggerAction=false;
}, m_scrollTriggerDelay)
}}
onresize=(event)=> {
sdkScrollTriggerRefresh();
}
window.addEventListener('DiadaoWpSdkStarted', event=> {
startScript();
});
function startScript(){
if(deviceistouch){
jQuery('html').addClass('touchevents');
}else{
const customCursor=jQuery('.customcursor');
const customCursorLabel=jQuery('.customcursor__label');
const customCursorIcon=jQuery('.customcursor__icon');
const customCursorDefautlLabel=customCursorLabel.clone().children().remove().end().text();
jQuery('body').on("mousemove", cursorControl);
function cursorControl(e){
let x=e.clientX;
let y=e.clientY;
customCursor.css({'top': y + 'px', 'left':x + 'px'});
}
jQuery('.video-wrapper a.button-video').attr('data-customcursoricon', 'play');
const linksWithCustomCursor='.video-wrapper a.button-video, .customcursorlink, [data-customcursorlabel], a[data-fancybox], .gridimage__partners .list__item__link, .dia-smartgallery a[data-fancybox], .nouvelart .list__item__link, .commoncard__url';
jQuery(document).on('mouseenter', linksWithCustomCursor, (e)=> {
const uselabel=jQuery(e.currentTarget).attr('data-customcursorlabel');
if(typeof uselabel!=='undefined'){
customCursor.addClass('labelonly');
customCursorLabel.text((typeof uselabel=='string'&&uselabel.length > 0) ? uselabel:customCursorDefautlLabel);
}else{
customCursor.removeClass('labelonly');
}
const othericon=jQuery(e.currentTarget).attr('data-customcursoricon');
customCursor.attr('data-icon', (typeof othericon!=='undefined') ? othericon:'');
customCursor.addClass('active');
});
jQuery(document).on('mouseleave', linksWithCustomCursor, (e)=> {
customCursor.removeClass('active');
});
}
if(m_gsapAnimationsEnabled){
if(m_debugGsap) console.log('-> gsap init ');
document.querySelector('body').classList.add('sdk-dom-content-loaded');
let navbar=document.querySelector('#diadao-navbar');
if(document.querySelector('body').classList.contains('device-desktop')){
const lenis=new Lenis();
lenis.on('scroll', ScrollTrigger.update);
gsap.ticker.add((time)=> {
lenis.raf(time * 1000);
})
gsap.ticker.lagSmoothing(0);
window.addEventListener('t_sdkbsOffCanvasChanged', (e)=> {
if(m_debugOffcanvas) console.log("event t_sdkbsOffCanvasChanged received", e.detail);
if(e.detail > 0){
stopLenis();
}
if(e.detail==0){
startLenis();
}})
window.addEventListener('fancyBoxOpen', (e)=> {
if(!document.querySelector('body').classList.contains('sdkbs-panel-opened')){
stopLenis();
}});
window.addEventListener('fancyBoxClose', (e)=> {
if(!document.querySelector('body').classList.contains('sdkbs-panel-opened')){
startLenis();
}});
function stopLenis(){
lenis.stop();
}
function startLenis(){
lenis.start();
}
window.addEventListener('anchorScrollTo', (e)=> anchorScrollTo(e.detail) );
function anchorScrollTo(anchorTarget){
lenis.scrollTo(anchorTarget, {offset: -(navbar.offsetHeight), lerp: 0.1})
}
let anchorLinks=document.querySelectorAll('.sdk-anchor-link');
let navbar=document.querySelector('#diadao-navbar');
if(anchorLinks.length > 0){
anchorLinks.forEach(function(anchorLink){
anchorLink.addEventListener('click', (e)=> {
e.preventDefault();
const anchorLinkHref=e.currentTarget.attributes.href.value;
anchorScrollTo(anchorLinkHref);
})
})
}
let filtersLinks=document.querySelectorAll('.nav-link.link-filter');
if(filtersLinks.length > 0){
filtersLinks.forEach(function(filtersLink){
filtersLink.addEventListener('click', (e)=> {
e.preventDefault();
lenis.scrollTo('.dia-smartgallery__wrapper', {offset: -(navbar.offsetHeight)});
})
})
}}
if(document.querySelector('body').classList.contains('device-mobile')){
let filtersLinks=document.querySelectorAll('.nav-link.link-filter');
let target=document.querySelector('.offers-listing');
if(filtersLinks.length > 0){
filtersLinks.forEach(function(filtersLink){
filtersLink.addEventListener('click', (e)=> {
let elementPosition=target.getBoundingClientRect().top + document.documentElement.scrollTop;
console.log('elementPosition: ', elementPosition);
let offsetPosition=elementPosition - navbar.offsetHeight;
console.log('offsetPosition: ', offsetPosition);
e.preventDefault();
window.scrollTo({
top:offsetPosition,
left: 0,
behavior: "smooth",
})
})
})
}
window.addEventListener('anchorScrollTo', (e)=> anchorScrollToMobile(e.detail) );
function anchorScrollToMobile(anchorTarget){
let anchorTargetElement=document.getElementById(anchorTarget.replace('#', ''));
let elementPosition=anchorTargetElement.getBoundingClientRect().top - navbar.offsetHeight;
if(anchorTargetElement!==undefined&&anchorTargetElement!==null){
window.scrollTo({
top:elementPosition,
left: 0,
behavior: "smooth",
})
}}
jQuery(document).on('click', '.sdk-anchor-link', (e)=> {
e.preventDefault();
const anchorLinkHref=jQuery(e.currentTarget).attr('href');
anchorScrollToMobile(anchorLinkHref);
});
}
let myCollapsible=document.querySelectorAll('.accordion-collapse');
if(myCollapsible.length > 0){
myCollapsible.forEach(function(elem){
elem.addEventListener('hidden.bs.collapse', function (){
sdkScrollTriggerRefresh('accordion closed')
})
elem.addEventListener('shown.bs.collapse', function (){
sdkScrollTriggerRefresh('accordion opened')
})
})
}
const $element=jQuery(".lightwidget-widget");
if($element.length > 0){
var lastHeight=$element.css('height');
function checkForChanges(){
if($element.css('height')!=lastHeight){
lastHeight=$element.css('height');
sdkScrollTriggerRefresh('instagram resize');
}
setTimeout(checkForChanges, 500);
}
checkForChanges();
}
jQuery('.lightwidget-widget').on('load', sdkScrollTriggerRefresh);
window.addEventListener('initUniteGallery', event=> {
sdkScrollTriggerRefresh('initUniteGallery');
const uniteGallery=document.querySelector('.dia-smartgallery__medias');
uniteGallery.classList.add('gallery-loaded');
});
window.addEventListener('sdkGformRefresh', sdkScrollTriggerRefresh('sdkGformRefresh') );
if(deviceistouch){
jQuery('.langmenu__toggle').on('click', (evt)=> {
console.log('click toggle');
jQuery(evt.currentTarget).siblings('.langmenu__dropdown').toggleClass('open');
});
$('body').on('click.closeLangMenu', (e)=> {
if(!$(e.target).hasClass('langmenu__toggle')){
$('.langmenu__dropdown').removeClass('open');
}});
document.addEventListener("scroll", (e)=> {
$('.langmenu__dropdown').removeClass('open');
});
}
let mm=gsap.matchMedia(),
breakPoint=992
const banner=document.querySelector('.banner');
if(banner){
const h1TitleElement=document.querySelector('.banner__h1-title');
const bannerContent=banner.querySelector('.banner__content');
const body=document.querySelector('body');
mm.add("(min-width: 992px)", ()=> {
const bigTitleElement=document.querySelector('.banner__big-title');
const bannerTimeline=gsap.timeline();
if(bigTitleElement){
bannerTimeline.fromTo(bigTitleElement, { autoAlpha: 0, y: -80 }, { autoAlpha: 1, y: 0, duration: 0.5 }, "<");
}
if(h1TitleElement){
bannerTimeline.fromTo(h1TitleElement, { autoAlpha: 0, yPercent: -100 }, { autoAlpha: 1, yPercent: 0 }, "<");
}
const bannerScrubTimeline=gsap.timeline({
scrollTrigger: {
trigger: banner,
start: "top top",
end: 'bottom 10%',
ease: "power1.inOut",
toggleActions: "play none none reverse",
scrub: true,
},
})
if(bannerContent){
bannerScrubTimeline.fromTo(bannerContent, { autoAlpha: 1, y: 0 }, { autoAlpha: 0, y: -60 }, "<");
}});
mm.add("(max-width: 991px)", ()=> {
const bannerScrubTimeline=gsap.timeline({
scrollTrigger: {
trigger: banner,
start: "top top",
end: 'bottom 10%',
ease: "power1.inOut",
toggleActions: "play none none reverse",
scrub: true,
},
});
if(bannerContent){
bannerScrubTimeline.fromTo(bannerContent, { autoAlpha: 1, y: 0 }, { autoAlpha: 0, y: 60 }, "<");
}
if(deviceistouch&&jQuery('.banner .button-video')){
bannerScrubTimeline.fromTo(jQuery('.banner .button-video')[0], { autoAlpha: 1, marginBottom: 0 }, { autoAlpha: 0, marginBottom: -40 }, "<");
}});
}
const fadeUp=gsap.utils.toArray('.anim_fade_up')
fadeUp.forEach((item, i)=> {
const fadeUpTimeline=gsap.timeline({
scrollTrigger: {
trigger: item,
start: "top 80%",
ease: "power1.inOut",
toggleActions: "play none none reverse",
},
})
fadeUpTimeline.fromTo(item, { autoAlpha: 0, y: 80 }, { autoAlpha: 1, y: 0 })
});
jQuery('.revealOnScroll').each((i, el)=> {
let revealPercent=jQuery(el).attr('data-revealpercent');
revealPercent=(typeof revealPercent=='undefined') ? 75:parseFloat(revealPercent);
let withmarker=jQuery(el).attr('data-revealmarker');
withmarker=(typeof withmarker!=='undefined');
ScrollTrigger.create({
trigger: el,
start: 'top '+revealPercent+'%',
end: 'bottom top',
markers: withmarker,
onEnter: (self)=> {
jQuery(self.trigger).addClass('reveal');
},
onEnterBack: (self)=> {
jQuery(self.trigger).addClass('reveal');
},
onLeaveBack: (self)=> {
const $thiselement=jQuery(self.trigger);
if(typeof $thiselement.attr('data-noleave')=='undefined') $thiselement.removeClass('reveal');
},
onLeave: (self)=> {
const $thiselement=jQuery(self.trigger);
if(typeof $thiselement.attr('data-noleave')=='undefined') $thiselement.removeClass('reveal');
}});
});
if(typeof gsap!=='undefined'){
const m_debugParallax=false;
let parallaxIsMobile=((typeof window.matchMedia!="undefined"||typeof window.msMatchMedia!="undefined")&&window.matchMedia("(max-width: 991px)").matches);
console.log(parallaxIsMobile);
function updateParallax(){
jQuery('.isParallax').each((i, item)=> {
const myItemParallax=jQuery(item);
let withmarker=myItemParallax.attr('data-parallaxmarker');
withmarker=(typeof withmarker!=='undefined');
let paratarget=myItemParallax.attr('data-parallaxtarget');
if(typeof paratarget!=='undefined'){
if(paratarget=="self"){
paratarget=item;
}else{
paratarget=myItemParallax.closest(paratarget);
if(paratarget.length > 0){
paratarget=paratarget[0];
}else{
paratarget=myItemParallax.parent()[0];
}}
}else{
paratarget=myItemParallax.parent()[0];
}
if(typeof myItemParallax.data('timeline')!=='undefined'){
myItemParallax.data('timeline').kill();
}
myItemParallax.data('timeline', gsap.timeline({
scrollTrigger: {
trigger: paratarget,
start: "top bottom",
end: "bottom top",
ease: "power1.inOut",
toggleActions: "play none none reverse",
scrub: true,
markers: withmarker,
},
}));
let paraYspeed=myItemParallax.attr('data-parallaxspeed');
paraYspeed=(typeof paraYspeed=='undefined') ? 1:parseFloat(paraYspeed);
if((typeof window.matchMedia!="undefined"||typeof window.msMatchMedia!="undefined")&&window.matchMedia("(max-width: 991px)").matches){
let paraYspeedmobile=myItemParallax.attr('data-parallaxspeed-mobile');
paraYspeed=(typeof paraYspeedmobile=='undefined') ? paraYspeed:parseFloat(paraYspeedmobile);
}
let paraRotatespeed=myItemParallax.attr('data-parallaxrotate');
paraRotatespeed=(typeof paraRotatespeed=='undefined') ? 0:parseFloat(paraRotatespeed);
myItemParallax.data('timeline').fromTo(item, { yPercent: 10*paraYspeed, rotation:10*paraRotatespeed }, { yPercent: -10*paraYspeed, rotation:-10*paraRotatespeed });
});
}
if(m_debugParallax){
$(window).on('resize', updateParallax);
}else{
$(window).on('resize', ()=> {
if((typeof window.matchMedia!="undefined"||typeof window.msMatchMedia!="undefined")&&window.matchMedia("(max-width: 991px)").matches){
if(!parallaxIsMobile){
updateParallax();
parallaxIsMobile=true;
}}else{
if(parallaxIsMobile){
updateParallax();
parallaxIsMobile=false;
}}
});
}
updateParallax();
}
jQuery('.videobapt').each((e,el)=> {
const $thisvideo=jQuery(el);
const attrSrc=$thisvideo.attr('src');
if(typeof attrSrc=='undefined'||(typeof attrSrc!=='undefined'&&attrSrc.length < 1)){
let attrDataSrc=$thisvideo.attr('data-src');
if(typeof attrDataSrc!==undefined){
if(attrDataSrc.endsWith('==/stream')||attrDataSrc.endsWith('==/delivery')){
attrDataSrc +=(jQuery(window).width() < 600) ? '?q=720':'?q=1080';
}
$thisvideo.attr('src', attrDataSrc);
$thisvideo[0].src=attrDataSrc;
$thisvideo[0].type="video/mp4";
$thisvideo[0].load();
}}
});
const $loadervideo=$('.home_loader > video').eq(0);
function init_timeline_swiper_sdk_template(){
console.log('init_timeline_swiper_sdk_template');
$('.home_timeline').each((e,el)=> {
const $thistimeline=$(el);
const $thosetitles=$thistimeline.find('.home_timeline__swiper');
const $thosevideos=$thistimeline.find('.home_timeline__videos');
if($thosetitles&&$thosevideos&&!$thosetitles.hasClass('is-initialized')&&!$thosevideos.hasClass('is-initialized')){
const titlesSwiper=new Swiper(
$thosetitles[0],
{
init: false,
spaceBetween: 0,
slidesPerView: 1,
speed: 600,
loop: false,
centeredSlides: false,
centerInsufficientSlides: true,
clickable: false,
watchSlidesProgress: true,
preventClicksPropagation: true,
simulateTouch: true,
roundLengths: true,
touchEventsTarget: 'container',
slideToClickedSlide: true,
allowTouchMove: false,
pagination: false,
effect: "slide",
on: {
init: function (e){
$(e.el).addClass('is-initialized');
},
sliderFirstMove: function(thisswiper){
jQuery(thisswiper.el).parent().find('.home_timeline__videos')[0].swiper.autoplay.stop();
},
click: function(thisswiper){
jQuery(thisswiper.el).parent().find('.home_timeline__videos')[0].swiper.autoplay.stop();
}}
}
);
const videosSwiper=new Swiper(
$thosevideos[0],
{
init: false,
spaceBetween: 0,
slidesPerView: 1,
slidesPerGroup: 1,
speed: 600,
loop: false,
centeredSlides: false,
centerInsufficientSlides: true,
clickable: false,
watchSlidesProgress: true,
preventClicksPropagation: true,
simulateTouch: true,
roundLengths: true,
longSwipes: false,
touchEventsTarget: 'container',
allowTouchMove: deviceistouch,
pagination: false,
keyboard: true,
autoplay: {
delay: 6000,
disableOnInteraction: true,
pauseOnMouseEnter: false,
waitForTransition: true,
},
navigation: {
nextEl: $thosevideos.find('.home_timeline__videos__arrow--next')[0],
prevEl: $thosevideos.find('.home_timeline__videos__arrow--prev')[0],
},
effect: "fade",
on: {
init: function (e){
$(e.el).addClass('is-initialized');
},
activeIndexChange: function(e){
const indextoplay=e.activeIndex;
$(e.el).find('hls-video').removeAttr('autoplay').each((evtvideo, elvideo)=> {
if(evtvideo==indextoplay){
elvideo.currentTime=0;
elvideo.play();
}else{
elvideo.pause();
}});
}}
}
);
titlesSwiper.init();
videosSwiper.init();
videosSwiper.controller.control=titlesSwiper;
titlesSwiper.controller.control=videosSwiper;
ScrollTrigger.create({
trigger: el,
start: '-10% top',
end: '90% top',
markers: false,
onEnter: (self)=> {
const $myvideos=jQuery(self.trigger).find('.home_timeline__videos');
const myswiper=$myvideos[0].swiper;
myswiper.autoplay.resume();
$myvideos.find('hls-video').eq(myswiper.activeIndex)[0].play();
},
onEnterBack: (self)=> {
const $myvideos=jQuery(self.trigger).find('.home_timeline__videos');
const myswiper=$myvideos[0].swiper;
myswiper.autoplay.resume();
$myvideos.find('hls-video').eq(myswiper.activeIndex)[0].play();
},
onLeaveBack: (self)=> {
const $myvideos=jQuery(self.trigger).find('.home_timeline__videos');
const myswiper=$myvideos[0].swiper;
myswiper.autoplay.pause();
$myvideos.find('hls-video').eq(myswiper.activeIndex)[0].pause();
},
onLeave: (self)=> {
const $myvideos=jQuery(self.trigger).find('.home_timeline__videos');
const myswiper=$myvideos[0].swiper;
myswiper.autoplay.pause();
$myvideos.find('hls-video').eq(myswiper.activeIndex)[0].pause();
}});
}});
}
function slowlyremoveLoader(){
$('.home_timeline').each((e,el)=> {
const $thosevideos=$(el);
$thosevideos.find('hls-video').eq(0)[0].play();
$thosevideos.find('hls-video').eq(0)[0].onloadeddata=(event)=> {
event.currentTarget.play();
};});
init_timeline_swiper_sdk_template();
gsap.to(".home_loader",
{
autoAlpha: 0,
duration: .6,
onComplete: ()=> {
$('.home_loader').remove();
}}
);
$('body').removeClass('loaderdisplayed');
}
if($loadervideo===undefined||!$loadervideo.length){
console.log('no video');
$('.home_timeline').each((e,el)=> {
const $thosevideos=$(el);
$thosevideos.find('hls-video').eq(0).attr('autoplay','');
$thosevideos.find('hls-video')[0].play();
});
$('.home_loader').remove();
$('body').removeClass('loaderdisplayed');
init_timeline_swiper_sdk_template();
}else{
$loadervideo[0].play();
$loadervideo[0].onloadeddata=(event)=> {
$('.home_loader').addClass('videoplay');
};
$loadervideo[0].addEventListener("play", (event)=> {
$('.home_loader').addClass('videoplay');
});
if($loadervideo[0].currentTime > 0&&!$loadervideo[0].paused&&!$loadervideo[0].ended&&$loadervideo[0].readyState > 2) $('.home_loader').addClass('videoplay');
$loadervideo[0].addEventListener("ended", (event)=> {
slowlyremoveLoader();
});
if($loadervideo[0].ended) slowlyremoveLoader();
}
jQuery('.vueduciel').each((e,el)=> {
jQuery(el).find('video, hls-video').removeAttr('loop');
const $myvideo=jQuery(el).find('video, hls-video');
$myvideo[0].currentTime=0;
jQuery(el).find('video, hls-video').on('loadstart', function (e){
const $myvideo=jQuery(e.currentTarget)[0];
$myvideo.currentTime=0;
$myvideo.play();
$myvideo.pause();
});
mm.add("(min-width: 992px)", ()=> {
ScrollTrigger.create({
trigger: el,
start: 'top top',
end: 'bottom top',
onEnter: (self)=> {
const $thisel=jQuery(self.trigger).find('.vueduciel__part2');
$thisel.addClass('reveal');
$thisel.find('video, hls-video')[0].currentTime=0;
$thisel.find('video, hls-video')[0].play();
},
onEnterBack: (self)=> {
},
onLeaveBack: (self)=> {
jQuery(self.trigger).find('.vueduciel__part2').removeClass('reveal');
},
onLeave: (self)=> {
}});
});
mm.add("(max-width: 991px)", ()=> {
ScrollTrigger.create({
trigger: jQuery(el).find('.vueduciel__part2')[0],
start: 'top 75%',
end: 'bottom top',
onEnter: (self)=> {
const $thisel=jQuery(self.trigger);
$thisel.find('video, hls-video')[0].currentTime=0;
$thisel.find('video, hls-video')[0].play();
$thisel.addClass('reveal');
},
onEnterBack: (self)=> {
},
onLeaveBack: (self)=> {
jQuery(self.trigger).removeClass('reveal');
},
onLeave: (self)=> {
}});
});
});
if($('.dia-filters').length > 0){
ScrollTrigger.create({
trigger: $('.dia-filters').parent()[0],
start: "top 72px",
end: 'bottom top',
onLeave: ()=> { $('#diadao-navbar').removeClass('opaque'); },
onLeaveBack: ()=> { $('#diadao-navbar').removeClass('opaque'); },
onEnter: ()=> { $('#diadao-navbar').addClass('opaque') },
onEnterBack: ()=> { $('#diadao-navbar').addClass('opaque') }});
}
jQuery(document).on('focus', '.ginput_container input[type="text"], .ginput_container input[type="tel"], .ginput_container input[type="email"], .ginput_container textarea', (e)=> {
jQuery(e.currentTarget).closest('.gfield').find('.gfield_label').addClass('isfocused');
});
jQuery(document).on('blur', '.ginput_container input[type="text"], .ginput_container input[type="tel"], .ginput_container input[type="email"], .ginput_container textarea', (e)=> {
jQuery(e.currentTarget).closest('.gfield').find('.gfield_label').removeClass('isfocused');
});
setTimeout(function(){
jQuery(window).trigger('resize');
},200);
}}
})(jQuery);