Cennik kontenerów
Wybierz gotowy model, poznaj jego wymiary i cenę. Każda karta ma galerię zdjęć i komplet informacji — wszystko w jednym miejscu.
Informacja o cenach: Podane ceny są cenami netto. Wymiary, ceny i opisy modeli przygotowano na podstawie przekazanych danych.
(() => { 'use strict';
function initKBCatalog() { const catalog = document.querySelector('#catalog'); // Osobna flaga wersji pozwala nowemu kodowi uruchomić się także wtedy, // gdy starszy snippet ustawił już wcześniejszą flagę. if (!catalog || window.__kbCatalogInitializedV2) return;
const modal = document.querySelector('#modal'); const search = document.querySelector('#search'); const resultCount = document.querySelector('#resultCount'); const largeImage = document.querySelector('#large'); const imageCount = document.querySelector('#count'); const thumbnails = document.querySelector('#thumbs'); const closeButton = document.querySelector('.close'); const previousButton = document.querySelector('.prev'); const nextButton = document.querySelector('.next'); const contactButton = document.querySelector('#mTel');
// Modal i jego elementy muszą być obecne w bloku HTML cennika. if (!modal || !resultCount || !largeImage || !imageCount || !thumbnails || !closeButton || !previousButton || !nextButton || !contactButton) { console.warn('Cennik KB: brakuje elementu modala. Wklej kompletny blok HTML cennika.'); return; }
// Motywy WordPressa potrafią ukryć lub przykryć przyciski galerii. // Wymuś ich pozycję i widoczność bezpośrednio na elementach. const galleryViewer = modal.querySelector('.viewer'); if (galleryViewer) { galleryViewer.style.setProperty('position', 'relative', 'important'); galleryViewer.style.setProperty('isolation', 'isolate', 'important'); } function prepareArrow(button, side, symbol, label) { button.type = 'button'; button.textContent = symbol; button.setAttribute('aria-label', label); button.style.setProperty('display', 'flex', 'important'); button.style.setProperty('visibility', 'visible', 'important'); button.style.setProperty('opacity', '1', 'important'); button.style.setProperty('position', 'absolute', 'important'); button.style.setProperty('top', '50%', 'important'); button.style.setProperty(side, '16px', 'important'); button.style.setProperty('z-index', '999999', 'important'); button.style.setProperty('width', '44px', 'important'); button.style.setProperty('height', '44px', 'important'); button.style.setProperty('padding', '0', 'important'); button.style.setProperty('align-items', 'center', 'important'); button.style.setProperty('justify-content', 'center', 'important'); button.style.setProperty('transform', 'translateY(-50%)', 'important'); button.style.setProperty('border', '1px solid #ffffffb8', 'important'); button.style.setProperty('border-radius', '50%', 'important'); button.style.setProperty('background', '#fff', 'important'); button.style.setProperty('color', '#202124', 'important'); button.style.setProperty('font-size', '28px', 'important'); button.style.setProperty('line-height', '1', 'important'); button.style.setProperty('cursor', 'pointer', 'important'); button.style.setProperty('pointer-events', 'auto', 'important'); button.style.setProperty('box-shadow', '0 4px 16px #0003', 'important'); } prepareArrow(previousButton, 'left', '‹', 'Poprzednie zdjęcie'); prepareArrow(nextButton, 'right', '›', 'Następne zdjęcie');
window.__kbCatalogInitializedV2 = true; window.__kbCatalogInitialized = true;
// Pierwszy adres to zdjęcie główne, kolejne to galeria. const productPhotos = { KB_K1: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251128_124335-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251128_124342-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251128_124346-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251128_124356-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251128_124556-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251128_124613-scaled.jpg'], KB_K2: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260202_120119-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260202_120126-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260202_120130-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260202_120138-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260202_120212-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260202_120233-scaled.jpg'], KB_K3: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/5-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-1-1.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-2-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-3-scaled.png'], KB_K4: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-5-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260511_073431-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260511_073453-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260511_073512-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260511_073519-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260511_073813-scaled.jpg'], KB_K5: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-6-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_113946-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_113954-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_113958-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_114003-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-1-2-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-2-1-scaled.png'], KB_K6: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-7-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240424_074541-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240424_074551-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240424_074607-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240424_074641-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240424_074649-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240424_074710-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240424_074800-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-1-3-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-2-2-scaled.png'], KB_K7: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-1-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/1-—-kopia-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/3-—-kopia-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250805_110009-—-kopia-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250805_110021-—-kopia-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250805_110027-—-kopia-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250805_110043-—-kopia-scaled.jpg'], KB_K8: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-3-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251010_083448-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251010_083457-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251010_083503-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251010_083515-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251010_083744-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-2-3-scaled.png'], KB_K9: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-8-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260629_094242-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260629_094252-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260629_094257-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260629_094303-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260629_094510-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260629_094527-scaled.jpg'], KB_K10: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-1-5-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260914_111557-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260914_111603-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260914_111608-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260914_111658-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260914_111728-scaled.jpg'], KB_K11: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-4-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260511_073016-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260511_073028-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260511_073046-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260511_073104-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-2-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-3-2-scaled.png'], KB_K12: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-3-3-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260831_091341-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260831_091349-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260831_091402-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260831_091411-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260831_091736-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260831_091751-scaled.jpg'], KB_K13: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-6-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260616_133631-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260616_133647-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260616_133704-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260616_133720-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260616_133841-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-5-1-scaled.png'], KB_K14: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-7-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240719_094353-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240719_095010-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240719_095039-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240719_100126-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240719_100129-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240719_100147-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240719_100151-scaled.jpg'], KB_K15: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-9-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250724_153137-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250724_153143-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250724_153152-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250724_153200-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250724_153222-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250724_153224-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250724_153746-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250724_153801-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250724_153811-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-8-1-scaled.png'], KB_K16: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-8-2-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/20220623_145207-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/20220623_145334-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/20220623_145456-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/20220623_145504-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/20220624_124029-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/20220624_124138-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/20220624_124153-scaled.jpg'], KB_K17: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-10-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_115921-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_120053-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_120106-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_120118-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_120126-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_120341-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260427_120409-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-11-scaled.png'], KB_K18: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-12-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251112_091015-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251112_091028-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251112_091037-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251112_091043-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251112_091051-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251112_091241-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251112_091328-scaled.jpg'], KB_K19: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-13-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250822_132949-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250822_132958-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250822_133015-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250822_133022-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250822_133148-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250822_133157-scaled.jpg'], KB_K20: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-14-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250325_130023-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250325_130042-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250325_130047-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250325_130105-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250325_130317-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250325_130333-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-15-scaled.png'], KB_K21: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-16-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240516_125456-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240516_125456-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240516_125524-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240516_125536-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240516_125713-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240516_125724-scaled.jpg'], KB_K22: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-17-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260518_083025-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260518_083042-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260518_083051-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260518_083057-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260518_083341-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-19-scaled.png'], KB_K23: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-20-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260612_125522-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260612_125538-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260612_125545-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260612_125705-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260612_125715-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260612_125732-scaled.jpg'], KB_K24: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-22.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/1.jpeg', 'https://kbkontener.pl/wp-content/uploads/2026/10/3.jpeg', 'https://kbkontener.pl/wp-content/uploads/2026/10/4.jpeg', 'https://kbkontener.pl/wp-content/uploads/2026/10/6.jpeg', 'https://kbkontener.pl/wp-content/uploads/2026/10/7.jpg'], KB_K25: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-24-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240906_125443-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240906_125449-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240906_125514-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20240906_125527-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-23-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-25-scaled.png'], KB_K26: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-23-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-24-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-25-1-scaled.png'], KB_K27: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-24-2.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20241126_151020-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG-20241127-WA0005.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG-20241127-WA0009.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG-20241127-WA0010.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG-20241127-WA0012.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-23-2.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-25-2.png'], KB_K28: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-23-3-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260410_112252-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260410_112302-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260410_112312-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260410_112318-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-24-3-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-25-3-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-1-scaled.png'], KB_K29: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-23-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251117_111337-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251117_111346-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251117_111358-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251117_111406-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251117_111638-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251117_111648-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20251117_111653-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260410_112327-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260410_112342-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-24-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-25-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-2-scaled.png'], KB_K30: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-25-5-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250711_122124-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250711_122130-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250711_122140-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250711_122146-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250711_122156-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250711_122208-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-3-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-23-5-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-2-scaled.png'], KB_K31: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-23-6.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250828_112918-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250828_112932-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-25-6-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250828_112940-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250828_112947-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250828_113758-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-5-scaled.png'], KB_K32: ['https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-zdjecie.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-2.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-2.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-3.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-4.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-5.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-6.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-8.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-7.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-9.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-10.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-11.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-1.jpg'], KB_K33: ['https://kbkontener.pl/wp-content/uploads/2026/10/Glowne-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-1-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-2-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-2-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-3-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-3-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-4-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-5-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-6-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-7-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-8-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-9-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/33-10-scaled.jpg'], KB_K34: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-23-7-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-6-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-3-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250814_073320-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250814_073334-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250814_073346-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250814_073359-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250814_073407-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250814_073421-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250814_073445-scaled.jpg'], KB_K35: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-23-8-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/1696566680639-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/1696566680643-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/1696566680654-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG-20220131-WA0011.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Zdjecie-WhatsApp-2023-08-21-o-14.31.40.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/Zdjecie-WhatsApp-2023-08-21-o-14.31.43.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/4a.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/5a.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/8a.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/13a.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/14a.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/1693479448376-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/1693479448383-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/1693479448397-scaled.jpg'], KB_K36: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-31-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260804_080006-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260804_080120-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260804_080128-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260804_080136-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260804_080143-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20260804_080152-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-30-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-28-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-7-scaled.png'], KB_K37: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-8-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250922_075343-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250922_075355-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250922_075359-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-5-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-28-1-scaled.png'], KB_K38: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-9-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20241108_145843-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20241108_145851-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20241108_145856-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20241108_145908-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20241108_150307-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20241108_150352-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20241108_150402-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20241108_150429-scaled.jpg'], KB_K39: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-10-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250418_111251-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250418_111257-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250418_111302-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20250418_111307-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-6-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-28-2-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-29-1-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-30-1-scaled.png'], KB_K40: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-26-11-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20230908_065639-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20230908_065658-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20230908_065706-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/IMG_20230908_065718-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-7-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-28-3-scaled.png'], KB_K41: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-28-4-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/20210330_114517-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/20210330_114556-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/20210330_114807-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/20210330_114827-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-8-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-29-2-scaled.png'], KB_K42: ['https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-27-9-scaled.png', 'https://kbkontener.pl/wp-content/uploads/2026/10/20210412_122355-scaled.jpg', 'https://kbkontener.pl/wp-content/uploads/2026/10/liftapp-28-5-scaled.png'] }; const names = [ 'Kontener KB_1', 'Kontener KB_2', 'Kontener KB_3', 'Kontener KB_4', 'Kontener KB_5', 'Kontener KB_6', 'Kontener KB_7', 'Kontener KB_8', 'Kontener KB_9', 'Kontener KB_10', 'Kontener KB_11', 'Kontener KB_12', 'Kontener KB_13', 'Kontener KB_14', 'Kontener KB_15', 'Kontener KB_16', 'Kontener KB_17', 'Kontener KB_18', 'Kontener KB_19', 'Kontener KB_20', 'Kontener KB_21', 'Kontener KB_22', 'Kontener KB_23', 'Kontener KB_24', 'Kontener KB_25', 'Kontener KB_26', 'Kontener KB_27', 'Kontener KB_28', 'Kontener KB_29', 'Kontener KB_30', 'Kontener KB_31', 'Kontener KB_32', 'Kontener KB_33', 'Kontener KB_34', 'Kontener KB_35', 'Kontener KB_36', 'Kontener KB_37', 'Kontener KB_38', 'Kontener KB_39 Gastro', 'Kontener KB_40', 'Kontener KB_41 Sanitarny', 'Kontener KB_42 Sanitarny' ]; const sizes = ['300 × 250 cm', '300 × 250 cm', '300 × 285 cm', '300 × 285 cm', '400 × 250 cm', '400 × 250 cm', '400 × 250 cm', '400 × 250 cm', '400 × 285 cm', '400 × 285 cm', '500 × 250 cm', '500 × 250 cm', '500 × 285 cm', '500 × 285 cm', '500 × 285 cm', '500 × 285 cm', '500 × 285 cm', '600 × 250 cm', '600 × 285 cm', '600 × 285 cm', '600 × 285 cm', '600 × 285 cm', '600 × 285 cm', '600 × 285 cm', '600 × 285 cm', '700 × 285 cm', '700 × 285 cm', '700 × 285 cm', '800 × 285 cm', '800 × 285 cm', '600 × 570 cm', '10 × 6 m', '700 × 285 + 500 × 285 + 600 × 285 cm', '600 × 285 + 600 × 285 cm', '700 × 285 + 500 × 285 cm', '500 × 285 cm', '600 × 285 cm', '400 × 250 cm', '300 × 250 cm', '500 × 285 cm', '340 × 220 cm', '175 × 140 cm']; const prices = ['13 000', '14 800', '20 950', '19 400', '16 600', '19 600', '19 300', '20 200', '28 100', '29 500', '10 000', '20 700', '23 300', '32 100', '39 500', '38 900', '39 200', '38 400', '28 400', '32 400', '30 300', '32 400', '29 700', '29 500', '29 800', '33 900', '39 600', '42 800', '51 000', '42 500', '71 000', '170 000', '70 800', '80 800', '143 800', '28 500', '32 300', '21 900', '16 300', '29 700', '33 400', '15 000']; const areas = ['7,5', '7,5', '8,55', '8,55', '10', '10', '10', '10', '11,4', '11,4', '12,5', '12,5', '14,25', '14,25', '14,25', '14,25', '14,25', '15', '17,1', '17,1', '17,1', '17,1', '17,1', '17,1', '17,1', '19,95', '19,95', '19,95', '22,8', '22,8', '34,2', '60', '51,3', '34,2', '34,2', '14,25', '17,1', '10', '7,5', '14,25', '7,48', '2,45']; const descriptions = [ 'Kompaktowy moduł na start — do obsługi, sprzedaży lub małego punktu usługowego.', 'Przestronny pawilon z dużymi witrynami i miejscem na Twoją ofertę.', 'Funkcjonalne biuro gotowe do ustawienia w wybranej lokalizacji.', 'Przemyślany układ dla handlu i usług, z jasnym i otwartym wnętrzem.', 'Praktyczny kontener o wymiarach 400 × 250 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 400 × 250 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 400 × 250 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 400 × 250 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 400 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 400 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 500 × 250 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 500 × 250 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 500 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 500 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 500 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 500 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 500 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 250 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 700 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 700 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 700 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 800 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 800 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 570 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 10 × 6 m — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 700 × 285 + 500 × 285 + 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 285 + 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 700 × 285 + 500 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 500 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 600 × 285 cm — rozwiązanie do Twojej działalności.', 'Praktyczny kontener o wymiarach 400 × 250 cm — rozwiązanie do Twojej działalności.', 'Kontener gastronomiczny KB_39 o wymiarach 300 × 250 cm — kompaktowa przestrzeń do działalności gastronomicznej.', 'Praktyczny kontener o wymiarach 500 × 285 cm — rozwiązanie do Twojej działalności.', 'Kontener sanitarny KB_41 o wymiarach 340 × 220 cm.', 'Kontener sanitarny KB_42 o wymiarach 175 × 140 cm.' ]; const categories = ['handel', 'handel', 'biuro', 'uslugi', 'handel', 'handel', 'handel', 'handel', 'uslugi', 'biuro', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'handel', 'gastro', 'handel', 'uslugi', 'uslugi'];
let activeCategory = 'all'; let activeItem = null; let activePhoto = 0; let photoRequestId = 0;
function getPhotoUrl(url) { if (!url || url.startsWith('WSTAW_URL_')) return ''; return `url("${url.replace(/"/g, '%22')}")`; }
function createItem(index) { const code = `KB_K${index + 1}`; return { index, code, name: names[index], size: sizes[index], price: prices[index], area: areas[index], description: descriptions[index], category: categories[index], photos: (productPhotos[code] || []).slice() }; }
function showPhoto() { if (!activeItem) return;
if (!activeItem.photos.length) { largeImage.innerHTML = ''; largeImage.style.backgroundImage = 'none'; largeImage.textContent = `Dodaj zdjęcia dla ${activeItem.code}`; largeImage.style.display = 'grid'; largeImage.style.placeItems = 'center'; largeImage.style.color = '#6c7076'; imageCount.textContent = 'Brak zdjęć'; thumbnails.innerHTML = ''; return; }
const requestId = ++photoRequestId; const url = activeItem.photos[activePhoto]; thumbnails.innerHTML = '';
// Pomijaj pola niewypełnione i automatycznie omijaj zdjęcia, których adres nie działa. if (!url || url.startsWith('WSTAW_URL_')) { activeItem.photos.splice(activePhoto, 1); activePhoto = activeItem.photos.length ? activePhoto % activeItem.photos.length : 0; showPhoto(); return; }
imageCount.textContent = 'Ładowanie zdjęcia…'; largeImage.textContent = ''; largeImage.style.display = 'flex'; largeImage.style.placeItems = ''; largeImage.style.color = ''; largeImage.style.backgroundImage = getPhotoUrl(url);
const image = document.createElement('img'); image.className = 'kb-gallery-image'; image.alt = `${activeItem.name} — zdjęcie ${activePhoto + 1}`; image.decoding = 'async'; image.onload = () => { if (requestId !== photoRequestId || !activeItem) return; imageCount.textContent = `${activePhoto + 1} / ${activeItem.photos.length}`;
activeItem.photos.forEach((photoUrl, index) => { const thumb = document.createElement('button'); thumb.type = 'button'; thumb.className = `thumb${index === activePhoto ? ' on' : ''}`; thumb.setAttribute('aria-label', `Pokaż zdjęcie ${index + 1}`); thumb.title = `Zdjęcie ${index + 1}`; thumb.addEventListener('click', () => { activePhoto = index; showPhoto(); }); thumbnails.appendChild(thumb); }); }; image.onerror = () => { if (requestId !== photoRequestId || !activeItem) return; activeItem.photos.splice(activePhoto, 1); activePhoto = activeItem.photos.length ? activePhoto % activeItem.photos.length : 0; showPhoto(); }; largeImage.appendChild(image); image.src = url; } function openDetails(item) { activeItem = item; activePhoto = 0; updateContactLink(item); document.querySelector('#mTitle').textContent = item.name; document.querySelector('#mDesc').textContent = item.description; document.querySelector('#mSize').textContent = item.size; document.querySelector('#mArea').textContent = `${item.area} m²`;
const contactFact = Array.from(document.querySelectorAll('.facts .fact')).find(fact => fact.querySelector('span')?.textContent.trim() === 'Kontakt');
if (contactFact) contactFact.querySelector('b').innerHTML = 'Sabina
+48 694 137 661';
const priceLabel = document.querySelector('.modalprice small');
if (priceLabel) priceLabel.textContent = 'Cena NETTO';
document.querySelector('#mPrice').textContent = `${item.price} zł`;
document.querySelector('#askLabel').textContent = `ZAPYTAJ O ${item.name.replace('Kontener ', '')}`;
showPhoto();
modal.classList.add('open');
modal.setAttribute('aria-hidden', 'false');
document.body.style.overflow = 'hidden';
closeButton.focus();
}
function closeDetails() { modal.classList.remove('open'); modal.setAttribute('aria-hidden', 'true'); document.body.style.overflow = ''; activeItem = null; }
function renderCatalog() { const query = search ? search.value.trim().toLocaleLowerCase('pl') : ''; const grid = document.createElement('div'); grid.className = 'grid'; let visible = 0;
for (let index = 0; index < names.length; index += 1) { const item = createItem(index); const searchText = `${item.name} ${item.code} ${item.size} ${item.description}`.toLocaleLowerCase('pl'); if (activeCategory !== 'all' && item.category !== activeCategory) continue; if (query && !searchText.includes(query)) continue; visible += 1; const card = document.createElement('article'); card.className = 'card'; card.innerHTML = `
${item.name}
`;
const photo = card.querySelector('.photo'); photo.style.backgroundImage = getPhotoUrl(item.photos[0]); if (item.photos[0] && !item.photos[0].startsWith('WSTAW_URL_')) { const cardImage = document.createElement('img'); cardImage.className = 'kb-card-image'; cardImage.alt = item.name; cardImage.loading = 'lazy'; cardImage.decoding = 'async'; cardImage.addEventListener('error', () => cardImage.remove(), { once: true }); cardImage.src = item.photos[0]; photo.insertBefore(cardImage, photo.firstChild); } photo.addEventListener('click', () => openDetails(item)); photo.addEventListener('keydown', event => { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); openDetails(item); } }); card.querySelector('.more').addEventListener('click', () => openDetails(item)); grid.appendChild(card); }
catalog.innerHTML = ''; if (visible) { const section = document.createElement('section'); section.className = 'range'; section.appendChild(grid); catalog.appendChild(section); } else { const empty = document.createElement('p'); empty.className = 'note'; empty.textContent = 'Nie znaleziono modeli. Zmień frazę lub wybierz inny rodzaj kontenera.'; catalog.appendChild(empty); } resultCount.textContent = String(visible); }
closeButton.addEventListener('click', closeDetails); modal.addEventListener('click', event => { if (event.target === modal) closeDetails(); }); previousButton.addEventListener('click', () => { if (!activeItem || !activeItem.photos.length) return; activePhoto = (activePhoto - 1 + activeItem.photos.length) % activeItem.photos.length; showPhoto(); }); nextButton.addEventListener('click', () => { if (!activeItem || !activeItem.photos.length) return; activePhoto = (activePhoto + 1) % activeItem.photos.length; showPhoto(); });
function updateContactLink(item) { if (!item) return; if (window.matchMedia('(max-width: 800px)').matches) { contactButton.href = 'tel:+48694137661'; return; } const subject = `Zapytanie o ${item.name}`; const body = `Dzień dobry,\n\nProszę o ofertę na ${item.name} (${item.size}).\n\nProszę o kontakt.\n`; contactButton.href = `mailto:export@kbcontainer.pl?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`; }
window.addEventListener('resize', () => { if (activeItem) updateContactLink(activeItem); }); document.addEventListener('keydown', event => { if (!modal.classList.contains('open')) return; if (event.key === 'Escape') closeDetails(); if (event.key === 'ArrowLeft') previousButton.click(); if (event.key === 'ArrowRight') nextButton.click(); });
document.querySelectorAll('.filtergroup .chip').forEach(button => { button.addEventListener('click', () => { document.querySelectorAll('.filtergroup .chip').forEach(chip => chip.classList.remove('active')); button.classList.add('active'); activeCategory = button.dataset.type || 'all'; renderCatalog(); }); }); if (search) search.addEventListener('input', renderCatalog);
renderCatalog(); }
if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initKBCatalog, { once: true }); } else { initKBCatalog(); } })();