• Fotobatohy
  • Need Help?
    +420 228 811 811
    Mo-Fri: 9AM – 5PM CET
  • My account
  • is empty
    for 0 Kč
 Specification
ZnačkaF Stop
Hmotnost0 kg
Barvašedá
zelená
Rozměry (švh)28 x 25,5 x 25,5 cm
Objem0 litrů
Materiáltkanina
Typ zapínánízip
Místo pro notebook0 ''
Počet tělnespecifikováno ks
Počet objektivůnespecifikováno ks
Vlastnostiodolný vůči povětrnostním vlivům
Přístup k technicepřístup z boku
Určenídámské
pánské
Vnitřní uspořádáníNastavitelné
Specializovánouniverzální
 
We use cookies for the proper functioning of our website and its functions. With the help of cookies, we also, for example, remember your preferred language, increase the relevance of the displayed ads for you, calculate the number of visits to the site and remember your settings made on the site.
function syncPiecesAndDeliveryToPava(scope) { // scope = dokument / konkrétní produkt / konkrétní karta const containers = scope.querySelectorAll('#product_list > li.p_cart_block, .p_detail_right, body'); // Helper: vytáhni datum z .delivery-estimate (např. "Obdržíte do 20.01") function extractDateText(deliveryEl) { if (!deliveryEl) return ''; const t = (deliveryEl.textContent || '').trim(); const m = t.match(/(\d{2}\.\d{2})/); return m ? m[1] : ''; } // Helper: vytáhni kusy z textu dostupnosti ("Skladem 1 ks" / "Centrální sklad 8 ks") function extractPiecesFromAvailabilityText(text) { const t = (text || '').replace(/\s+/g, ' ').trim(); const m = t.match(/(\d+)\s*ks/i); return m ? m[1] : ''; } // Pro každý produkt/kartu zkus najít zdroje a cíle uvnitř const productRoots = scope.querySelectorAll('#product_list > li.p_cart_block, .p_detail_right'); productRoots.forEach(root => { const delivery = root.querySelector('.delivery-estimate'); const deliveryDDMM = extractDateText(delivery); if (!deliveryDDMM) return; // když není datum, nic neduplikuj // Zdroje dostupnosti (detail i výpis) const availabilityEl = root.querySelector('.p_detail_availability [data-variant="availability"]') || root.querySelector('.p_block .p_g.p_action') || root.querySelector('.p_g[data-variant="availability"]') || root.querySelector('.p_g.p_action'); const pieces = extractPiecesFromAvailabilityText(availabilityEl ? availabilityEl.textContent : ''); // Cíl: modul p_ava (může být div nebo span, proto obecně) const pava = root.querySelector('div.p_ava.p_g.p_action') || root.querySelector('span.p_ava.p_g.p_action') || root.querySelector('.p_ava.p_g.p_action'); if (!pava) return; // Sestav text: zachovej původní text a jen doplň ks + datum do druhého řádku // 1) doplnění ks (pokud máš) const baseText = (pava.textContent || '').trim() || (availabilityEl ? availabilityEl.textContent.trim() : ''); const baseNoPieces = baseText.replace(/\s*\d+\s*ks\b/ig, '').trim(); const piecesPart = pieces ? ` ${pieces} ks` : ''; const line1 = `${baseNoPieces}${piecesPart}`.trim(); // 2) datum na nový řádek (stejný pattern jako u detailu) const line2 = `Obdržíte do ${deliveryDDMM}`; // aby se to neduplikovalo opakovaně: // držíme si vlastní span uvnitř pava let extra = pava.querySelector('.pava-extra'); if (!extra) { extra = document.createElement('span'); extra.className = 'pava-extra'; extra.style.display = 'block'; // jen layout, bez stylování barvy apod. pava.appendChild(extra); } // nastav texty pava.childNodes.forEach(n => { // necháme jen text node prvního řádku + extra span // (jednoduše: přepíšeme obsah bezpečně) }); // bezpečný přepis: nejdřív vyčisti pava, pak vlož 1. řádek + extra pava.textContent = line1; pava.appendChild(extra); extra.textContent = line2; }); } // zavolej po tvém hlavním výpočtu / vložení .delivery-estimate syncPiecesAndDeliveryToPavaModule(); function syncPiecesAndDeliveryToPavaModule(){ syncPiecesAndDeliveryToPava(document); }