/home/bdqbpbxa/demo-subdomains/magnetiq.goodface.com.ua/js/script.js
// Here will be custom scripts

$(document).on('mouseenter', '.header .logo', changeLogoColor)

function changeLogoColor(event, customColor = false) {
  let filledPart = $('.header .logo .filled-part');
  let currColor = filledPart.attr('fill');
  let allColor = filledPart.attr("data-change-color").split(',');
  let nextIndex = allColor.indexOf(currColor) + 1 < allColor.length ? allColor.indexOf(currColor) + 1 : 0;

  let nextColor = customColor ? customColor : allColor[nextIndex];

  filledPart.attr('fill', nextColor);
}

// Open menu

$(document).on('click', '.menu-opener', function(event) {
  if (!isPc) {
    let currentText = $(this).find('.text').html();
    let newText = $(this).attr('data-change-text');

    $('.menu-opener').find('.text').text(newText);
    $('.menu-opener').attr('data-change-text', currentText);
    lazyload('.header');
  }

  if ($('.header-hidden-menu').hasClass("-active")) {
    unlockScroll();
  } else {
    lockScroll();
  }
  $('.menu-opener').toggleClass('-active');
  $('.header-hidden-menu').toggleClass('-active');
  $('.header').toggleClass('-mobile-menu-active');
  changeLogoColor(event, '#00D180');

})

$(document).on('mouseenter', '.header', function() {
  lazyload('.header');
})

// hide header when scroll down

let lastScroll = 0;
$(window).on("scroll", function() {
  let header = $(".header");
  let scrollTop = Math.floor($(window).scrollTop());
  lastScroll = Math.ceil(lastScroll);

  if (scrollTop >= lastScroll) {
    if (scrollTop - lastScroll === scrollTop || scrollTop <= 0) {} else {
      header.addClass("-hide");
    }
  } else {
    header.removeClass("-hide");
  }

  lastScroll = scrollTop;
});

// Create scrollbar for elements

function createCustomScrollbar() {
  // let overlayContainer = $('.header-hidden-menu__bottom');
  // if (overlayContainer.length) {

  //   overlayContainer.each(function() {
  //     $(this).overlayScrollbars({
  //       className: "os-theme-dark",

  //       scrollbars: {
  //         clickScrolling: true,
  //       },
  //     });
  //   })
  // }

  let pcOverlayContainers = $('.code-example__item-inner, .code-example__menu, .header-hidden-menu__bottom');

  if (pcOverlayContainers.length && isPc) {
    pcOverlayContainers.each(function() {
      $(this).overlayScrollbars({
        className: "os-theme-dark",
        scrollbars: {
          clickScrolling: true,
        },
      });
    })
  }
}

$(window).on('load', createCustomScrollbar);

// Close banner

$(document).on('click', '.rebrand-banner .close', function() {
  $('body').removeClass('-has-banner');
  $(this).closest('.rebrand-banner').remove();
})


// carousel-slider

function initCarouselSlider(container) {
  let sliderContainer = $(container);
  let SliderEl = sliderContainer.find('.slider');

  if (isPc) {
    let swiperSlides = sliderContainer.find('.swiper-wrapper').html();
    let paginationCount = sliderContainer.find('.swiper-wrapper .swiper-slide').length;
    sliderContainer.find('.swiper-wrapper').append(swiperSlides);
    for (i = 0; i < paginationCount; i++) {
      sliderContainer.find('.swiper-pagination').append(`
      <span class="swiper-pagination-bullet"></span>
      `)
    }
  }

  let calculatedSliderOptions = {
    rotate: 30,
    stretch: 50,
    depth: 100,
  };
  // if (window.innerWidth > 2500) {
  //   calculatedSliderOptions = {
  //     rotate: 20,
  //     stretch: 40,
  //     depth: 80,
  //   }
  // }

  if (window.innerWidth > 5000) {
    calculatedSliderOptions = {
      rotate: 15,
      stretch: 80,
      depth: 100,
    }
  }

  calculatedSliderOptions.stretch = ((calculatedSliderOptions.stretch / 1457) * 100) * (window.innerWidth / 100);
  calculatedSliderOptions.depth = ((calculatedSliderOptions.depth / 1457) * 100) * (window.innerWidth / 100);

  let slider = new Swiper(SliderEl[0], {
    loop: true,
    speed: 400,
    // initialSlide: 0,
    centeredSlides: true,
    slidesPerView: 'auto',
    effect: 'coverflow',
    spaceBetween: 16,
    pagination: {
      el: sliderContainer.find('.swiper-pagination')[0],
      type: 'bullets',
      clickable: true,
    },
    coverflowEffect: {
      rotate: 45,
      opacity: 0,
      stretch: 35, //35
      depth: 0,
      modifier: 1,
      slideShadows: false,
    },
    autoplay: {
      delay: 4000,
      disableOnInteraction: false,
      pauseOnMouseEnter: false,
      waitForTransition: false,
    },
    breakpoints: {
      1024: {        
        slidesPerView: 'auto',
        spaceBetween: 0,
        pagination: false,
        coverflowEffect: {
          rotate: calculatedSliderOptions.rotate,
          opacity: 0,
          stretch: calculatedSliderOptions.stretch, //50
          depth: calculatedSliderOptions.depth, //100
          modifier: 1,
          slideShadows: false,
        },
      },
      760: {
        slidesPerView: 2,
      }
    },
    on: {
      activeIndexChange: function(swiper) {
        let currentActiveIndex = sliderContainer.find('.swiper-slide').eq(swiper.activeIndex).attr('data-pagination-index');
        sliderContainer.find('.custom-pagination .swiper-pagination-bullet-active').removeClass('swiper-pagination-bullet-active');
        sliderContainer.find('.custom-pagination').find('.swiper-pagination-bullet').eq(currentActiveIndex).addClass('swiper-pagination-bullet-active');
      },
    },
  });

  $(document).on('click', '.carousel-slider .swiper-pagination-bullet', function() {
    let index = $(this).index();
    slider.slideToLoop(index);
  })
}

$(window).on('load', function() {
  if (!$('.carousel-slider').length) return;

  const useCasesObserver = new IntersectionObserver((entries) => {
    if (entries[0].isIntersecting) {
      initCarouselSlider(entries[0].target)
      useCasesObserver.unobserve(entries[0].target);
    }
  }, {
    rootMargin: "100px",
    threshold: 0,
  });


  $('.carousel-slider').each(function() {
    useCasesObserver.observe(this);
  })
});



/* reviews slider */

function initReviewsSlider(container) {
  let sliderContainer = $(container);
  let SliderEl = sliderContainer.find('.slider');
  let slider = new Swiper(SliderEl[0], {
    loop: true,
    speed: 700,
    centeredSlides: true,
    slidesPerView: 1,
    spaceBetween: 20,
    pagination: {
      el: sliderContainer.find('.swiper-pagination')[0],
      type: 'bullets',
      clickable: true,
    },
    navigation: {
      prevEl: sliderContainer.find('.swiper-navigation .prev')[0],
      nextEl: sliderContainer.find('.swiper-navigation .next')[0],
    },
    slideToClickedSlide: true,
    autoplay: {
      delay: 10000,
      disableOnInteraction: false,
      pauseOnMouseEnter: false,
      waitForTransition: false,
    },
    effect: 'coverflow',
    coverflowEffect: {
      rotate: 0,
      stretch: 0,
      depth: 0,
      modifier: 1,
      scale: 1,
      slideShadows: false,
    },
    breakpoints: {
      1024: {
        spaceBetween: 16,
        slidesPerView: 'auto',
        coverflowEffect: {
          rotate: 0,
          stretch: `10.5%`,
          depth: 0,
          modifier: 1,
          scale: 0.8,
          slideShadows: false,
        },
      },
      760: {
        slidesPerView: 2,
      }
    }
  });
}

$(window).on('load', function() {
  if (!$('.reviews-slider').length) return;

  const useCasesObserver = new IntersectionObserver((entries) => {
    if (entries[0].isIntersecting) {
      initReviewsSlider(entries[0].target)
      useCasesObserver.unobserve(entries[0].target);
    }
  }, {
    rootMargin: "100px",
    threshold: 0,
  });


  $('.reviews-slider').each(function() {
    useCasesObserver.observe(this);
  })
});


/* mobile slider */

function initMobileSlider(container) {
  let sliderContainer = $(container);
  let SliderEl = sliderContainer.find('.slider');
  let slider = new Swiper(SliderEl[0], {
    loop: true,
    speed: 700,
    slidesPerView: 1,
    spaceBetween: 20,
    pagination: {
      el: sliderContainer.find('.swiper-pagination')[0],
      type: 'bullets',
      clickable: true,
    },
    autoHeight: true,
  });
}

$(window).on('load', function() {
  if (!$('.mobile-slider').length || isPc) return;

  const useCasesObserver = new IntersectionObserver((entries) => {
    if (entries[0].isIntersecting) {
      initMobileSlider(entries[0].target)
      useCasesObserver.unobserve(entries[0].target);
    }
  }, {
    rootMargin: "100px",
    threshold: 0,
  });


  $('.mobile-slider').each(function() {
    useCasesObserver.observe(this);
  })
});


// showreel functionality
const showreelVideoContainer = $('#showreel');
let vimeoPlayingStatus = false;

$(window).on('load', function() {



  if (!$('.pinned-video').length) return;
  const pinVideoObserver = new IntersectionObserver((entries) => {
    if (entries[0].isIntersecting) {
      animatePinnedVideoSection();
      createVimeoVideo();
      pinVideoObserver.unobserve(entries[0].target);
    }
  }, {
    rootMargin: "100px",
    threshold: 0,
  });


  $('.pinned-video').each(function() {
    pinVideoObserver.observe(this);
  })
})

function createVimeoVideo() {
  $(document).on('click', '.video-toolbar .play', function() {
    toggleVideoPlayStatus();
  })

  $(document).on('click', '.video-toolbar .mute', function() {
    toggleVideoMuteStatus();
  })


  function toggleVideoPlayStatus() {
    if (vimeoPlayingStatus) {
      vimeoPlayer.pause();
    } else {
      vimeoPlayer.play();
    }
  }

  function updateVideoProgressbar(percent) {
    const progressbar = showreelVideoContainer.closest('.pinned-video__inner').find('.progressbarLine');
    const length = progressbar[0].getTotalLength();
    const offset = length * (1 - percent);
    progressbar.css({
      'stroke-dasharray': length,
      'stroke-dashoffset': offset
    });
  }

  function toggleVideoMuteStatus() {
    const muteButton = showreelVideoContainer.closest('.pinned-video__inner').find('.mute');
    vimeoPlayer.getMuted().then(function(muted) {
      if (muted) {
        vimeoPlayer.setMuted(false);
        muteButton.removeClass('-muted');
      } else {
        vimeoPlayer.setMuted(true);
        muteButton.addClass('-muted');
      }
    }).catch(function(error) {});

  }

  function totalResetVideo() {
    const videoContainer = showreelVideoContainer.closest('.pinned-video__inner');
    vimeoPlayer.pause();
    videoContainer.find('.-running').removeClass('-running');
    videoContainer.find('.-muted').removeClass('-muted');
    videoContainer.removeClass('-show-toolbar').removeClass('-show-button');
  }

  const vimeoPlayer = new Vimeo.Player('showreel', {
    id: 927726354,
    controls: false,
    muted: false,
    title: false,
    height: '100%',
    autoplay: false,
    // responsive: true,
  });

  vimeoPlayer.on('play', function() {
    vimeoPlayingStatus = true;
    showreelVideoContainer.closest('.pinned-video__inner').find('.video-toolbar .play').addClass('-running');
    showreelVideoContainer.closest('.pinned-video__inner').removeClass('-video-ended');
  });

  vimeoPlayer.on('timeupdate', function(params) {
    updateVideoProgressbar(params.percent)
    if (params.seconds >= params.duration - 0.5) {
      showreelVideoContainer.closest('.pinned-video__inner').addClass('-video-ended');
    }
  });

  vimeoPlayer.on('pause', function() {
    vimeoPlayingStatus = false;
    showreelVideoContainer.closest('.pinned-video__inner').find('.video-toolbar .play').removeClass('-running');
  })

  vimeoPlayer.on('ended', function() {
    vimeoPlayingStatus = false;
    showreelVideoContainer.closest('.pinned-video__inner').find('.video-toolbar .play').removeClass('-running');
    // showreelVideoContainer.closest('.pinned-video__inner').removeClass('-show-toolbar');
    // showreelVideoContainer.closest('.pinned-video__inner').addClass('-show-button');
    showreelVideoContainer.closest('.pinned-video__inner').addClass('-video-ended');
    updateVideoProgressbar(0)
  })

  $(document).on('click', '.play-button', function() {
    toggleVideoPlayStatus();
    $(this).closest('.pinned-video__inner').addClass('-show-toolbar');
    $(this).closest('.pinned-video__inner').removeClass('-show-button');
  })
}

// Copy link

$(".copy-button").on("click", function() {
  var copyText = $(this).attr('data-copy');
  if (!copyText && $(this).closest('.code-example__item').length) {
    var codeElement = $(this).closest('.code-example__item').find('.code-for-copy code');
    var codeLines = codeElement.map(function() {
      return $(this).text();
    }).get();
    copyText = codeLines.join('\n');
  }
  var copyInput = $('<textarea id="copyInput"></textarea>').val(copyText);
  $(this).addClass("-active");
  $('body').append(copyInput);

  var copyInputDOM = document.getElementById('copyInput');
  copyInputDOM.select();
  document.execCommand('copy');

  setTimeout(() => {
    $(this).removeClass("-active");
    copyInputDOM.remove();
  }, 1500);
});