Container-Preisliste
Wählen Sie ein fertiges Modell und informieren Sie sich über Maße und Preis. Jedes Modell bietet eine Fotogalerie und alle wichtigen Informationen – alles an einem Ort.
Preisinformation: Alle angegebenen Preise sind Nettopreise in EUR. Maße, Preise und Modellbeschreibungen basieren auf den bereitgestellten Angaben.
(() => { 'use strict';
function initKBCatalog() { const catalog = document.querySelector('#catalog'); // Ein separates Versionskennzeichen ermöglicht die Initialisierung des neuen Codes auch dann, // wenn ein älterer Snippet bereits das frühere Kennzeichen gesetzt hat. 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');
// Das Modal und seine Elemente müssen im HTML-Block der Preisliste vorhanden sein. if (!modal || !resultCount || !largeImage || !imageCount || !thumbnails || !closeButton || !previousButton || !nextButton || !contactButton) { console.warn('KB-Preisliste: Das Modal-Element fehlt. Fügen Sie den vollständigen HTML-Block der Preisliste ein.'); return; }
// WordPress-Themes können Galerietasten ausblenden oder überdecken. // Position und Sichtbarkeit direkt auf den Elementen festlegen. 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', '‹', 'Vorheriges Foto'); prepareArrow(nextButton, 'right', '›', 'Nächstes Foto');
window.__kbCatalogInitializedV2 = true; window.__kbCatalogInitialized = true;
// Die erste URL ist das Hauptbild, die folgenden URLs gehören zur Galerie. 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', 'Container KB_41 Sanitär', 'Container KB_42 Sanitär' ]; 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 = [ 'Kompaktes Modul für den Einstieg – zur Bedienung, zum Verkauf oder als kleiner Servicepunkt.', 'Geräumiger Verkaufspavillon mit großen Schaufenstern und Platz für Ihr Angebot.', 'Funktionales Büro, bereit zur Aufstellung am gewünschten Standort.', 'Durchdachte Raumaufteilung für Handel und Dienstleistungen mit hellem, offenem Innenraum.', 'Praktischer Container mit den Maßen 400 × 250 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 400 × 250 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 400 × 250 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 400 × 250 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 400 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 400 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 500 × 250 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 500 × 250 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 500 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 500 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 500 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 500 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 500 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 250 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 700 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 700 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 700 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 800 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 800 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 570 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 10 × 6 m – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 700 × 285 + 500 × 285 + 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 285 + 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 700 × 285 + 500 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 500 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 600 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Praktischer Container mit den Maßen 400 × 250 cm – eine passende Lösung für Ihr Unternehmen.', 'Gastronomiecontainer KB_39 mit den Maßen 300 × 250 cm – kompakter Raum für Ihren Gastronomiebetrieb.', 'Praktischer Container mit den Maßen 500 × 285 cm – eine passende Lösung für Ihr Unternehmen.', 'Sanitärcontainer KB_41 mit den Maßen 340 × 220 cm.', 'Sanitärcontainer KB_42 mit den Maßen 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 = `Fotos hinzufügen für ${activeItem.code}`; largeImage.style.display = 'grid'; largeImage.style.placeItems = 'center'; largeImage.style.color = '#6c7076'; imageCount.textContent = 'Keine Fotos verfügbar'; thumbnails.innerHTML = ''; return; }
const requestId = ++photoRequestId; const url = activeItem.photos[activePhoto]; thumbnails.innerHTML = '';
// Leere Einträge überspringen und Bilder mit ungültiger URL automatisch auslassen. if (!url || url.startsWith('WSTAW_URL_')) { activeItem.photos.splice(activePhoto, 1); activePhoto = activeItem.photos.length ? activePhoto % activeItem.photos.length : 0; showPhoto(); return; }
imageCount.textContent = 'Foto wird geladen…'; 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} — Foto ${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', `Foto anzeigen ${index + 1}`); thumb.title = `Foto ${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 = 'Nettopreis';
document.querySelector('#mPrice').textContent = `${item.price} EUR`;
document.querySelector('#askLabel').textContent = `ANFRAGE ZU ${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('de-DE') : ''; 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('de-DE'); 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 = 'Keine Modelle gefunden. Ändern Sie den Suchbegriff oder wählen Sie eine andere Containerkategorie.'; 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 = `Anfrage zu ${item.name}`; const body = `Guten Tag,\n\nbitte senden Sie mir ein Angebot für ${item.name} (${item.size}) zum Nettopreis von ${item.price} EUR.\n\nBitte kontaktieren Sie mich.\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(); } })();