(function () { // Set to false if you prefer to keep all images visible and only "focus" the best one var HIDE_NON_MATCHING = true; function getSelectedVariantId(container) { // Standard select var select = container.querySelector('select[name="id"]'); if (select && select.value) return select.value; // Radio-style variants var checked = container.querySelector('input[name="id"]:checked'); if (checked && checked.value) return checked.value; // Fallback: some themes store it on the form var form = container.querySelector('form[action*="/cart/add"]'); if (form && form.dataset && form.dataset.variantId) return form.dataset.variantId; return null; } function csvIncludes(csv, id) { if (!csv || !id) return false; return csv.split(',').map(function (s) { return s.trim(); }).includes(String(id)); } function activateForVariant(container, variantId) { var medias = container.querySelectorAll('.xp-media'); if (!medias.length) return; // Choose the best media for this variant var best = null; // Prefer media that is explicitly attached to the selected variant medias.forEach(function (el) { var csv = el.getAttribute('data-variant-ids') || ''; if (variantId && csvIncludes(csv, variantId)) { if (!best) best = el; if (el.hasAttribute('data-initial')) best = el; // featured_media wins } }); // Fallback to the initial (featured) or first item if (!best) best = container.querySelector('.xp-media[data-initial="true"]') || medias[0]; // Mark active medias.forEach(function (el) { el.classList.remove('xp-active'); }); if (best) best.classList.add('xp-active'); // Hide non-matching media if desired (keep generic media like videos visible) if (HIDE_NON_MATCHING) { medias.forEach(function (el) { var csv = el.getAttribute('data-variant-ids') || ''; var isGeneric = !csv; // videos/generic images var matches = csvIncludes(csv, variantId); el.style.display = (el === best || matches || isGeneric) ? '' : 'none'; }); } // Thumbnails var thumbs = container.querySelectorAll('.xp-thumb'); thumbs.forEach(function (el) { var csv = el.getAttribute('data-variant-ids') || ''; var isGeneric = !csv; var matches = csvIncludes(csv, variantId); el.style.display = (matches || isGeneric) ? '' : 'none'; }); } function handleChange(e) { var root = e.target.closest('[data-section-type="main-product"], [data-product-id], #MediaGallery-') || document; activateForVariant(root, getSelectedVariantId(root)); } function init() { document.querySelectorAll('[data-section-type="main-product"], [data-product-id], #MediaGallery-').forEach(function (container) { activateForVariant(container, getSelectedVariantId(container)); // Listen to variant changes container.addEventListener('change', function (e) { if (e.target.name === 'id' || (e.target.closest && e.target.closest('[name="id"]'))) handleChange(e); }); // Some themes dispatch a custom event on variant change container.addEventListener('variant:changed', handleChange); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();

Puinen ristinollapeli Alessio

Normaalihinta 0,00 € | 0,00 €/kpl
Myyntihinta 0,00 € Normaalihinta
Säästä 0
Loppuunmyyty

Puinen rasia, jossa on puinen ristinolla-peli. Kannen sisäpuolella on painettu pelikenttä pelaamista varten.

Materiaalit: Puu

Luokka: Ulkoilu ja rentoutuminen › Lelut

Hinta ilman ALV ja painatus