PageSourceSearch

https://www.zbranepresov.sk/catalog/view/theme/blackmarket/js/bm_up.js?v=1790931000

js zbranepresov.sk collected 2026-10-02 22:26:03 UTC 13,163 bytes, 170 lines download raw bytes

1/* BM-UPPOP: okno s odporucaniami hned po vlozeni do kosika + skupiny v kosiku. Claude 1.10.2026 */
2(function () {
3var css = '.bmup{position:fixed;inset:0;z-index:10050;background:rgba(10,11,12,.55);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;transition:opacity .2s}'
4+ '.bmup.is-on{opacity:1}'
5+ '.bmup *{box-sizing:border-box}'
6+ '.bmup__box{position:relative;background:#fff;color:var(--bm-ink,#141516);width:100%;max-width:700px;max-height:calc(100vh - 32px);overflow:auto;border-radius:6px;box-shadow:0 24px 70px rgba(0,0,0,.35);padding:22px 24px 18px;transform:translateY(12px);transition:transform .25s}'
7+ '.bmup.is-on .bmup__box{transform:none}'
8+ '.bmup__x{position:absolute;top:8px;right:8px;width:40px;height:40px;border:0;background:none;font:400 30px/1 Arial,sans-serif;color:#666;cursor:pointer;border-radius:4px}'
9+ '.bmup__x:hover{background:#f1f1f1;color:#111}'
10+ '.bmup__ok{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;align-items:center;padding-right:40px}'
11+ '.bmup__ok img{width:64px;height:64px;object-fit:contain;display:block}'
12+ '.bmup__k{margin:0 0 4px;font-weight:800;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:#1f8a3b}'
13+ '.bmup__k::before{content:"✓ "}'
14+ '.bmup__nm{margin:0;font-weight:700;font-size:1rem;line-height:1.3}'
15+ '.bmup__h{margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--bm-line,#e3e3e3);font-weight:800;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}'
16+ '.bmup__l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}'
17+ '.bmup__i{display:flex;flex-direction:column;gap:6px;border:1px solid var(--bm-line,#e3e3e3);border-radius:4px;padding:10px;min-width:0}'
18+ '.bmup__im img{display:block;width:100%;height:96px;object-fit:contain}'
19+ '.bmup__b{display:flex;flex-direction:column;gap:4px;flex:1 1 auto}'
20+ '.bmup__n{font-size:.82rem;font-weight:600;line-height:1.3;color:var(--bm-ink,#141516)!important;text-decoration:none;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}'
21+ '.bmup__p{font-weight:800;font-size:.95rem;margin-top:auto}'
22+ '.bmup__add{border:1px solid var(--bm-ink,#141516);background:#fff;color:var(--bm-ink,#141516);font-weight:700;font-size:.78rem;padding:9px 8px;cursor:pointer;white-space:nowrap}'
23+ '.bmup__add:hover{background:var(--bm-ink,#141516);color:#fff}'
24+ '.bmup__add[disabled]{cursor:default;opacity:.7}'
25+ '.bmup__add.is-done{border-color:#1f8a3b;background:#1f8a3b;color:#fff;opacity:1}'
26+ '.bmup__f{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px}'
27+ '.bmup__q{display:flex;align-items:center;gap:8px;margin:0 auto 0 0;font-size:.82rem;color:#666;font-weight:500;cursor:pointer}'
28+ '.bmup__q input{margin:0;width:16px;height:16px}'
29+ '.bmup__c{border:1px solid #cfcfcf;background:#fff;color:var(--bm-ink,#141516);font-weight:700;padding:12px 16px;cursor:pointer;font-size:.86rem}'
30+ '.bmup__c:hover{border-color:var(--bm-ink,#141516)}'
31+ 'a.bmup__go,a.bmup__go:visited{background:#c8102e;color:#fff!important;font-weight:800;padding:13px 18px;text-decoration:none;font-size:.84rem;text-transform:uppercase;letter-spacing:.05em}'
32+ 'a.bmup__go:hover{background:#a50d26}'
33+ '.bmup :focus-visible{outline:2px solid #c8102e;outline-offset:2px}'
34+ 'html.bmup-on{overflow:hidden}'
35+ '.bmco-up__g{margin:10px 0 0;font-size:.78rem;font-weight:600;color:#666}'
36+ '@media (max-width:640px){.bmup{align-items:flex-end;padding:0}.bmup__box{max-width:none;border-radius:12px 12px 0 0;max-height:90vh;padding:16px 14px 14px}.bmup__l{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bmup__im img{height:72px}.bmup__q{flex:1 1 100%;margin:0}.bmup__c,a.bmup__go{flex:1 1 0;text-align:center;padding:12px 8px}}'
37+ '@media (prefers-reduced-motion:reduce){.bmup,.bmup__box{transition:none}}';
38var st = document.createElement('style'); st.id = 'bmup-css'; st.textContent = css; document.head.appendChild(st);
39if (!window.jQuery || !window.fetch) { return; }
40var open = null, back = null;
41var H = { 'X-Requested-With': 'XMLHttpRequest' };
42function onKey(e) { if (e.key === 'Escape') { close(); } }
43function close() {
44if (!open) { return; }
45open.parentNode && open.parentNode.removeChild(open); open = null;
46document.documentElement.classList.remove('bmup-on');
47document.removeEventListener('keydown', onKey);
48if (back && back.focus) { try { back.focus(); } catch (e) {} }
49}
50function show(html) {
51close();
52var w = document.createElement('div'); w.innerHTML = html; open = w.firstElementChild;
53if (!open) { return; }
54back = document.activeElement;
55document.body.appendChild(open);
56document.documentElement.classList.add('bmup-on');
57document.addEventListener('keydown', onKey);
58var g = open.querySelector('.bmup__go');
58 if (g) { try { g.focus({ preventScroll: true }); } catch (e) {} }
59setTimeout(function () { if (open) { open.classList.add("is-on"); } }, 30);
60}
61function pidOf(d) {
62var s = typeof d === 'string' ? d : (d ? jQuery.param(d) : '');
63var m = /(?:^|&)product_id=(\d+)/.exec(s);
64return m ? m[1] : '';
65}
66jQuery(document).ajaxSuccess(function (e, xhr, s, json) {
67if (!s || !s.url || s.url.indexOf('checkout/cart/add') === -1) { return; }
68if (!json || typeof json !== 'object' || !json.success) { return; }
69var pid = pidOf(s.data); if (!pid) { return; }
70fetch('index.php?route=extension/module/bm_upsell/popup&product_id=' + pid, { credentials: 'same-origin', headers: H })
71.then(function (r) { return r.json(); })
72.then(function (j) { if (j && j.html) { show(j.html); } })
73.catch(function () {});
74});
75document.addEventListener('click', function (e) {
76if (!open) { return; }
77var t = e.target;
78if (t === open || (t.closest && t.closest('[data-bmup-close]'))) { e.preventDefault(); close(); return; }
79var b = t.closest && t.closest('[data-bmup-add]'); if (!b || b.disabled) { return; }
80e.preventDefault(); b.disabled = true;
81var fd = new URLSearchParams(); fd.set('product_id', b.getAttribute('data-bmup-add')); fd.set('quantity', b.getAttribute('data-min') || '1');
82fetch('index.php?route=checkout/cart/add', { method: 'POST', body: fd, credentials: 'same-origin', headers: H })
83.then(function (r) { return r.json(); })
84.then(function (j) {
85if (j && j.error) {
86if (j.error.option || j.error.recurring) { location = b.getAttribute('data-href'); return; }
87b.textContent = BM_L.cant_add; return;
88}
89if (j && j.redirect && !j.success) { location = j.redirect; return; }
90b.textContent = BM_L.added; b.classList.add('is-done');
91var c = document.getElementById('cart-total'); if (c && j && j.total) { c.textContent = j.total; }
92jQuery('#cart > ul').load('index.php?route=common/cart/info ul li');
93})
94.catch(function () { b.disabled = false; });
95});
96document.addEventListener('change', function (e) {
97var c = e.target; if (!open || !c.hasAttribute || !c.hasAttribute('data-bmup-quiet')) { return; }
98var fd = new URLSearchParams(); fd.set('on', c.checked ? '1' : '');
99fetch('index.php?route=extension/module/bm_upsell/quiet', { method: 'POST', body: fd, credentials: 'same-origin', headers: H }).catch(function () {});
100});
101})();
102
103/* BM-G6TRIG: ponuka spuste Timney na pistoli Glock Gen 6 – raz na prehliadac, vlavo dole (mobil spodny pruh). Claude 1.10.2026 */
104(function g6() {
105var tpl = document.getElementById('bm-g6'); if (!tpl) { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', g6); } return; } if (!window.fetch) { return; }
106var KEY = tpl.getAttribute('data-key') || 'bm_g6_shown';
107try { if (localStorage.getItem(KEY)) { return; } } catch (e) {}
108var css = '.g6p{position:fixed;z-index:9990;left:22px;bottom:22px;width:370px;max-width:calc(100vw - 24px);background:#141516;color:#f2f2f2;border:1px solid rgba(226,60,40,.55);border-radius:6px;box-shadow:0 22px 60px rgba(0,0,0,.45);overflow:hidden;transform:translateY(24px);opacity:0;transition:transform .35s ease,opacity .35s ease}'
109+ '.g6p.is-on{transform:none;opacity:1}.g6p *{box-sizing:border-box}'
110+ '.g6p__top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px 0 16px}'
111+ '.g6p__eb{display:flex;align-items:center;gap:8px;font-weight:800;font-size:.68rem;line-height:1;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.66)}'
112+ '.g6p__eb::before{content:"";width:18px;height:3px;background:#E23C28}'
113+ '.g6p__x{appearance:none;border:0;background:none;color:rgba(255,255,255,.6);font:400 26px/1 Arial,sans-serif;width:34px;height:34px;cursor:pointer;border-radius:3px}'
114+ '.g6p__x:hover{color:#fff;background:rgba(255,255,255,.08)}'
115+ '.g6p__b{display:grid;grid-template-columns:118px 1fr;gap:14px;align-items:center;padding:6px 16px 4px}'
116+ '.g6p .g6p__b img{display:block;width:118px;height:96px;object-fit:contain;filter:drop-shadow(0 10px 10px rgba(0,0,0,.6))}'
117+ '.g6p__h{margin:0 0 5px;font-weight:900;font-size:1.05rem;line-height:1.05;text-transform:uppercase;color:#fff}'
118+ '.g6p__p{margin:0;font-weight:500;font-size:.86rem;line-height:1.4;color:rgba(255,255,255,.72)}'
119+ '.g6p__f{display:flex;align-items:center;gap:10px;padding:12px 16px 16px}'
120+ '.g6p__pr{font-weight:800;font-size:1.25rem;line-height:1;color:#ff6b55;margin-right:auto}'
121+ '.g6p__add{appearance:none;border:0;cursor:pointer;background:#E23C28;color:#fff;font-weight:800;font-size:.76rem;line-height:1;letter-spacing:.1em;text-transform:uppercase;padding:12px 14px;border-radius:3px}'
122+ '.g6p__add:hover{background:#ff6b55}.g6p__add[disabled]{cursor:default}.g6p__add.is-done{background:#1f8a3b}'
123+ 'a.g6p__more,a.g6p__more:visited{color:rgba(255,255,255,.82)!important;font-weight:700;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px}'
124+ '.g6p :focus-visible{outline:2px solid #ff6b55;outline-offset:2px}'
125+ '.g6p--m{width:410px}'
126+ '.g6p__lead{margin:4px 16px 8px;font-size:.84rem;line-height:1.4;color:rgba(255,255,255,.72)}'
127+ '.g6p__l{list-style:none;margin:0;padding:2px 16px 14px;display:grid;gap:8px}'
128+ '.g6p__l li{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:6px 8px}'
129+ '.g6p .g6p__im img{display:block;width:56px;height:44px;object-fit:contain;background:#fff;border-radius:3px}'
130+ '.g6p__t{display:grid;gap:3px;min-width:0}'
131+ '.g6p__t a,.g6p__t a:visited{color:#fff!important;font-weight:800;font-size:.84rem;line-height:1.2;text-decoration:none}'
132+ '.g6p__t small{font-size:.74rem;line-height:1.3;color:rgba(255,255,255,.62)}'
133+ '.g6p__e{display:grid;gap:5px;justify-items:end}'
134+ '.g6p__e b{font-weight:800;font-size:.95rem;line-height:1;color:#ff6b55;white-space:nowrap}'
135+ '.g6p__l .g6p__add{padding:8px 10px;font-size:.68rem;letter-spacing:.06em;white-space:nowrap}'
136+ '@media (max-width:600px){.g6p{left:8px;right:8px;bottom:8px;width:auto;max-width:none}.g6p__b{grid-template-columns:92px 1fr;gap:10px;padding:4px 12px 2px}.g6p .g6p__b img{width:92px;height:74px}.g6p__p{font-size:.8rem}.g6p__f{padding:10px 12px 12px}}'
137+ '@media (prefers-reduced-motion:reduce){.g6p{transition:none}}';
138function blocked() {
139var b = document.querySelectorAll('.bmc, .bm-notice, .bmup');
140for (var i = 0; i < b.length; i++) { if (b[i].offsetParent !== null || getComputedStyle(b[i]).position === 'fixed' && getComputedStyle(b[i]).display !== 'none' && b[i].getClientRects().length) { return true; } }
141return false;
142}
143var tries = 0;
144function tryShow() {
145if (document.hidden || blocked()) { if (++tries < 90) { setTimeout(tryShow, 2000); } return; }
146var st = document.createElement('style'); st.textContent = css; document.head.appendChild(st);
147var w = document.createElement('div'); w.innerHTML = tpl.innerHTML; var el = w.firstElementChild; if (!el) { return; }
148document.body.appendChild(el);
149try { localStorage.setItem(KEY, String(Date.now())); } catch (e) {}
150setTimeout(function () { el.classList.add('is-on'); }, 30);
151function close() { el.classList.remove('is-on'); setTimeout(function () { if (el.parentNode) { el.parentNode.removeChild(el); } }, 350); }
152el.addEventListener('click', function (e) {
153if (e.target.closest('[data-g6-close]')) { close(); return; }
154var b = e.target.closest('[data-g6-add]'); if (!b || b.disabled) { return; }
155b.disabled = true;
156var fd = new URLSearchParams(); fd.set('product_id', b.getAttribute('data-g6-add')); fd.set('quantity', '1');
157fetch('index.php?route=checkout/cart/add', { method: 'POST', body: fd, credentials: 'same-origin', headers: { 'X-Requested-With': 'XMLHttpRequest' } })
158.then(function (r) { return r.json(); })
159.then(function (j) {
160if (j && (j.error || (j.redirect && !j.success))) { location = b.getAttribute('data-href'); return; }
161b.textContent = BM_L.in_cart; b.classList.add('is-done');
162var c = document.getElementById('cart-total'); if (c && j && j.total) { c.textContent = j.total; }
163if (window.jQuery) { jQuery('#cart > ul').load('index.php?route=common/cart/info ul li'); }
164})
165.catch(function () { b.disabled = false; });
166});
167document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && el.parentNode) { close(); } });
168}
169setTimeout(tryShow, 4000);
170})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.