{"id":8681,"date":"2026-04-15T22:52:52","date_gmt":"2026-04-15T20:52:52","guid":{"rendered":"https:\/\/grckainternet.com\/?page_id=8681"},"modified":"2026-04-25T16:57:49","modified_gmt":"2026-04-25T14:57:49","slug":"vauceri","status":"publish","type":"page","link":"https:\/\/grckainternet.com\/en\/vauceri\/","title":{"rendered":"Vouchers"},"content":{"rendered":"<section class=\"bde-section-8681-100 bde-section\">\n              \n  \n  \n\t\n\n  <div class=\"section-background-overlay\"><\/div>\n\n\n        <div class=\"section-shape-divider-wrapper section-shape-divider-wrapper--1\">\n          <span class=\"section-shape-divider\">\n                      <svg\n                xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n                viewBox=\"0 0 1440 320\"\n                preserveAspectRatio=\"none\"\n            >\n              <path fill=\"currentColor\" fill-opacity=\"1\" d=\"M0,160L48,144C96,128,192,96,288,96C384,96,480,128,576,122.7C672,117,768,75,864,96C960,117,1056,203,1152,229.3C1248,256,1344,224,1392,208L1440,192L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z\"><\/path>\n            <\/svg>\n                    <\/span>\n      <\/div>\n  <div class=\"section-container\"><h1 class=\"bde-heading-8681-101 bde-heading\">\nAktivirajte svoj Gr\u010dkaInternet vau\u010der\n<\/h1><div class=\"bde-text-8681-102 bde-text\">\nUnesite kod vau\u010dera ili skenirajte QR kod sa vau\u010dera. Nakon toga c\u0301ete biti preusmereni na stranicu gde birate svoju zemlju i dobijate e-SIM karticu putem e-po\u0161te.\n<\/div><div class=\"bde-shortcode-8681-103 bde-shortcode\"><div class=\"cgate\" data-camera-error=\"Unable to access the camera. Check browser permissions and HTTPS.\">\r\n\t\t\t\r\n\t\t\t<form class=\"cgate__form\" method=\"post\">\r\n\t\t\t\t<input type=\"hidden\" id=\"cgate_nonce\" name=\"cgate_nonce\" value=\"51585aa8b5\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/8681\" \/>\t\t\t\t<input type=\"hidden\" name=\"cgate_action\" value=\"1\" \/>\r\n\t\t\t\t<input type=\"hidden\" name=\"cgate_redirect\" value=\"checkout\" \/>\r\n\r\n\t\t\t\t<label class=\"cgate__sr-only\" for=\"cgate-coupon-code-1\">\r\n\t\t\t\t\tCoupon code\t\t\t\t<\/label>\r\n\t\t\t\t<input\r\n\t\t\t\t\tid=\"cgate-coupon-code-1\"\r\n\t\t\t\t\tclass=\"cgate__input\"\r\n\t\t\t\t\tname=\"cgate_coupon_code\"\r\n\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\tvalue=\"\"\r\n\t\t\t\t\tplaceholder=\"Unesite kod kupona\"\r\n\t\t\t\t\tautocomplete=\"off\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t\/>\r\n\r\n\t\t\t\t<div class=\"cgate__actions\">\r\n\t\t\t\t\t<button type=\"submit\" class=\"cgate__button cgate__button--primary\">\r\n\t\t\t\t\t\tNastavi\t\t\t\t\t<\/button>\r\n\t\t\t\t\t<button type=\"button\" class=\"cgate__button cgate__button--secondary cgate__scan-trigger\">\r\n\t\t\t\t\t\tSkenirajte QR kod\t\t\t\t\t<\/button>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/form>\r\n\r\n\t\t\t<div class=\"cgate__modal\" aria-hidden=\"true\" role=\"dialog\" aria-modal=\"true\">\r\n\t\t\t\t<div class=\"cgate__modal-card\">\r\n\t\t\t\t\t<div class=\"cgate__modal-header\">\r\n\t\t\t\t\t\t<strong>Skenirajte QR kod kupona<\/strong>\r\n\t\t\t\t\t\t<button type=\"button\" class=\"cgate__modal-close\" aria-label=\"Close\">&times;<\/button>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<video class=\"cgate__video\" playsinline><\/video>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<style>\r\n\t\t\t\t.cgate {\r\n\t\t\t\t\tmax-width: 480px;\r\n\t\t\t\t\tdisplay: grid;\r\n\t\t\t\t\tgap: 12px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate *,\r\n\t\t\t\t.cgate *::before,\r\n\t\t\t\t.cgate *::after {\r\n\t\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__notices {\r\n\t\t\t\t\tfont-size: 0.95rem;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__form {\r\n\t\t\t\t\tdisplay: grid;\r\n\t\t\t\t\tgap: 16px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__sr-only {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\twidth: 1px;\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\tpadding: 0;\r\n\t\t\t\t\tmargin: -1px;\r\n\t\t\t\t\toverflow: hidden;\r\n\t\t\t\t\tclip: rect(0, 0, 0, 0);\r\n\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\tborder: 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__input {\r\n\t\t\t\t\tdisplay: block;\r\n\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\tfont: inherit;\r\n\t\t\t\t\tcolor: #111827;\r\n\t\t\t\t\tbackground: #ffffff;\r\n\t\t\t\t\tborder: 1px solid #d1d5db;\r\n\t\t\t\t\tborder-radius: 10px;\r\n\t\t\t\t\tpadding: 12px 14px;\r\n\t\t\t\t\ttransition: border-color 0.2s ease, box-shadow 0.2s ease;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__input:focus {\r\n\t\t\t\t\tborder-color: #2563eb;\r\n\t\t\t\t\tbox-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14);\r\n\t\t\t\t\toutline: none;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__actions {\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\tflex-wrap: wrap;\r\n\t\t\t\t\tgap: 12px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__button {\r\n\t\t\t\t\tappearance: none;\r\n\t\t\t\t\tborder: 1px solid transparent;\r\n\t\t\t\t\tborder-radius: 10px;\r\n\t\t\t\t\tpadding: 11px 18px;\r\n\t\t\t\t\tfont: inherit;\r\n\t\t\t\t\tfont-weight: 600;\r\n\t\t\t\t\tline-height: 1.2;\r\n\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\ttransition: transform 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__button:hover,\r\n\t\t\t\t.cgate__button:focus {\r\n\t\t\t\t\ttransform: translateY(-1px);\r\n\t\t\t\t\toutline: none;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__button--primary {\r\n\t\t\t\t\tbackground: #111827;\r\n\t\t\t\t\tborder-color: #111827;\r\n\t\t\t\t\tcolor: #ffffff;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__button--primary:hover,\r\n\t\t\t\t.cgate__button--primary:focus {\r\n\t\t\t\t\tbackground: #000000;\r\n\t\t\t\t\tborder-color: #000000;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__button--secondary {\r\n\t\t\t\t\tbackground: #ffffff;\r\n\t\t\t\t\tborder-color: #cbd5e1;\r\n\t\t\t\t\tcolor: #0f172a;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__button--secondary:hover,\r\n\t\t\t\t.cgate__button--secondary:focus {\r\n\t\t\t\t\tbackground: #f8fafc;\r\n\t\t\t\t\tborder-color: #94a3b8;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__modal {\r\n\t\t\t\t\tposition: fixed;\r\n\t\t\t\t\tinset: 0;\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\talign-items: center;\r\n\t\t\t\t\tjustify-content: center;\r\n\t\t\t\t\tpadding: 20px;\r\n\t\t\t\t\tbackground: rgba(15, 23, 42, 0.65);\r\n\t\t\t\t\topacity: 0;\r\n\t\t\t\t\tpointer-events: none;\r\n\t\t\t\t\ttransition: opacity 0.2s ease;\r\n\t\t\t\t\tz-index: 999999;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__modal.is-open {\r\n\t\t\t\t\topacity: 1;\r\n\t\t\t\t\tpointer-events: auto;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__modal-card {\r\n\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\tmax-width: 420px;\r\n\t\t\t\t\tdisplay: grid;\r\n\t\t\t\t\tgap: 16px;\r\n\t\t\t\t\tpadding: 20px;\r\n\t\t\t\t\tborder: 1px solid #cbd5e1;\r\n\t\t\t\t\tborder-radius: 16px;\r\n\t\t\t\t\tbackground: #f8fafc;\r\n\t\t\t\t\tcolor: #0f172a;\r\n\t\t\t\t\tbox-shadow: 0 20px 45px rgba(15, 23, 42, 0.12);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__modal-header {\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\talign-items: center;\r\n\t\t\t\t\tjustify-content: space-between;\r\n\t\t\t\t\tgap: 12px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__modal-close {\r\n\t\t\t\t\tappearance: none;\r\n\t\t\t\t\tborder: 1px solid #cbd5e1;\r\n\t\t\t\t\tborder-radius: 10px;\r\n\t\t\t\t\tbackground: #ffffff;\r\n\t\t\t\t\tcolor: #0f172a;\r\n\t\t\t\t\tfont-size: 26px;\r\n\t\t\t\t\tline-height: 1;\r\n\t\t\t\t\tpadding: 4px 10px;\r\n\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.cgate__video {\r\n\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\theight: auto;\r\n\t\t\t\t\tdisplay: block;\r\n\t\t\t\t\tborder: 1px solid #cbd5e1;\r\n\t\t\t\t\tborder-radius: 12px;\r\n\t\t\t\t\tbackground: #020617;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@media (max-width: 480px) {\r\n\t\t\t\t\t.cgate {\r\n\t\t\t\t\t\tmax-width: 100%;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t.cgate__actions {\r\n\t\t\t\t\t\tflex-direction: column;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t.cgate__button {\r\n\t\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t<\/style>\r\n\t\t\t<script>\r\n\t\t\t\t(() => {\r\n\t\t\t\t\tif (window.__cgateSnippetLoaded) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__cgateSnippetLoaded = true;\r\n\r\n\t\t\t\t\tconst rootSelector = '.cgate';\r\n\t\t\t\t\tconst couponParamKeys = ['coupon', 'coupon_code', 'coupon-code', 'couponcode'];\r\n\t\t\t\t\tlet jsQrPromise = null;\r\n\r\n\t\t\t\t\tconst loadJsQr = () => {\r\n\t\t\t\t\t\tif (window.jsQR) {\r\n\t\t\t\t\t\t\treturn Promise.resolve(window.jsQR);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (jsQrPromise) {\r\n\t\t\t\t\t\t\treturn jsQrPromise;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tjsQrPromise = new Promise((resolve, reject) => {\r\n\t\t\t\t\t\t\tconst script = document.createElement('script');\r\n\t\t\t\t\t\t\tscript.src = 'https:\/\/cdn.jsdelivr.net\/npm\/jsqr@1.4.0\/dist\/jsQR.js';\r\n\t\t\t\t\t\t\tscript.async = true;\r\n\t\t\t\t\t\t\tscript.onload = () => window.jsQR ? resolve(window.jsQR) : reject(new Error('jsQR unavailable'));\r\n\t\t\t\t\t\t\tscript.onerror = () => reject(new Error('Failed to load jsQR'));\r\n\t\t\t\t\t\t\tdocument.head.appendChild(script);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\treturn jsQrPromise;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tconst stopStream = (stream) => {\r\n\t\t\t\t\t\tif (!stream) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tstream.getTracks().forEach((track) => track.stop());\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tconst getElements = (container) => ({\r\n\t\t\t\t\t\tform: container.querySelector('.cgate__form'),\r\n\t\t\t\t\t\tinput: container.querySelector('.cgate__input'),\r\n\t\t\t\t\t\tmodal: container.querySelector('.cgate__modal'),\r\n\t\t\t\t\t\tvideo: container.querySelector('.cgate__video'),\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tconst openModal = (modal) => {\r\n\t\t\t\t\t\tmodal.classList.add('is-open');\r\n\t\t\t\t\t\tmodal.setAttribute('aria-hidden', 'false');\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tconst closeModal = (modal, video) => {\r\n\t\t\t\t\t\tif (!modal) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (video) {\r\n\t\t\t\t\t\t\tstopStream(video.srcObject || null);\r\n\t\t\t\t\t\t\tvideo.srcObject = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tmodal.classList.remove('is-open');\r\n\t\t\t\t\t\tmodal.setAttribute('aria-hidden', 'true');\r\n\t\t\t\t\t\tmodal.dispatchEvent(new CustomEvent('cgate:closed'));\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tconst alertCameraError = (container) => {\r\n\t\t\t\t\t\tconst message = container.getAttribute('data-camera-error') || 'Unable to access the camera.';\r\n\t\t\t\t\t\tif (typeof window.alert === 'function') {\r\n\t\t\t\t\t\t\twindow.alert(message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tconst extractCoupon = (text) => {\r\n\t\t\t\t\t\tif (!text) {\r\n\t\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst raw = String(text).trim();\r\n\t\t\t\t\t\tif (!raw) {\r\n\t\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tlet value = raw;\r\n\t\t\t\t\t\t\tif (!\/^[a-z]+:\\\/\\\/\/i.test(value)) {\r\n\t\t\t\t\t\t\t\tvalue = 'https:\/\/' + value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconst url = new URL(value);\r\n\r\n\t\t\t\t\t\t\tfor (const key of couponParamKeys) {\r\n\t\t\t\t\t\t\t\tconst param = url.searchParams.get(key) || url.searchParams.get(key.toUpperCase());\r\n\t\t\t\t\t\t\t\tif (param) {\r\n\t\t\t\t\t\t\t\t\treturn param.trim();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconst parts = url.pathname.split('\/').filter(Boolean);\r\n\t\t\t\t\t\t\tfor (let index = parts.length - 1; index >= 0; index -= 1) {\r\n\t\t\t\t\t\t\t\tconst segment = parts[index].trim();\r\n\t\t\t\t\t\t\t\tif (\/^(?!https?$)[A-Z0-9][A-Z0-9_-]{4,}$\/i.test(segment)) {\r\n\t\t\t\t\t\t\t\t\treturn segment;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\/\/ Fall through to regex parsing.\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst queryMatch = raw.match(\/[?&#](coupon|coupon_code|coupon-code|couponcode)=([^&#]+)\/i);\r\n\t\t\t\t\t\tif (queryMatch && queryMatch[2]) {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\treturn decodeURIComponent(queryMatch[2]).trim();\r\n\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\treturn queryMatch[2].trim();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst directMatch = raw.match(\/\\b(?!https?\\b)([A-Z0-9][A-Z0-9_-]{4,})\\b\/i);\r\n\t\t\t\t\t\treturn directMatch && directMatch[1] ? directMatch[1].trim() : '';\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tconst submitForm = (form) => {\r\n\t\t\t\t\t\tif (!form) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (typeof form.requestSubmit === 'function') {\r\n\t\t\t\t\t\t\tform.requestSubmit();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tform.submit();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tconst startScanner = async (container) => {\r\n\t\t\t\t\t\tconst { form, input, modal, video } = getElements(container);\r\n\r\n\t\t\t\t\t\tif (!form || !input || !modal || !video) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {\r\n\t\t\t\t\t\t\talertCameraError(container);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\topenModal(modal);\r\n\r\n\t\t\t\t\t\tlet stream = null;\r\n\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tstream = await navigator.mediaDevices.getUserMedia({\r\n\t\t\t\t\t\t\t\tvideo: { facingMode: { ideal: 'environment' } },\r\n\t\t\t\t\t\t\t\taudio: false,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\tcloseModal(modal, video);\r\n\t\t\t\t\t\t\talertCameraError(container);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvideo.srcObject = stream;\r\n\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tawait video.play();\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\/\/ Ignore autoplay rejections after a user gesture.\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet stopped = false;\r\n\t\t\t\t\t\tconst stopListener = () => {\r\n\t\t\t\t\t\t\tstopped = true;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tmodal.addEventListener('cgate:closed', stopListener, { once: true });\r\n\r\n\t\t\t\t\t\tconst handleCoupon = (couponValue) => {\r\n\t\t\t\t\t\t\tif (stopped || !couponValue) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconst coupon = String(couponValue).trim();\r\n\t\t\t\t\t\t\tif (!coupon) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tstopped = true;\r\n\t\t\t\t\t\t\tmodal.removeEventListener('cgate:closed', stopListener);\r\n\t\t\t\t\t\t\tinput.value = coupon;\r\n\t\t\t\t\t\t\tcloseModal(modal, video);\r\n\t\t\t\t\t\t\tsubmitForm(form);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tconst runBarcodeDetector = () => {\r\n\t\t\t\t\t\t\tconst detector = new window.BarcodeDetector({ formats: ['qr_code'] });\r\n\r\n\t\t\t\t\t\t\tconst tick = async () => {\r\n\t\t\t\t\t\t\t\tif (stopped) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tconst codes = await detector.detect(video);\r\n\t\t\t\t\t\t\t\t\tif (codes && codes.length && codes[0].rawValue) {\r\n\t\t\t\t\t\t\t\t\t\tconst coupon = extractCoupon(codes[0].rawValue);\r\n\t\t\t\t\t\t\t\t\t\tif (coupon) {\r\n\t\t\t\t\t\t\t\t\t\t\thandleCoupon(coupon);\r\n\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\t\t\/\/ Keep scanning.\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\twindow.requestAnimationFrame(tick);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\twindow.requestAnimationFrame(tick);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tconst runJsQr = async () => {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tawait loadJsQr();\r\n\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\tcloseModal(modal, video);\r\n\t\t\t\t\t\t\t\talertCameraError(container);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconst canvas = document.createElement('canvas');\r\n\t\t\t\t\t\t\tconst context = canvas.getContext('2d', { willReadFrequently: true });\r\n\r\n\t\t\t\t\t\t\tconst tick = () => {\r\n\t\t\t\t\t\t\t\tif (stopped || !video.srcObject || !context) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tconst width = video.videoWidth;\r\n\t\t\t\t\t\t\t\tconst height = video.videoHeight;\r\n\r\n\t\t\t\t\t\t\t\tif (!width || !height) {\r\n\t\t\t\t\t\t\t\t\twindow.requestAnimationFrame(tick);\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tcanvas.width = width;\r\n\t\t\t\t\t\t\t\tcanvas.height = height;\r\n\t\t\t\t\t\t\t\tcontext.drawImage(video, 0, 0, width, height);\r\n\r\n\t\t\t\t\t\t\t\tconst imageData = context.getImageData(0, 0, width, height);\r\n\t\t\t\t\t\t\t\tconst result = window.jsQR ? window.jsQR(imageData.data, imageData.width, imageData.height) : null;\r\n\r\n\t\t\t\t\t\t\t\tif (result && result.data) {\r\n\t\t\t\t\t\t\t\t\tconst coupon = extractCoupon(result.data);\r\n\t\t\t\t\t\t\t\t\tif (coupon) {\r\n\t\t\t\t\t\t\t\t\t\thandleCoupon(coupon);\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\twindow.requestAnimationFrame(tick);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\twindow.requestAnimationFrame(tick);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif ('BarcodeDetector' in window) {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\trunBarcodeDetector();\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\t\/\/ Fall through to jsQR.\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\trunJsQr();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tdocument.addEventListener('click', (event) => {\r\n\t\t\t\t\t\tconst root = event.target.closest(rootSelector);\r\n\t\t\t\t\t\tif (!root) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst { modal, video } = getElements(root);\r\n\r\n\t\t\t\t\t\tif (event.target.closest('.cgate__scan-trigger')) {\r\n\t\t\t\t\t\t\tstartScanner(root);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (event.target.closest('.cgate__modal-close') || (modal && event.target === modal)) {\r\n\t\t\t\t\t\t\tcloseModal(modal, video);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tdocument.addEventListener('keydown', (event) => {\r\n\t\t\t\t\t\tif (event.key !== 'Escape') {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdocument.querySelectorAll('.cgate__modal.is-open').forEach((modal) => {\r\n\t\t\t\t\t\t\tconst root = modal.closest(rootSelector);\r\n\t\t\t\t\t\t\tif (!root) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconst { video } = getElements(root);\r\n\t\t\t\t\t\t\tcloseModal(modal, video);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t})();\r\n\t\t\t<\/script><\/div><div class=\"bde-code-block-8681-133 bde-code-block\">\n\n\n\n<\/div><\/div>\n<\/section><section class=\"bde-section-8681-104 bde-section\">\n  \n  \n\t\n\n\n\n<div class=\"section-container\"><h2 class=\"bde-heading-8681-105 bde-heading\">\nKako to funkcioni\u0161e?\n<\/h2><div class=\"bde-grid-8681-106 bde-grid\">\n  \n  \n\t\n\n\n\n<div class=\"bde-icon-box-8681-107 bde-icon-box lift-up bde-preset-14108c77-6e3e-45d0-bdc4-7fc2d5997bcb\">\n\n    \n            <div class=\"ee-iconbox-icon breakdance-icon-atom\" >\n    \n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 256 512\"><!--! Font Awesome Free 6.5.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d=\"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z\"\/><\/svg>\n        \n        \n        \n            <\/div>\n    \n\n<div class=\"ee-iconbox-content\">\n      <h5 class=\"ee-iconbox-title bde-h3\" >Kupite vau\u010der<\/h5>\n        <div class=\"ee-iconbox-text\" >Kupite vau\u010der od na\u0161ih partnera. Vau\u010der sadr\u017ei <b>QR kod<\/b> i <b>kod vau\u010dera<\/b>.<\/div>\n    <\/div>\n\n<\/div><div class=\"bde-icon-box-8681-108 bde-icon-box lift-up bde-preset-14108c77-6e3e-45d0-bdc4-7fc2d5997bcb\">\n\n    \n            <div class=\"ee-iconbox-icon breakdance-icon-atom\" >\n    \n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 320 512\"><!--! Font Awesome Free 6.5.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d=\"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"\/><\/svg>\n        \n        \n        \n            <\/div>\n    \n\n<div class=\"ee-iconbox-content\">\n      <h5 class=\"ee-iconbox-title bde-h3\" >Skenirajte ili unesite kod<\/h5>\n        <div class=\"ee-iconbox-text\" >Skenirajte QR kod ili ru\u010dno unesite kod u polje iznad. <\/div>\n    <\/div>\n\n<\/div><div class=\"bde-icon-box-8681-109 bde-icon-box lift-up bde-preset-14108c77-6e3e-45d0-bdc4-7fc2d5997bcb\">\n\n    \n            <div class=\"ee-iconbox-icon breakdance-icon-atom\" >\n    \n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 320 512\"><!--! Font Awesome Free 6.5.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d=\"M0 64C0 46.3 14.3 32 32 32H272c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H105.4C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H80c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96H32C14.3 96 0 81.7 0 64z\"\/><\/svg>\n        \n        \n        \n            <\/div>\n    \n\n<div class=\"ee-iconbox-content\">\n      <h5 class=\"ee-iconbox-title bde-h3\" >Vnesi e\u2011mail<\/h5>\n        <div class=\"ee-iconbox-text\" >Unesite va\u017eec\u0301u adresu e-po\u0161te. Na tu adresu c\u0301ete dobiti e-SIM profilnu karticu sa uputstvima za instalaciju.<\/div>\n    <\/div>\n\n<\/div><div class=\"bde-icon-box-8681-110 bde-icon-box lift-up bde-preset-14108c77-6e3e-45d0-bdc4-7fc2d5997bcb\">\n\n    \n            <div class=\"ee-iconbox-icon breakdance-icon-atom\" >\n    \n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\"><!--! Font Awesome Free 6.5.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d=\"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z\"\/><\/svg>\n        \n        \n        \n            <\/div>\n    \n\n<div class=\"ee-iconbox-content\">\n      <h5 class=\"ee-iconbox-title bde-h3\" >Instalirajte i putujte<\/h5>\n        <div class=\"ee-iconbox-text\" >Aktivirajte e-SIM prema uputstvima. Najbolje je da ga instalirate pre polaska (preko Wi-Fi mre\u017ee) i aktivirate po dolasku.<\/div>\n    <\/div>\n\n<\/div>\n<\/div><\/div>\n<\/section><section class=\"bde-section-8681-111 bde-section\">\n  \n  \n\t\n\n\n\n<div class=\"section-container\"><h2 class=\"bde-heading-8681-112 bde-heading\">\nGde mo\u017eete pronac\u0301i na\u0161e vau\u010dere?\n<\/h2><div class=\"bde-grid-8681-114 bde-grid\">\n  \n  \n\t\n\n\n\n<div class=\"bde-div-8681-115 bde-div basic-shadow\">\n  \n  \n\t\n\n\n\n<img decoding=\"async\" class=\"bde-image2-8681-116 bde-image2\" src=\"https:\/\/grckainternet.com\/wp-content\/uploads\/2026\/04\/shimov-okta-300x42.png\" loading=\"lazy\" srcset=\"https:\/\/grckainternet.com\/wp-content\/uploads\/2026\/04\/shimov-okta.png 718w, https:\/\/grckainternet.com\/wp-content\/uploads\/2026\/04\/shimov-okta-300x42.png 300w, https:\/\/grckainternet.com\/wp-content\/uploads\/2026\/04\/shimov-okta-600x84.png 600w\" sizes=\"(max-width: 718px) 100vw, 718px\"><h5 class=\"bde-heading-8681-117 bde-heading\">\n\u0160imov \u0160t - Grani\u010dni prelaz Bogorodica (Gevgelija)\n<\/h5><div class=\"bde-rich-text-8681-118 bde-rich-text breakdance-rich-text-styles\">\n<p>Na izlazu iz Makedonije ka Gr\u010dkoj (300 metara pre grani\u010dnog prelaza)<\/p>\n<\/div><div class=\"bde-google-map-8681-119 bde-google-map\">\r\n<iframe width=\"100%\" height=\"100%\" style=\"border:0\" loading=\"lazy\" title=\"Map\" src=\"https:\/\/maps.google.com\/maps?q=shimov+bogorodica&t=m&z=18&output=embed&iwloc=near\" allowfullscreen><\/iframe>\n<\/div>\n<\/div><div class=\"bde-div-8681-120 bde-div basic-shadow\">\n  \n  \n\t\n\n\n\n<img decoding=\"async\" class=\"bde-image2-8681-121 bde-image2\" src=\"https:\/\/grckainternet.com\/wp-content\/uploads\/2026\/04\/shimov-okta-300x42.png\" loading=\"lazy\" srcset=\"https:\/\/grckainternet.com\/wp-content\/uploads\/2026\/04\/shimov-okta.png 718w, https:\/\/grckainternet.com\/wp-content\/uploads\/2026\/04\/shimov-okta-300x42.png 300w, https:\/\/grckainternet.com\/wp-content\/uploads\/2026\/04\/shimov-okta-600x84.png 600w\" sizes=\"(max-width: 718px) 100vw, 718px\"><h5 class=\"bde-heading-8681-122 bde-heading\">\n\u0160imov \u0160t - Grani\u010dni prelaz  Mrdaja (Dojran)\n<\/h5><div class=\"bde-rich-text-8681-123 bde-rich-text breakdance-rich-text-styles\">\n<p>Na izlazu iz Makedonije ka Gr\u010dkoj sa leve strane (300 metara pre grani\u010dnog prelaza)<\/p>\n<\/div><div class=\"bde-google-map-8681-124 bde-google-map\">\r\n<iframe width=\"100%\" height=\"100%\" style=\"border:0\" loading=\"lazy\" title=\"Map\" src=\"https:\/\/maps.google.com\/maps?q=OKTA+mrdaja&t=m&z=18&output=embed&iwloc=near\" allowfullscreen><\/iframe>\n<\/div>\n<\/div><div class=\"bde-div-8681-125 bde-div basic-shadow\">\n  \n  \n\t\n\n\n\n<img decoding=\"async\" class=\"bde-image2-8681-126 bde-image2\" src=\"https:\/\/new.grckainternet.com\/wp-content\/uploads\/2026\/04\/wiena-300x300.png\" loading=\"lazy\" srcset=\"https:\/\/new.grckainternet.com\/wp-content\/uploads\/2026\/04\/wiena.png 586w, https:\/\/new.grckainternet.com\/wp-content\/uploads\/2026\/04\/wiena-300x300.png 300w, https:\/\/new.grckainternet.com\/wp-content\/uploads\/2026\/04\/wiena-150x150.png 150w, https:\/\/new.grckainternet.com\/wp-content\/uploads\/2026\/04\/wiena-50x50.png 50w, https:\/\/new.grckainternet.com\/wp-content\/uploads\/2026\/04\/wiena-100x100.png 100w\" sizes=\"(max-width: 586px) 100vw, 586px\"><h5 class=\"bde-heading-8681-127 bde-heading\">\nWiena Petrol Josifovo\n<\/h5><div class=\"bde-rich-text-8681-128 bde-rich-text breakdance-rich-text-styles\">\n<p>Benzinska na Josifovo, ako odish ud deka Dojran<\/p>\n<\/div><div class=\"bde-google-map-8681-129 bde-google-map\">\r\n<iframe width=\"100%\" height=\"100%\" style=\"border:0\" loading=\"lazy\" title=\"Map\" src=\"https:\/\/maps.google.com\/maps?q=wiena+petrol+josifovo&t=m&z=18&output=embed&iwloc=near\" allowfullscreen><\/iframe>\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/section><section class=\"bde-section-8681-130 bde-section\">\n  \n  \n\t\n\n\n\n<div class=\"section-container\"><h2 class=\"bde-heading-8681-131 bde-heading\">\nImate pitanju?\n<\/h2><div class=\"bde-button-8681-132 bde-button\">\n        \n    \n    \n    \n    \n            \n                    \n            \n            \n\n    \n    \n    \n    \n    \n    <a class=\"breakdance-link button-atom button-atom--primary bde-button__button\" href=\"\/podrska\/\" target=\"_self\" data-type=\"url\"  >\n\n    \n        <span class=\"button-atom__text\">Kontaktirajte nas<\/span>\n\n        \n        \n                <\/a>\n\n    \n\n\n<\/div><\/div>\n<\/section>","protected":false},"excerpt":{"rendered":"<p>Aktivirajte svoj Gr\u010dkaInternet vau\u010der Unesite kod vau\u010dera ili skenirajte QR kod sa vau\u010dera. Nakon toga c\u0301ete biti preusmereni na stranicu gde birate svoju zemlju i dobijate e-SIM karticu putem e-po\u0161te. Coupon code Nastavi Skenirajte QR kod Skenirajte QR kod kupona &times; Kako to funkcioni\u0161e? Kupite vau\u010der Kupite vau\u010der od na\u0161ih partnera. Vau\u010der sadr\u017ei QR kod [&hellip;]<\/p>\n","protected":false},"author":33,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"bwfblock_default_font":"","_breakdance_hide_in_design_set":false,"_breakdance_tags":"","footnotes":""},"class_list":["post-8681","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/grckainternet.com\/en\/wp-json\/wp\/v2\/pages\/8681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grckainternet.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/grckainternet.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/grckainternet.com\/en\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/grckainternet.com\/en\/wp-json\/wp\/v2\/comments?post=8681"}],"version-history":[{"count":0,"href":"https:\/\/grckainternet.com\/en\/wp-json\/wp\/v2\/pages\/8681\/revisions"}],"wp:attachment":[{"href":"https:\/\/grckainternet.com\/en\/wp-json\/wp\/v2\/media?parent=8681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}