/* ===============================================
  OPEN CLOSE Menu
============================================= */

function production_industry_open_menu() {
  jQuery('button.menu-toggle').addClass('close-panal');
  setTimeout(function(){
    jQuery('nav#main-menu').show();
  }, 100);

  return false;
}
jQuery( "button.menu-toggle").on("click", production_industry_open_menu);

function production_industry_close_menu() {
  jQuery('button.close-menu').removeClass('close-panal');
  jQuery('nav#main-menu').hide();
}

jQuery( "button.close-menu").on("click", production_industry_close_menu);

function production_industry_search_show() {
	jQuery(".outer-search").addClass('show');
	jQuery(".outer-search").fadeIn();
}
jQuery( ".search-cont-button").on("click", production_industry_search_show);

function production_industry_search_hide() {
	jQuery(".outer-search").removeClass('show');
	jQuery(".outer-search").fadeOut();
}
jQuery( ".search-cont-button-close").on("click", production_industry_search_hide);


/* ===============================================
  TRAP TAB FOCUS ON MODAL MENU
============================================= */

jQuery('button.close-menu').on('keydown', function (e) {
  if (jQuery("this:focus") && !!e.shiftKey && e.keyCode === 9) {
  } else if (jQuery("this:focus") && (e.which === 9)) {
    e.preventDefault();
    jQuery(this).blur();
    jQuery('.menu li a:first').focus()
  }
});

jQuery('.menu li a:first').on('keydown', function (event) {
  if (jQuery("this:focus") && !!event.shiftKey && event.keyCode === 9) {
    event.preventDefault();
    jQuery(this).blur();
    jQuery('button.close-menu').focus()
  }
});

jQuery('#main-menu ul:first li:first a').on('keydown', function (event) {
  if (event.shiftKey && event.keyCode == 9) {
    event.preventDefault();
    jQuery(this).blur();
    jQuery('button.close-menu').focus();
  }
})

jQuery(document).ready(function() {
  window.addEventListener('load', (event) => {
      jQuery(".loader").delay(2000).fadeOut("slow");
  });
});

jQuery('a[href="#tobottom"]').click(function () {
  jQuery('html, body').animate({scrollTop: 0}, 'slow');
  return false;
});
(function( $ ) {
  $(window).scroll(function(){
      var sticky = $('.sticky-header'),
      scroll = $(window).scrollTop();
      if (scroll >= 100) sticky.addClass('fixed-header');
      else sticky.removeClass('fixed-header');
    });
  })( jQuery );

  jQuery(document).ready(function() {
    window.addEventListener('load', (event) => {
        jQuery(".loader").delay(2000).fadeOut("slow");
      });
  })
/* ===============================================
  Scroll Top //
============================================= */

jQuery(window).scroll(function () {
  if (jQuery(this).scrollTop() > 100) {
      jQuery('.scroll-up').fadeIn();
  } else {
      jQuery('.scroll-up').fadeOut();
  }
});

jQuery('a[href="#tobottom"]').click(function () {
  jQuery('html, body').animate({scrollTop: 0}, 'slow');
  return false;
});

/* ===============================================
  Search pop up
============================================= */

jQuery('.search-cont-button-close').on('keydown', function (es) {
  if (jQuery("this:focus") && (es.which === 9)) {
    es.preventDefault();
    jQuery(this).blur();
    jQuery('.inner-search form input').focus();
  }
});

jQuery('.inner-search form input').on('keydown', function (eventser) {
  if (eventser.shiftKey && eventser.keyCode == 9) {
    eventser.preventDefault();
    jQuery(this).blur();
    jQuery('.search-cont-button-close').focus()
  }
});


/* ===============================================
  Custom Cursor
============================================= */

const production_industry_customCursor = {
  init: function () {
    this.production_industry_customCursor();
  },
  isVariableDefined: function (el) {
    return typeof el !== "undefined" && el !== null;
  },
  select: function (selectors) {
    return document.querySelector(selectors);
  },
  selectAll: function (selectors) {
    return document.querySelectorAll(selectors);
  },
  production_industry_customCursor: function () {
    const production_industry_cursorDot = this.select(".cursor-point");
    const production_industry_cursorOutline = this.select(".cursor-point-outline");
    if (this.isVariableDefined(production_industry_cursorDot) && this.isVariableDefined(production_industry_cursorOutline)) {
      const cursor = {
        delay: 8,
        _x: 0,
        _y: 0,
        endX: window.innerWidth / 2,
        endY: window.innerHeight / 2,
        cursorVisible: true,
        cursorEnlarged: false,
        $dot: production_industry_cursorDot,
        $outline: production_industry_cursorOutline,

        init: function () {
          this.dotSize = this.$dot.offsetWidth;
          this.outlineSize = this.$outline.offsetWidth;
          this.setupEventListeners();
          this.animateDotOutline();
        },

        updateCursor: function (e) {
          this.cursorVisible = true;
          this.toggleCursorVisibility();
          this.endX = e.clientX;
          this.endY = e.clientY;
          this.$dot.style.top = `${this.endY}px`;
          this.$dot.style.left = `${this.endX}px`;
        },

        setupEventListeners: function () {
          window.addEventListener("load", () => {
            this.cursorEnlarged = false;
            this.toggleCursorSize();
          });

          production_industry_customCursor.selectAll("a, button").forEach((el) => {
            el.addEventListener("mouseover", () => {
              this.cursorEnlarged = true;
              this.toggleCursorSize();
            });
            el.addEventListener("mouseout", () => {
              this.cursorEnlarged = false;
              this.toggleCursorSize();
            });
          });

          document.addEventListener("mousedown", () => {
            this.cursorEnlarged = true;
            this.toggleCursorSize();
          });
          document.addEventListener("mouseup", () => {
            this.cursorEnlarged = false;
            this.toggleCursorSize();
          });

          document.addEventListener("mousemove", (e) => {
            this.updateCursor(e);
          });

          document.addEventListener("mouseenter", () => {
            this.cursorVisible = true;
            this.toggleCursorVisibility();
            this.$dot.style.opacity = 1;
            this.$outline.style.opacity = 1;
          });

          document.addEventListener("mouseleave", () => {
            this.cursorVisible = false;
            this.toggleCursorVisibility();
            this.$dot.style.opacity = 0;
            this.$outline.style.opacity = 0;
          });
        },

        animateDotOutline: function () {
          this._x += (this.endX - this._x) / this.delay;
          this._y += (this.endY - this._y) / this.delay;
          this.$outline.style.top = `${this._y}px`;
          this.$outline.style.left = `${this._x}px`;

          requestAnimationFrame(this.animateDotOutline.bind(this));
        },

        toggleCursorSize: function () {
          if (this.cursorEnlarged) {
            this.$dot.style.transform = "translate(-50%, -50%) scale(0.75)";
            this.$outline.style.transform = "translate(-50%, -50%) scale(1.6)";
          } else {
            this.$dot.style.transform = "translate(-50%, -50%) scale(1)";
            this.$outline.style.transform = "translate(-50%, -50%) scale(1)";
          }
        },

        toggleCursorVisibility: function () {
          if (this.cursorVisible) {
            this.$dot.style.opacity = 1;
            this.$outline.style.opacity = 1;
          } else {
            this.$dot.style.opacity = 0;
            this.$outline.style.opacity = 0;
          }
        },
      };
      cursor.init();
    }
  },
};
production_industry_customCursor.init();

/* ===============================================
  Progress Bar
============================================= */
const production_industry_progressBar = {
  init: function () {
      let production_industry_progressBarDiv = document.getElementById("elemento-progress-bar");

      if (production_industry_progressBarDiv) {
          let production_industry_body = document.body;
          let production_industry_rootElement = document.documentElement;

          window.addEventListener("scroll", function (event) {
              let production_industry_winScroll = production_industry_body.scrollTop || production_industry_rootElement.scrollTop;
              let production_industry_height =
              production_industry_rootElement.scrollHeight - production_industry_rootElement.clientHeight;
              let production_industry_scrolled = (production_industry_winScroll / production_industry_height) * 100;
              production_industry_progressBarDiv.style.width = production_industry_scrolled + "%";
          });
      }
  },
};
production_industry_progressBar.init();

/* ===============================================
 Collapse Sidebar Options //
============================================= */

jQuery(document).ready(function () {
	
	function production_industry_search_loop_focus(element) {
		var production_industry_focus = element.find('select, input, textarea, button, a[href] , a');
		var production_industry_firstFocus = production_industry_focus[0];  
		var production_industry_lastFocus = production_industry_focus[production_industry_focus.length - 1];
		var KEYCODE_TAB = 9;

		element.on('keydown', function production_industry_search_loop_focus(e) {
			var isTabPressed = (e.key === 'Tab' || e.keyCode === KEYCODE_TAB);

			if (!isTabPressed) {
			  return; 
			}

			if ( e.shiftKey ) /* shift + tab */ {
			  if (document.activeElement === production_industry_firstFocus) {
		    production_industry_lastFocus.focus();
		      e.preventDefault();
		    }
		  } else /* tab */ {
		  	if (document.activeElement === production_industry_lastFocus) {
		    	production_industry_firstFocus.focus();
		      e.preventDefault();
		    }
		  }
		});
	}

  jQuery('.toggle-btn a').click(function(){
    jQuery(".header-sidebar").addClass('show');
    production_industry_search_loop_focus(jQuery('.header-sidebar'));
  });

  jQuery('.header-sidebar .close-pop a').click(function(){
    jQuery(".header-sidebar").removeClass('show');
  });

});

/* ===============================================
   sticky copyright
============================================= */

window.addEventListener('scroll', function() {
  var production_industry_footer = document.querySelector('.sticky-copyright');
  if (!production_industry_footer) return; 

  var production_industry_scrollTop = window.scrollY || document.documentElement.production_industry_scrollTop;

  if (production_industry_scrollTop >= 100) {
    production_industry_footer.classList.add('active-sticky');
  }
});

/* ===============================================
   sticky sidebar
============================================= */

window.addEventListener('scroll', function () {
  var production_industry_sidebar = document.querySelector('.sidebar-sticky');
  if (!production_industry_sidebar) return;

  var production_industry_scrollTop = window.scrollY || document.documentElement.scrollTop;
  var production_industry_windowHeight = window.innerHeight;
  var production_industry_documentHeight = document.documentElement.scrollHeight;

  var production_industry_isBottom = production_industry_scrollTop + production_industry_windowHeight >= production_industry_documentHeight - 100;

  if (production_industry_scrollTop >= 100 && !production_industry_isBottom) {
    production_industry_sidebar.classList.add('sidebar-fixed');
  } else {
    production_industry_sidebar.classList.remove('sidebar-fixed');
  }
});