Container Price List
Choose a ready-made model and view its dimensions and price. Each model includes a photo gallery and all the key information in one place.
Price information: All listed prices are net prices in EUR. Dimensions, prices and model descriptions are based on the information provided.
(() => { 'use strict';
function initKBCatalog() { const catalog = document.querySelector('#catalog'); // A separate version marker allows the new code to initialize even when // an older snippet has already set the previous marker. 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');
// The modal and its elements must be included in the price list HTML block. if (!modal || !resultCount || !largeImage || !imageCount || !thumbnails || !closeButton || !previousButton || !nextButton || !contactButton) { console.warn('KB Price List: The modal element is missing. Add the complete price list HTML block.'); return; }
// WordPress themes may hide or cover the gallery buttons. // Set their position and visibility directly on the elements. 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', '‹', 'Previous photo'); prepareArrow(nextButton, 'right', '›', 'Next photo');
window.__kbCatalogInitializedV2 = true; window.__kbCatalogInitialized = true;
// The first URL is the main image; the following URLs belong to the gallery. 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 = ['Container KB_1', 'Container KB_2', 'Container KB_3', 'Container KB_4', 'Container KB_5', 'Container KB_6', 'Container KB_7', 'Container KB_8', 'Container KB_9', 'Container KB_10', 'Container KB_11', 'Container KB_12', 'Container KB_13', 'Container KB_14', 'Container KB_15', 'Container KB_16', 'Container KB_17', 'Container KB_18', 'Container KB_19', 'Container KB_20', 'Container KB_21', 'Container KB_22', 'Container KB_23', 'Container KB_24', 'Container KB_25', 'Container KB_26', 'Container KB_27', 'Container KB_28', 'Container KB_29', 'Container KB_30', 'Container KB_31', 'Container KB_32', 'Container KB_33', 'Container KB_34', 'Container KB_35', 'Container KB_36', 'Container KB_37', 'Container KB_38', 'Container KB_39 Gastro', 'Container KB_40', 'Sanitary Container KB_41', 'Sanitary Container KB_42']; 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 = ['4,150', '4,700', '5,950', '6,100', '5,050', '5,800', '5,800', '6,000', '7,190', '8,490', '6,000', '6,890', '7,190', '9,500', '11,070', '11,250', '11,300', '11,530', '8,140', '8,490', '8,800', '9,490', '8,540', '8,690', '8,690', '9,590', '10,660', '11,600', '13,630', '11,040', '11,300', '46,900', '20,650', '23,800', '34,800', '8,180', '9,590', '6,480', '5,000', '8,900', '7,490', '4,790']; 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 = [ 'A compact starter module for customer service, retail, or a small service point.', 'A spacious sales pavilion with large display windows and room for your products.', 'A functional office, ready to be installed at your chosen location.', 'A well-planned layout for retail and services, with a bright, open interior.', 'A practical 400 × 250 cm container — a suitable solution for your business.', 'A practical 400 × 250 cm container — a suitable solution for your business.', 'A practical 400 × 250 cm container — a suitable solution for your business.', 'A practical 400 × 250 cm container — a suitable solution for your business.', 'A practical 400 × 285 cm container — a suitable solution for your business.', 'A practical 400 × 285 cm container — a suitable solution for your business.', 'A practical 500 × 250 cm container — a suitable solution for your business.', 'A practical 500 × 250 cm container — a suitable solution for your business.', 'A practical 500 × 285 cm container — a suitable solution for your business.', 'A practical 500 × 285 cm container — a suitable solution for your business.', 'A practical 500 × 285 cm container — a suitable solution for your business.', 'A practical 500 × 285 cm container — a suitable solution for your business.', 'A practical 500 × 285 cm container — a suitable solution for your business.', 'A practical 600 × 250 cm container — a suitable solution for your business.', 'A practical 600 × 285 cm container — a suitable solution for your business.', 'A practical 600 × 285 cm container — a suitable solution for your business.', 'A practical 600 × 285 cm container — a suitable solution for your business.', 'A practical 600 × 285 cm container — a suitable solution for your business.', 'A practical 600 × 285 cm container — a suitable solution for your business.', 'A practical 600 × 285 cm container — a suitable solution for your business.', 'A practical 600 × 285 cm container — a suitable solution for your business.', 'A practical 700 × 285 cm container — a suitable solution for your business.', 'A practical 700 × 285 cm container — a suitable solution for your business.', 'A practical 700 × 285 cm container — a suitable solution for your business.', 'A practical 800 × 285 cm container — a suitable solution for your business.', 'A practical 800 × 285 cm container — a suitable solution for your business.', 'A practical 600 × 570 cm container — a suitable solution for your business.', 'A practical 10 × 6 m container — a suitable solution for your business.', 'A practical container measuring 700 × 285 + 500 × 285 + 600 × 285 cm — a suitable solution for your business.', 'A practical container measuring 600 × 285 + 600 × 285 cm — a suitable solution for your business.', 'A practical container measuring 700 × 285 + 500 × 285 cm — a suitable solution for your business.', 'A practical 500 × 285 cm container — a suitable solution for your business.', 'A practical 600 × 285 cm container — a suitable solution for your business.', 'A practical 400 × 250 cm container — a suitable solution for your business.', 'Gastronomy container KB_39, measuring 300 × 250 cm — a compact space for your food service business.', 'A practical 500 × 285 cm container — a suitable solution for your business.', 'Sanitary container KB_41, measuring 340 × 220 cm.', 'Sanitary container KB_42, measuring 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 = `Add photos for ${activeItem.code}`; largeImage.style.display = 'grid'; largeImage.style.placeItems = 'center'; largeImage.style.color = '#6c7076'; imageCount.textContent = 'No photos available'; thumbnails.innerHTML = ''; return; }
const requestId = ++photoRequestId; const url = activeItem.photos[activePhoto]; thumbnails.innerHTML = '';
// Skip empty entries and automatically omit images with invalid URLs. if (!url || url.startsWith('WSTAW_URL_')) { activeItem.photos.splice(activePhoto, 1); activePhoto = activeItem.photos.length ? activePhoto % activeItem.photos.length : 0; showPhoto(); return; }
imageCount.textContent = 'Loading photo…'; 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} — photo ${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', `Show photo ${index + 1}`); thumb.title = `Photo ${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() === 'Contact');
if (contactFact) contactFact.querySelector('b').innerHTML = 'Sabina
+48 694 137 661';
const priceLabel = document.querySelector('.modalprice small');
if (priceLabel) priceLabel.textContent = 'Net price';
document.querySelector('#mPrice').textContent = `${item.price} EUR`;
document.querySelector('#askLabel').textContent = `Ask about ${item.name}`;
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('en-US') : ''; 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('en-US'); 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 = 'No models found. Change your search or choose a different container category.'; 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 = `Inquiry about ${item.name}`; const body = `Hello,\n\nPlease send me a quote for ${item.name} (${item.size}) at the net price of ${item.price} EUR.\n\nPlease contact me.\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(); } })();