jQuery(function ($) { if ($('#simple-blog-box').length) { var swiper = new Swiper('#simple-blog-box', { slidesPerView: 3, spaceBetween: 30, navigation: { nextEl: '.elementor-swiper-button-next', prevEl: '.elementor-swiper-button-prev', }, loop: true, }) } }) jQuery(document).ready(function ($) { $(document).on( 'click', '.form-control-select-custom .custom-dropdown li', function () { const $selectedOption = $(this) const $customWrapper = $selectedOption.closest( '.form-control-select-custom' ) const originalSelectId = $customWrapper.data('product-attribute') const $originalSelect = $(`#group_${originalSelectId}`) $customWrapper.find('.custom-dropdown li').removeClass('active') $selectedOption.addClass('active') $originalSelect.val($selectedOption.data('value')).change() } ) $(document).on('change', '.form-control-select-standard', function () { const $originalSelect = $(this) const originalSelectId = $originalSelect.attr('id').replace('group_', '') const $customWrapper = $( `.form-control-select-custom[data-product-attribute="${originalSelectId}"]` ) const value = $originalSelect.val() $customWrapper.find('.custom-dropdown li').removeClass('active') $customWrapper .find(`.custom-dropdown li[data-value="${value}"]`) .addClass('active') }) $(document).on('click', '.control-label-nav', function () { $('.control-label-nav').not(this).removeClass('active') $('.control-label-nav').not(this).parent().parent().removeClass('active') $('.control-label-nav') .not(this) .siblings('.form-control-select-custom') .slideUp() $(this).toggleClass('active') $(this).parent().parent().toggleClass('active') // $(this).siblings('.form-control-select-custom').slideToggle() $(this) .siblings('.form-control-select-custom') .slideToggle(function () { const $dropdown = $(this).find('.custom-dropdown') const $items = $dropdown.find('li') if ($items.length > 5) { const itemHeight = $items.first().outerHeight(true) const maxHeight = itemHeight * 5 const gap = 16 $dropdown.css({ 'max-height': maxHeight + gap * 4 + 'px', }) } }) }) }) jQuery(document).ready(function ($) { if ($('#product').length) { const additionalInfo = $('.product-additional-info') if (additionalInfo.length) { const elementsToCopy = [] const selectors = ['.single_raty', '#oblicz-rate', '#caraty'] selectors.forEach((selector) => { const element = additionalInfo.find(selector) if (element.length) { elementsToCopy.push(element.clone()) } }) if (elementsToCopy.length) { const item0 = $('.blockreassurance_product .item-0') if (item0.length) { const blockRaty = $( '
' ) const wrapper = blockRaty.find('.block-raty--wrapper') elementsToCopy.forEach((element) => { wrapper.append(element) }) item0.append(blockRaty) } } } $('.blockreassurance_product .item-0 .block-description').on( 'click', function () { const blockRaty = $('.blockreassurance_product .item-0 .block-raty') if (blockRaty.length) { blockRaty.slideToggle() } } ) } }) jQuery(document).ready(function ($) { if ($('#product').length) { $('.accordion-item').addClass('active') $('.accordion-item-body').show() $('.accordion-item-header').click(function () { $('.accordion-item-body').slideUp() $('.accordion-item').removeClass('active') if ($(this).next('.accordion-item-body').is(':hidden')) { $(this).next('.accordion-item-body').slideDown() $(this).parent().addClass('active') } }) $('.product-description-box .product-description-box-img').css( 'top', $('#header-panel-box').height() + 64 ) } }) // document.addEventListener('click', (event) => { // const toggleButton = event.target.closest('.search-toggle') // if (toggleButton) { // const filtersContainer = document.querySelector('#search_filters') // const filtersContent = filtersContainer?.querySelector('.content') // if (filtersContainer && filtersContent) { // // Pokaż/ukryj zawartość // const isContentVisible = filtersContent.style.display === 'grid' // filtersContent.style.display = isContentVisible ? 'none' : 'grid' // // Obróć obrazek w przycisku // const img = toggleButton.querySelector('img') // if (img && img.src.includes('chevron-up.svg')) { // img.style.transform = isContentVisible // ? 'rotate(0deg)' // : 'rotate(180deg)' // } // // Dodaj/usuń klasę active na kontenerze // filtersContainer.classList.toggle('active', !isContentVisible) // } // } // }) document.addEventListener('DOMContentLoaded', function () { function moveContent(retries = 20) { // 20 * 500ms = 10s var eratyElement = document.getElementById('eraty') var wrapperElement = document.querySelector('.block-raty--wrapper') if (eratyElement && wrapperElement) { var eratyContent = eratyElement.innerHTML eratyElement.innerHTML = '' var newContent = document.createElement('div') newContent.innerHTML = eratyContent wrapperElement.appendChild(newContent) } else if (retries > 0) { setTimeout(() => moveContent(retries - 1), 500) } } moveContent() }) jQuery(document).ready(function ($) { var windowHeight = $(window).height() var dropdownMenuHeight = 0 function updateWindowHeight() { windowHeight = $(window).height() } function checkOpenMenus() { $('nav.leo-megamenu .leo-top-menu .navbar-nav li .dropdown-menu').each( function () { if ($(this).is(':visible')) { var $menu = $(this) dropdownMenuHeight = $menu.outerHeight() // var offsetTop = $menu.offset().top var offsetTop = $('header').height() - 20 // console.log('Offset top: ' + offsetTop + 'px',); var maxHeight = windowHeight - offsetTop - 30 // console.log('Max height: ' + maxHeight + 'px',); $menu.css('max-height', maxHeight + 'px') } } ) } function resetMaxHeights() { $('nav.leo-megamenu .leo-top-menu .navbar-nav li .dropdown-menu').css( 'max-height', '' ) } updateWindowHeight() $(window).resize(function () { updateWindowHeight() console.log('Window height: ' + windowHeight + 'px') }) $('nav.leo-megamenu .leo-top-menu .navbar-nav > li').hover( function () { checkOpenMenus() }, function () { resetMaxHeights() } ) }) jQuery(document).ready(function ($) { $('body').on('click', 'section.facet .show-more', function (e) { e.preventDefault() let $currentFacet = $(this).closest('section.facet') $('section.facet') .not($currentFacet) .each(function () { $(this).find('.toggle-facets .show-more-text').show() $(this).find('.toggle-facets .show-less-text').hide() $(this).find('.facet-items-hidden').slideUp() }) $(this).find('.toggle-facets .show-more-text').toggle() $(this).find('.toggle-facets .show-less-text').toggle() $currentFacet.find('.facet-items-hidden').slideToggle() }) }) // jQuery(document).ready(function ($) { // var $btnBox = $('.scroll-brn-box') // $(window).on('scroll', function () { // if ($(this).scrollTop() > $(window).height() / 2) { // $btnBox.addClass('active') // } else { // $btnBox.removeClass('active') // } // }) // }) jQuery(document).ready(function ($) { $('body').append(`
`) var $btnBox = $('.scroll-brn-box') $(window).on('scroll', function () { if ($(this).scrollTop() > $(window).height() / 2) { $btnBox.addClass('active') } else { $btnBox.removeClass('active') } }) }) /* custom.js — LEKKIE przeniesienie sekcji .custom-buttons Góra: klony top-level bloków (dzieci #category-description) z WYŁĄCZNIE .custom-buttons Dół: oryginał bez sekcji .custom-buttons NIE DZIAŁA podczas edycji w Elementor/Creative Elements. */ ;(function () { 'use strict' // --- GUARD: nie uruchamiaj w trybie edycji (Elementor / Creative Elements) --- function isEditing() { var href = String(location.href || '') var ref = String(document.referrer || '') var topHref = '' try { topHref = String(window.top.location.href || '') } catch (e) { /* cross-origin fallback */ } // Zbiorcza „słomka” do przeszukania (ramka, referrer, parent) var haystack = (href + ' ' + ref + ' ' + topHref).toLowerCase() // 1) Najpewniejsze: kontroler zaplecza CE if (haystack.indexOf('controller=adminceeditor') !== -1) return true // 2) Podgląd/edycja elementora/CE if (haystack.indexOf('elementor-preview') !== -1) return true // 3) Klasy/markery edytora na body w tej ramce var body = document.body if ( body && /\b(elementor-editor-active|ce-editor-active|ce-editing)\b/i.test( body.className ) ) return true // 4) Panele edytora w oknie nadrzędnym (gdy front leci w iframe) if (window.self !== window.top) { try { if ( window.top.document.querySelector( '#elementor-panel, .elementor-panel, #ce-editor, .ce-editor, .ce-panel' ) ) { return true } } catch (e) { /* ignoruj brak dostępu */ } } // 5) Ręczny wyłącznik if (window.__CE_DISABLE_MOVE === true) return true return false } // Wstaw ZARAZ po definicji isEditing() if (isEditing()) return var SOURCE_SEL = '#category-description' var TARGET_SEL = '.row.\\31 11' // .row.111 (esc) var WRAP_ID = 'moved-category-structure' var BUTTON_SEC = 'section.custom-buttons, section.custom-buttons1' var ANY_SEC = 'section' // lub 'section.elementor-top-section' jeśli chcesz zawęzić var didFinish = false var obs = null var debounceId = null function ensureWrapper(target) { var wrap = document.getElementById(WRAP_ID) if (!wrap) { wrap = document.createElement('div') wrap.id = WRAP_ID wrap.className = 'moved-category-structure' target.parentNode.insertBefore(wrap, target) } return wrap } function topLevelBlocks(src) { var out = [] for (var i = 0; i < src.children.length; i++) { var el = src.children[i] if (el.nodeType === 1) out.push(el) } return out } function cloneBlockWithOnlyButtons(block) { var clone = block.cloneNode(true) clone .querySelectorAll(ANY_SEC + ':not(.custom-buttons):not(.custom-buttons1)') .forEach(function (sec) { sec.remove() }) clone .querySelectorAll('.ce-edit-btn, .ce-edit-outline') .forEach(function (n) { n.remove() }) if (!clone.querySelector(BUTTON_SEC)) return null return clone } function syncOnce() { if (didFinish) return true var src = document.querySelector(SOURCE_SEL) var target = document.querySelector(TARGET_SEL) if (!src || !target) return false var blocks = topLevelBlocks(src) var blocksWithButtons = blocks.filter(function (b) { return !!b.querySelector(BUTTON_SEC) }) if (!blocksWithButtons.length) return false var wrap = ensureWrapper(target) var frag = document.createDocumentFragment() blocksWithButtons.forEach(function (b) { var prunedClone = cloneBlockWithOnlyButtons(b) if (prunedClone) frag.appendChild(prunedClone) }) if (!frag.firstChild) return false while (wrap.firstChild) wrap.removeChild(wrap.firstChild) wrap.appendChild(frag) src.querySelectorAll(BUTTON_SEC).forEach(function (sec) { if (sec && sec.parentNode) sec.parentNode.removeChild(sec) }) didFinish = true if (obs) obs.disconnect() return true } function trySyncDebounced() { if (debounceId) return debounceId = setTimeout(function () { debounceId = null if (syncOnce() && obs) obs.disconnect() }, 50) } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', trySyncDebounced, { once: true, }) } else { trySyncDebounced() } obs = new MutationObserver(trySyncDebounced) obs.observe(document.body || document.documentElement, { childList: true, subtree: true, }) if (window.prestashop && typeof window.prestashop.on === 'function') { ;['updateProductList', 'updatedCart', 'updatedProduct'].forEach(function ( ev ) { window.prestashop.on(ev, trySyncDebounced) }) } ;(function hookHistory() { var _ps = history.pushState, _rs = history.replaceState function onNav() { trySyncDebounced() } history.pushState = function () { _ps.apply(this, arguments) onNav() } history.replaceState = function () { _rs.apply(this, arguments) onNav() } window.addEventListener('popstate', onNav) })() })() $(document).ready(function () { function toggleChatWidget(isOpen) { var $widget = $('div[data-testid="widgetButtonFrame"]') var $scrollBox = $('.scroll-brn-box') if ($widget.length) { if (isOpen) { $widget.hide() $scrollBox.hide() } else { $widget.show() $scrollBox.show() } } } function checkCartState() { var $cart = $('.elementor-cart__container') var isOpen = $cart.hasClass('elementor-cart--shown') toggleChatWidget(isOpen) } $('a[href*="koszyk"][class*="elementor-button"]').on('click', function () { setTimeout(checkCartState, 300) }) $(document).on('click', '.elementor-cart__close-button', function () { setTimeout(checkCartState, 300) }) $(document).on( 'click', '.elementor-cart__container.elementor-lightbox.elementor-cart--shown', function (e) { if (e.target === this) { setTimeout(checkCartState, 300) } } ) const cartContainer = document.querySelector('.elementor-cart__container') if (cartContainer) { const observer = new MutationObserver(() => checkCartState()) observer.observe(cartContainer, { attributes: true, attributeFilter: ['class'], }) } checkCartState() }) $(document).ready(function () { if ($('#buy-by-phone-popup').length) { var buyByPhonePopup = $('#buy-by-phone-popup') $('#buy_by_phone_btn').on('click', function (e) { $('#buy-by-phone-popup').find('input[name="buy-by-phone-name"]').val('') $('#buy-by-phone-popup').find('input[name="buy-by-phone-phone"]').val('') $('#buy-by-phone-popup').find('input[name="contact-time"]').val('') $('#buy-by-phone-popup').find('input[name="product-name"]').val('') $('#buy-by-phone-popup').find('input[name="shipping-address"]').val('') $('#buy-by-phone-popup').find('input[name="phone-for-courier"]').val('') $('#buy-by-phone-popup').find('input[name="email"]').val('') $('#buy-by-phone-popup').find('input[name="comments-to-order"]').val('') $('#buy-by-phone-popup .popup-footer').empty() $('#buy-by-phone-popup') .find('input[name="polityka"]') .prop('checked', false) buyByPhonePopup.addClass('active') }) $('.close-popup', buyByPhonePopup).on('click', function (e) { e.preventDefault() buyByPhonePopup.removeClass('active') }) $('.close-popup-alert', buyByPhonePopup).on('click', function (e) { e.preventDefault() $('.popup-alert', buyByPhonePopup).removeClass('active') }) $('#buy-by-phone-form-btn').on('click', function (e) { e.preventDefault() $('#buy-by-phone-popup .popup-footer').empty() var name = $('#buy-by-phone-popup') .find('input[name="buy-by-phone-name"]') .val() var phone = $('#buy-by-phone-popup') .find('input[name="buy-by-phone-phone"]') .val() var contact_time = $('#buy-by-phone-popup') .find('input[name="contact-time"]') .val() var politics = $('#buy-by-phone-popup') .find('input[name="polityka"]') .prop('checked') if (!phone) { popupAlert('

Proszę wypełnić wymagane pola formularza

') return } if (!politics) { popupAlert('

Proszę wypełnić wymagane pola formularza

') return } $(this).prop('disabled', true) var formData = $('#buy-by-phone-form').serialize() $.ajax({ type: 'POST', url: '/buy-by-phone.php', data: formData, success: function (response) { console.log('formData: ', formData) popupAlert(response) $('#buy-by-phone-form-btn').prop('disabled', false) setTimeout(function () { buyByPhonePopup.removeClass('active') }, 5000) }, error: function () { popupAlert('

Wystąpił błąd podczas wysyłania danych

') $('#buy-by-phone-form-btn').prop('disabled', false) }, }) }) function popupAlert(text) { $('.popup-alert', buyByPhonePopup).addClass('active') $('.popup-alert .popup-alert-data', buyByPhonePopup).empty() $('.popup-alert .popup-alert-data', buyByPhonePopup).append(text) setTimeout(function () { $('.popup-alert', buyByPhonePopup).removeClass('active') }, 3000) } } })