HEX
Server: Apache
System: Linux server-674799.igrow.ws 5.14.0-611.27.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 4 04:40:11 EST 2026 x86_64
User: elrashedytravel (1025)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/elrashedytravel/public_html/wp-content/themes/cafe-coffee-charm/assets/js/theme.js
// Menu Functions
function coffee_tea_openNav() {
    jQuery(".sidenav").addClass('show');
  }
  
  function coffee_tea_closeNav() {
    jQuery(".sidenav").removeClass('show');
  }
  
  /////////////////////// Focus handling ///////////////////////
  (function(window, document) {
    function coffee_tea_handleMobileMenuNavigation() {
      document.addEventListener('keydown', function(e) {
        if (window.innerWidth > 991) return;
        const nav = document.querySelector('.sidenav.show');
        if (!nav) return;
        const focusableElements = Array.from(nav.querySelectorAll(
          'a, button, [tabindex="0"], input, [tabindex]:not([tabindex="-1"])'
        )).filter(el => el.offsetParent !== null);
  
        if (focusableElements.length === 0) return;
  
        const firstElement = focusableElements[0];
        const lastElement = focusableElements[focusableElements.length - 1];
        const activeElement = document.activeElement;
  
        if (e.key === 'Tab') {
          if (!e.shiftKey && activeElement === lastElement) {
            e.preventDefault();
            firstElement.focus();
          } 
          else if (e.shiftKey && activeElement === firstElement) {
            e.preventDefault();
            lastElement.focus();
          }
          else if (!nav.contains(activeElement)) {
            e.preventDefault();
            firstElement.focus();
          }
          return;
        }
  
        if (e.key === 'Tab' && e.shiftKey) {
          const activeElement = document.activeElement;
  
          if (activeElement.closest('.dropdown-menu')) {
            e.preventDefault();
            
            //current submenu
            const currentSubmenu = activeElement.closest('.dropdown-menu');
            const submenuItems = Array.from(currentSubmenu.querySelectorAll('a, button, [tabindex="0"]'))
              .filter(el => el.offsetParent !== null);
            const currentIndex = submenuItems.indexOf(activeElement);
            if (currentIndex > 0) {
              submenuItems[currentIndex - 1].focus();
            } else {
              const parentDropdown = currentSubmenu.closest('.dropdown, .page_item_has_children');
              if (parentDropdown) {
                // Find all focusable elements in parent
                const allFocusable = Array.from(parentDropdown.querySelectorAll('a, button, [tabindex="0"]'))
                  .filter(el => el.offsetParent !== null);
                
                // Filter to only direct children of parentDropdown
                const parentItems = allFocusable.filter(el => el.parentElement === parentDropdown);
                
                if (parentItems.length > 0) {
                  parentItems[0].focus();
                }
              }
            }
          }
        }
      });
    }
  
    document.addEventListener('DOMContentLoaded', function() {
      coffee_tea_handleMobileMenuNavigation();
  
      document.addEventListener('focusin', function(e) {
        if (window.innerWidth > 991) return;
        
        const focusedItem = e.target;
        const submenu = focusedItem.closest('.dropdown-menu');
        if (submenu) {
          submenu.style.display = 'block';
          submenu.classList.add('show');
        }
      });
    });
  })(window, document);
  
  /////////////////////// end ///////////////////////
  
  
  jQuery(function($) {
    "use strict";
  
    // Scroll to top button
    let scrollTopButton = $('#scrolltop');
    $(window).scroll(function() {
      if ($(window).scrollTop() > 300) {
        scrollTopButton.addClass('scroll');
      } else {
        scrollTopButton.removeClass('scroll');
      }
    });
    scrollTopButton.on('click', function(e) {
      e.preventDefault();
      $('html, body').animate({ scrollTop: 0 }, '300');
    });
  
    // Loading screen (preloader)
    window.addEventListener('load', function() {
      $(".loading").delay(2000).fadeOut("slow");
    });
  
    /////////////////////// Menu events binding ///////////////////////
  
    $(document).ready(function () {
      /*--- adding dropdown class to menu -----*/
      $("ul.sub-menu,ul.children").parent().addClass("dropdown");
      $("ul.sub-menu,ul.children").addClass("dropdown-menu");
      $("ul#menuid li.dropdown a,ul.children li.dropdown a").addClass("dropdown-toggle");
      $("ul.sub-menu li a,ul.children li a").removeClass("dropdown-toggle");
      $('nav li.dropdown > a, .page_item_has_children a').append('<span class="caret"></span>');
      $('a.dropdown-toggle').attr('data-toggle', 'dropdown');
  
      /*-- Mobile menu --*/
      if ($('#site-navigation').length) {
          $('#site-navigation .menu li.dropdown,li.page_item_has_children').append(function () {
              return '<i class="fas fa-caret-down abc" aria-hd="true"></i>';
          });
          $('#site-navigation .menu li.dropdown .fas,li.page_item_has_children .fas').on('click', function () {
              $(this).parent('li').children('ul').slideToggle().toggleClass('show');
          });
      }
  
      /*-- tooltip --*/
      $('[data-toggle="tooltip"]').tooltip();
  
      /*-- Button Up --*/
      var btnUp = $('<div/>', { 'class': 'btntoTop' });
      btnUp.appendTo('body');
      $(document).on('click', '.btntoTop', function (e) {
          e.preventDefault();
          $('html, body').animate({
              scrollTop: 0
          }, 700);
      });
  
      $(window).on('scroll', function () {
          if ($(this).scrollTop() > 200)
              $('.btntoTop').addClass('active');
          else
              $('.btntoTop').removeClass('active');
      });
  
      /*-- Reload page when width is between 320 and 768px and only from desktop */
      var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ? true : false;
      $(window).on('resize', function () {
          var win = $(this); //this = window
          if (win.width() > 320 && win.width() < 991 && isMobile == false && !$("body").hasClass("elementor-editor-active")) {
              location.reload();
          }
      });
      });
  
    /////////////////////// end ///////////////////////

    
    // Scroll to top button
    var btn = $('#scrolltop');
    $(window).scroll(function() {
        if ($(window).scrollTop() > 300) {
            btn.addClass('scroll');
        } else {
            btn.removeClass('scroll');
        }
    });

    btn.on('click', function(e) {
        e.preventDefault();
        $('html, body').animate({scrollTop: 0}, '300');
    });

    // Loading screen fade out
    window.addEventListener('load', function() {
        $(".loading").delay(2000).fadeOut("slow");
    });

    // Sticky header
    $(window).scroll(function() {
        var sticky = $('.sticky-header'),
            scroll = $(window).scrollTop();

        if (scroll >= 100) sticky.addClass('fixed-header');
        else sticky.removeClass('fixed-header');
    });


  
});



// slider
jQuery(document).ready(function($){
  var owl = $('#slider-section .owl-carousel');
  owl.owlCarousel({
      margin: 20,
      nav: false,
      autoplay: false,
      lazyLoad: false,
      autoplayTimeout: 3000,
      loop: true,
      dots: false,
      responsive: {
          0: {
              items: 1
          },
          600: {
              items: 1
          },
          900: {
              items: 1
          },
          1200: {
              items: 1
          }
      },
      autoplayHoverPause: true,
      mouseDrag: true,
      rtl: $('body').hasClass('rtl') // Check if body has "rtl" class
  });
});

// product
jQuery(document).ready(function($){
$("#product-carousel").owlCarousel({
  loop: true,
  margin: 20,
  nav: true,
  dots: false,
  autoplay: false,
  autoplayTimeout: 3000,
  autoplayHoverPause: true,
  smartSpeed: 800,
  responsive:{
    0:{ items:1 },
    600:{ items:3 },
    900:{ items:3 },
    1200:{ items:4 }
  }
});
});

// product icon
document.addEventListener('DOMContentLoaded', function() {
  var productImages = document.querySelectorAll('.product-images');
  productImages.forEach(function(image) {
      var icon = image.querySelector('.icon');
      if (!icon) {
          image.classList.add('no-icon');
      }
  });
});