In Control Common JS

function isReady(reference) { switch(reference) { case ‘document’: if(window.document && window.document.body) return true; break; case ‘fancybox’: if(typeof(window.Fancybox) != ‘undefined’) return true; break; } return false; } function allReady() { var dependencies = Array.from(arguments); dependencies.unshift(‘document’); return dependencies.every(isReady); } function waitFor() { if(arguments.length…Continue reading

FluentForms GA4 Conversion Tracking

(function() { ‘use strict’; console.log(‘=== FluentForms GA4 Tracking Script Loaded ===’); // Check if gtag is available if (typeof gtag !== ‘function’) { console.error(‘❌ GA4 gtag function not found!’); console.log(‘Checking dataLayer:’, window.dataLayer); return; } console.log(‘✅ gtag function found’); // Intercept…Continue reading

Single product – Select default variation

jQuery(function ($) { function variationMatchesVisibleSelectOptions($form, variation) { if (!variation || !variation.attributes) return false; for (const attrName in variation.attributes) { const attrValue = variation.attributes[attrName]; const $select = $form.find(‘select[name=”‘ + attrName + ‘”]’); if (!$select.length) return false; // Bestaat deze value echt…Continue reading

Archive – Products – JS popup

document.addEventListener(‘DOMContentLoaded’, function () { const infoButtons = document.querySelectorAll(‘.facet-info-button’); const allPopups = document.querySelectorAll(‘.facet-popup’); let lastFocused = null; infoButtons.forEach(button => { button.addEventListener(‘click’, function () { const facet = this.dataset.facet; const popup = document.querySelector(`.facet-popup[data-facet=”${facet}”]`); const content = popup?.querySelector(‘.popup-content’); if (popup) { lastFocused =…Continue reading

Logo Scroll Shrink (JS)

/** * Sticky header with stable base height: * – Computes base height ONLY in unscrolled state and stores it in –header-h * – Shrinks by CSS percentage when `.scrolled` is added * – Recomputes base when crossing back to…Continue reading

Closing slide-in with a click outside

(function () { document.addEventListener(‘DOMContentLoaded’, function () { // Utility: close the slide-in gracefully function closeHustleSlide(slideIn) { if (!slideIn) return; const closeBtn = slideIn.querySelector(‘.hustle-close, .hustle-close-button, .hustle-icon-close’); if (closeBtn) { closeBtn.click(); return; } slideIn.classList.remove(‘hustle-show’); const content = slideIn.querySelector(‘.hustle-slidein-content’); if (content) { content.classList.remove(‘hustle-animate-in’);…Continue reading

News Grid Filter Barrierefrei + bestimmte Kategorien ausschließen

document.addEventListener(‘DOMContentLoaded’, function () { // Kategorien, die ausgeblendet werden sollen const excludedCategories = [‘News’, ‘Weltcup 2025’, ‘Weltcup 2026’]; /** * Hauptfunktion: verbessert Filterstruktur + entfernt ausgeschlossene Kategorien */ function enhanceGridFilters() { // 1. Desktop: UL-Filter document.querySelectorAll(‘ul.vc_grid-filter[data-vc-grid-filter=”category”]’).forEach(function (filterList) { if (filterList.dataset.a11yEnhanced…Continue reading

RD Full-Width Cloner for Theme Marquee Title Element

(function () { var ROOT = ‘.full-width-marquee-title’; var TRACK = ‘.fusion-title-heading’; var SEG = ‘.awb-marquee-content’; var NBSP_COUNT = 5; // number of   spaces between repeats (controls visual gap) var MIN_MULTIPLIER = 3; // minimum total marquee width relative to…Continue reading

Minusmarg for anker og meny

document.addEventListener(“DOMContentLoaded”, function () { const offset = 100; // juster til ønsket avstand const anchorLinks = document.querySelectorAll(“a[href^=’#’]”); anchorLinks.forEach(link => { link.addEventListener(“click”, function (e) { const targetID = this.getAttribute(“href”).substring(1); const targetElement = document.getElementById(targetID); if (targetElement) { e.preventDefault(); const elementPosition = targetElement.getBoundingClientRect().top…Continue reading