{"id":5322,"date":"2026-03-07T01:05:01","date_gmt":"2026-03-06T23:05:01","guid":{"rendered":"https:\/\/crofil3d.com\/chat-podrska\/"},"modified":"2026-03-12T11:14:05","modified_gmt":"2026-03-12T09:14:05","slug":"chat-podrska","status":"publish","type":"page","link":"https:\/\/crofil3d.com\/hr\/chat-podrska\/","title":{"rendered":"Chat Podr\u0161ka"},"content":{"rendered":"<style>\n\/* \u2500\u2500\u2500 SAKRIJ NASLOV WP STRANICE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nbody.page-id-5322 .entry-title,\nbody.page-id-5322 h1.page-title,\nbody.page-id-5322 .page-header,\nbody.page-id-5322 .entry-header { display: none !important; }\n\n\/* \u2500\u2500\u2500 PRE-CHAT FORMA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#crofil-prechat {\n  max-width: 800px;\n  margin: 0 auto;\n  background: #ffffff;\n  border-radius: 14px;\n  box-shadow: 0 8px 30px rgba(0,0,0,.12);\n  border: 1px solid #e5e7eb;\n  overflow: hidden;\n}\n#crofil-prechat-header {\n  background: linear-gradient(135deg, #1863DC 0%, #0d4ab8 100%);\n  color: #fff;\n  padding: 28px 32px 24px;\n  text-align: center;\n}\n#crofil-prechat-header .prechat-icon {\n  font-size: 36px;\n  margin-bottom: 10px;\n  display: block;\n}\n#crofil-prechat-header h2 {\n  margin: 0 0 6px;\n  font-size: 20px;\n  font-weight: 700;\n  letter-spacing: -0.2px;\n}\n#crofil-prechat-header p {\n  margin: 0;\n  font-size: 14px;\n  opacity: .85;\n}\n#crofil-prechat-body {\n  padding: 28px 32px 24px;\n}\n#crofil-prechat-body label {\n  display: block;\n  font-size: 13px;\n  font-weight: 600;\n  color: #374151;\n  margin-bottom: 6px;\n}\n#crofil-prechat-body input {\n  width: 100%;\n  box-sizing: border-box;\n  padding: 11px 15px;\n  border: 1.5px solid #d1d5db;\n  border-radius: 10px;\n  font-size: 15px;\n  color: #111827;\n  background: #f9fafb;\n  margin-bottom: 16px;\n  transition: border-color .2s, box-shadow .2s;\n  font-family: inherit;\n  outline: none;\n}\n#crofil-prechat-body input:focus {\n  border-color: #1863DC;\n  box-shadow: 0 0 0 3px rgba(24,99,220,.12);\n  background: #fff;\n}\n#crofil-prechat-body input.input-error {\n  border-color: #ef4444;\n  box-shadow: 0 0 0 3px rgba(239,68,68,.10);\n}\n#crofil-prechat-submit {\n  width: 100%;\n  padding: 13px;\n  background: linear-gradient(135deg, #1863DC 0%, #0056A7 100%);\n  color: #fff;\n  border: none;\n  border-radius: 10px;\n  font-size: 15px;\n  font-weight: 700;\n  cursor: pointer;\n  font-family: inherit;\n  transition: transform .15s, box-shadow .15s;\n  box-shadow: 0 4px 14px rgba(24,99,220,.35);\n  margin-top: 4px;\n}\n#crofil-prechat-submit:hover:not(:disabled) {\n  transform: translateY(-1px);\n  box-shadow: 0 6px 20px rgba(24,99,220,.45);\n}\n#crofil-prechat-submit:disabled {\n  opacity: .7;\n  cursor: not-allowed;\n}\n#crofil-prechat-note {\n  font-size: 11.5px;\n  color: #9ca3af;\n  text-align: center;\n  margin-top: 14px;\n}\n#crofil-prechat-error {\n  color: #ef4444;\n  font-size: 13px;\n  text-align: center;\n  margin-top: 10px;\n  display: none;\n}\n\n\/* \u2500\u2500\u2500 WIDGET WRAPPER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#n8n-chat {\n  max-width: 800px;\n  margin: 0 auto;\n  border-radius: 14px;\n  overflow: hidden;\n  box-shadow: 0 8px 30px rgba(0,0,0,.12);\n  display: none; \/* sakrij dok forma nije popunjena *\/\n\n  --chat--color--primary:            #1863DC;\n  --chat--color--primary-shade-50:   #0056A7;\n  --chat--color--primary--shade-100: #0d4ab8;\n  --chat--color--secondary:          #1863DC;\n  --chat--color-dark:                #0d4ab8;\n  --chat--color-white:               #ffffff;\n  --chat--color-light:               #f3f4f6;\n  --chat--color-light-shade-50:      #e5e7eb;\n\n  --chat--window--width:         100%;\n  --chat--window--height:        600px;\n  --chat--window--border-radius: 14px;\n  --chat--window--border:        1px solid #e5e7eb;\n  --chat--border-radius:         10px;\n\n  --chat--message--font-size:         0.94rem;\n  --chat--message--padding:           12px 15px;\n  --chat--message--border-radius:     4px 16px 16px 16px;\n  --chat--message--bot--background:   #ffffff;\n  --chat--message--bot--color:        #1f2937;\n  --chat--message--bot--border:       1px solid #e5e7eb;\n  --chat--message--user--background:  #1863DC;\n  --chat--message--user--color:       #ffffff;\n  --chat--message--user--border:      none;\n\n  --chat--input--border:              1.5px solid #d1d5db;\n  --chat--input--border-radius:       25px;\n  --chat--input--padding:             10px 18px;\n  --chat--input--border-active:       1.5px solid #1863DC;\n  --chat--input--container--background: #f9fafb;\n  --chat--textarea--height:           44px;\n}\n\n\/* Shell wrapper sakrij (no-input \/ getStarted state) *\/\n#n8n-chat > .chat-window-wrapper { display: none !important; }\n\n\/* Launcher i toggle gumbi sakrij *\/\n.chat-launcher,\n.chat-window-toggle { display: none !important; }\n\n\/* \"Powered by n8n\" sakrij *\/\n.chat-powered-by { display: none !important; }\n\n\/* CSS varijable za stvarni container *\/\n#n8n-chat-container {\n  --chat--color--primary:            #1863DC;\n  --chat--color--primary-shade-50:   #0056A7;\n  --chat--color-dark:                #0d4ab8;\n  --chat--message--user--background: #1863DC;\n  --chat--message--user--color:      #ffffff;\n  --chat--message--bot--background:  #ffffff;\n  --chat--input--border-radius:      25px;\n  --chat--border-radius:             10px;\n  --chat--window--border-radius:     14px;\n}\n\n\/* Premje\u0161teni container \u2014 inline pozicija *\/\n#n8n-chat #n8n-chat-container { display: block !important; }\n#n8n-chat #n8n-chat-container .chat-window-wrapper {\n  position: relative !important;\n  width: 100% !important;\n  height: auto !important;\n  inset: auto !important;\n  bottom: auto !important;\n  right: auto !important;\n  max-width: 100% !important;\n}\n#n8n-chat #n8n-chat-container .chat-window {\n  display: flex !important;\n  position: relative !important;\n  width: 100% !important;\n  max-width: 100% !important;\n  box-shadow: none !important;\n  border-radius: 14px !important;\n}\n\n\/* Send button *\/\n.chat-input-send-button {\n  background: linear-gradient(135deg, #1863DC, #0056A7) !important;\n}\n.chat-input-send-button:hover { background: #0056A7 !important; }\n\n\/* User poruke *\/\n.chat-message-from-user .chat-message {\n  background: #1863DC !important;\n  color: #ffffff !important;\n  border-radius: 16px 4px 16px 16px !important;\n  box-shadow: 0 2px 10px rgba(24,99,220,.25);\n}\n\n\/* Linkovi u bot porukama \u2192 gumbi *\/\n.chat-message-from-bot .chat-message-markdown a {\n  display: inline-block !important;\n  background: linear-gradient(135deg, #1863DC 0%, #0056A7 100%) !important;\n  color: #ffffff !important;\n  padding: 10px 22px !important;\n  border-radius: 25px !important;\n  text-decoration: none !important;\n  font-weight: 600 !important;\n  font-size: 13.5px !important;\n  margin: 10px 0 4px !important;\n  box-shadow: 0 3px 14px rgba(24,99,220,.35) !important;\n  transition: transform .18s ease, box-shadow .18s ease !important;\n  border: none !important;\n}\n.chat-message-from-bot .chat-message-markdown a:hover {\n  transform: translateY(-2px) !important;\n  box-shadow: 0 6px 20px rgba(24,99,220,.45) !important;\n}\n\n\/* Scrollbar *\/\n.chat-messages-list::-webkit-scrollbar { width: 5px; }\n.chat-messages-list::-webkit-scrollbar-track { background: transparent; }\n.chat-messages-list::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }\n\n\/* Gumb za novi razgovor *\/\n#crofil-new-chat {\n  display: none;\n  max-width: 800px;\n  margin: 10px auto 0;\n  text-align: right;\n}\n#crofil-new-chat button {\n  background: none;\n  border: none;\n  color: #6b7280;\n  font-size: 12px;\n  cursor: pointer;\n  padding: 4px 8px;\n  border-radius: 6px;\n  font-family: inherit;\n  transition: color .15s, background .15s;\n}\n#crofil-new-chat button:hover {\n  color: #1863DC;\n  background: #f0f4ff;\n}\n\n\/* Obnovljene poruke \u2014 vizualno identi\u010dne originalnim *\/\n.chat-message-from-bot[data-restored] .chat-message {\n  background: #ffffff !important;\n  color: #1f2937 !important;\n  border: 1px solid #e5e7eb !important;\n  border-radius: 4px 16px 16px 16px !important;\n  box-shadow: 0 2px 8px rgba(0,0,0,.06) !important;\n}\n\n\/* Separator \"Prethodni razgovor\" *\/\n.crofil-history-sep {\n  text-align: center;\n  font-size: 11px;\n  color: #9ca3af;\n  margin: 6px 0 8px;\n  display: flex;\n  align-items: center;\n  gap: 8px;\n}\n.crofil-history-sep::before,\n.crofil-history-sep::after {\n  content: '';\n  flex: 1;\n  height: 1px;\n  background: #e5e7eb;\n}\n.crofil-history-end-sep {\n  text-align: center;\n  font-size: 11px;\n  color: #9ca3af;\n  margin: 6px 0 10px;\n  display: flex;\n  align-items: center;\n  gap: 8px;\n}\n.crofil-history-end-sep::before,\n.crofil-history-end-sep::after {\n  content: '';\n  flex: 1;\n  height: 1px;\n  background: #e5e7eb;\n}\n\n\/* \u2500\u2500\u2500 MOBILE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media (max-width: 580px) {\n  #n8n-chat { --chat--window--height: 72vh; }\n  #crofil-prechat-header { padding: 22px 20px 18px; }\n  #crofil-prechat-body { padding: 20px 20px 18px; }\n}\n<\/style>\n\n<!-- Pre-chat forma -->\n<div id=\"crofil-prechat\">\n  <div id=\"crofil-prechat-header\">\n    <span class=\"prechat-icon\">\ud83d\udcac<\/span>\n    <h2>Crofil3D Podr\u0161ka<\/h2>\n    <p>Unesite svoje podatke i odmah \u0107ete biti spojeni s AI asistentom<\/p>\n  <\/div>\n  <div id=\"crofil-prechat-body\">\n    <label for=\"prechat-email\">Email adresa *<\/label>\n    <input type=\"email\" id=\"prechat-email\" placeholder=\"vasa@email.com\" autocomplete=\"email\" \/>\n\n    <label for=\"prechat-phone\">Broj mobitela *<\/label>\n    <input type=\"tel\" id=\"prechat-phone\" placeholder=\"+385 91 234 5678\" autocomplete=\"tel\" \/>\n\n    <button id=\"crofil-prechat-submit\" onclick=\"submitPrechat()\">\n      Pokreni razgovor \u2192\n    <\/button>\n    <div id=\"crofil-prechat-error\">Molimo unesite ispravnu email adresu i broj mobitela.<\/div>\n    <div id=\"crofil-prechat-note\">\n      Va\u0161i podaci koriste se isklju\u010divo za potrebe podr\u0161ke i ne\u0107e biti dijeljeni s tre\u0107im stranama.\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- n8n Chat Widget (skriveno dok forma nije ispunjena) -->\n<div id=\"n8n-chat\"><\/div>\n\n<!-- Gumb za novi razgovor -->\n<div id=\"crofil-new-chat\">\n  <button onclick=\"crofilNewChat()\">\u21ba Novi razgovor<\/button>\n<\/div>\n\n<!-- Fetch interceptor: intercepts GET to n8n chat webhook (loadPreviousSession).\n     n8n Chat Trigger ne registrira GET endpoint, pa vra\u0107amo prazan niz [] da\n     widget nastavi bez crash-a. Mora biti non-module script (izvodi se sinkrono\n     prije ES module importa koji zarobljava globalnu fetch referencu). -->\n<script>\n(function() {\n  var _orig = window.fetch;\n  window.fetch = function(url, opts) {\n    var method = (opts && opts.method ? opts.method : 'GET').toUpperCase();\n    var urlStr = typeof url === 'string' ? url : String(url);\n    if (urlStr.indexOf('\/webhook\/crofil3d-chat-v3\/chat') !== -1 && method === 'GET') {\n      return Promise.resolve(\n        new Response('[]', { status: 200, headers: { 'Content-Type': 'application\/json' } })\n      );\n    }\n    return _orig.apply(this, arguments);\n  };\n})();\n<\/script>\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/@n8n\/chat@1.11.0\/dist\/style.css\" \/>\n<script type=\"module\">\nimport { createChat } from 'https:\/\/cdn.jsdelivr.net\/npm\/@n8n\/chat@1.11.0\/dist\/chat.bundle.es.js';\n\n\/\/ \u2500\u2500\u2500 KLJU\u010cEVI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst HISTORY_KEY = 'crofil3d_chat_history';\nconst CONTACT_KEY = 'crofil3d_contact';\nconst LEAD_WEBHOOK = 'https:\/\/n8n.crofil3d.com\/webhook\/crofil3d-lead';\n\nlet isRestoring = false;\n\n\/\/ \u2500\u2500\u2500 POMO\u0106NE FUNKCIJE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction getHistory() {\n  try { return JSON.parse(localStorage.getItem(HISTORY_KEY) || '[]'); }\n  catch { return []; }\n}\n\nfunction getContact() {\n  try { return JSON.parse(localStorage.getItem(CONTACT_KEY) || 'null'); }\n  catch { return null; }\n}\n\nfunction debounce(fn, ms) {\n  let t;\n  return (...a) => { clearTimeout(t); t = setTimeout(() => fn(...a), ms); };\n}\n\nfunction saveAllMessages() {\n  if (isRestoring) return;\n  const list = document.querySelector('#n8n-chat .chat-messages-list');\n  if (!list) return;\n  const msgs = [];\n  list.querySelectorAll('.chat-message-from-user, .chat-message-from-bot').forEach(el => {\n    if (el.dataset.restored) return;\n    const isUser = el.classList.contains('chat-message-from-user');\n    const content = el.querySelector('.chat-message-markdown');\n    if (!content || !content.textContent.trim()) return;\n    msgs.push({ role: isUser ? 'user' : 'bot', html: content.innerHTML });\n  });\n  if (msgs.length) localStorage.setItem(HISTORY_KEY, JSON.stringify(msgs));\n}\n\nconst debouncedSave = debounce(saveAllMessages, 3500);\n\nfunction makeMessageEl(role, html) {\n  const wrap = document.createElement('div');\n  wrap.className = role === 'user' ? 'chat-message-from-user' : 'chat-message-from-bot';\n  wrap.dataset.restored = '1';\n  wrap.innerHTML = `<div class=\"chat-message\"><div class=\"chat-message-markdown\">${html}<\/div><\/div>`;\n  return wrap;\n}\n\nfunction injectHistory() {\n  const history = getHistory();\n  if (!history.length) return false;\n  const list = document.querySelector('#n8n-chat .chat-messages-list');\n  if (!list) return false;\n\n  isRestoring = true;\n\n  const sepStart = document.createElement('div');\n  sepStart.className = 'crofil-history-sep';\n  sepStart.dataset.restored = '1';\n  sepStart.textContent = 'Prethodni razgovor';\n\n  const frag = document.createDocumentFragment();\n  frag.appendChild(sepStart);\n  history.forEach(m => frag.appendChild(makeMessageEl(m.role, m.html)));\n\n  const sepEnd = document.createElement('div');\n  sepEnd.className = 'crofil-history-end-sep';\n  sepEnd.dataset.restored = '1';\n  sepEnd.textContent = 'Novi razgovor \u2193';\n  frag.appendChild(sepEnd);\n\n  list.insertBefore(frag, list.firstChild);\n  list.scrollTop = list.scrollHeight;\n\n  setTimeout(() => { isRestoring = false; }, 300);\n  return true;\n}\n\nfunction startObserver() {\n  const list = document.querySelector('#n8n-chat .chat-messages-list');\n  if (!list) return;\n  new MutationObserver(() => {\n    if (!isRestoring) debouncedSave();\n  }).observe(list, { childList: true, subtree: true, characterData: true });\n}\n\n\/\/ \u2500\u2500\u2500 INICIJALIZACIJA CHATA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction initChat() {\n  const history    = getHistory();\n  const hasHistory = history.length > 0;\n\n  document.getElementById('n8n-chat').style.display = 'block';\n\n  \/\/ Presreta\u010d: n8n Chat Trigger ne registrira GET endpoint za session history.\n  \/\/ Widget uvijek \u0161alje GET pri init \u2192 dobiva 404 JSON \u2192 .map() pada.\n  \/\/ Vra\u0107amo prazan niz [] da widget mirno nastavi.\n  if (!window._n8nChatFetchPatched) {\n    window._n8nChatFetchPatched = true;\n    const _origFetch = window.fetch;\n    window.fetch = function(url, opts) {\n      const method = (opts && opts.method ? opts.method : 'GET').toUpperCase();\n      if (\n        typeof url === 'string' &&\n        url.includes('\/webhook\/crofil3d-chat-v3\/chat') &&\n        method === 'GET'\n      ) {\n        return Promise.resolve(\n          new Response('[]', {\n            status: 200,\n            headers: { 'Content-Type': 'application\/json' }\n          })\n        );\n      }\n      return _origFetch.apply(this, arguments);\n    };\n  }\n\n  createChat({\n    webhookUrl: 'https:\/\/n8n.crofil3d.com\/webhook\/crofil3d-chat-v3\/chat',\n    target: '#n8n-chat',\n    initialMessages: hasHistory ? [] : [\n      'Pozdrav! \ud83d\udc4b Ja sam Crofil3D AI asistent.',\n      'Mogu vam pomo\u0107i s informacijama o filamentima, statusom narud\u017ebe, pra\u0107enjem paketa i aktualnim popustima.\\n\\nKako vam mogu pomo\u0107i?'\n    ],\n    i18n: {\n      hr: {\n        title: 'Crofil3D Podr\u0161ka',\n        subtitle: 'AI asistent \u00b7 Odgovara odmah',\n        footer: '',\n        getStarted: 'Pokreni razgovor',\n        inputPlaceholder: 'Napi\u0161ite poruku...',\n        closeButtonTooltip: 'Zatvori',\n      }\n    },\n    defaultLanguage: 'hr',\n    showWelcomeScreen: false,\n    enableStreaming: true,\n    loadPreviousSession: false,\n    mode: 'window',\n  });\n\n  function initChatEmbed() {\n    const container = document.getElementById('n8n-chat-container');\n    const target    = document.getElementById('n8n-chat');\n    if (!container || !target) return;\n    if (!target.contains(container)) target.appendChild(container);\n\n    const wrapper = container.querySelector('.chat-window-wrapper');\n    if (wrapper) {\n      wrapper.style.cssText += ';position:relative!important;width:100%!important;inset:auto!important;bottom:auto!important;right:auto!important;';\n    }\n    const chatWindow = container.querySelector('.chat-window');\n    if (chatWindow) {\n      chatWindow.style.cssText += ';display:flex!important;position:relative!important;width:100%!important;box-shadow:none!important;border-radius:14px!important;';\n    }\n\n    setTimeout(() => {\n      const injected = injectHistory();\n      startObserver();\n      if (injected) {\n        document.getElementById('crofil-new-chat').style.display = 'block';\n      }\n      const list = document.querySelector('#n8n-chat .chat-messages-list');\n      if (list) list.scrollTop = list.scrollHeight;\n    }, 300);\n  }\n  setTimeout(initChatEmbed, 800);\n}\n\n\/\/ \u2500\u2500\u2500 PRE-CHAT FORMA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nwindow.submitPrechat = async function() {\n  const emailEl = document.getElementById('prechat-email');\n  const phoneEl = document.getElementById('prechat-phone');\n  const errEl   = document.getElementById('crofil-prechat-error');\n  const btnEl   = document.getElementById('crofil-prechat-submit');\n\n  const email = emailEl.value.trim();\n  const phone = phoneEl.value.trim();\n\n  \/\/ Validacija\n  const emailOk = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email);\n  const phoneOk = phone.replace(\/[\\s\\-\\+\\(\\)]\/g, '').length >= 8;\n\n  emailEl.classList.toggle('input-error', !emailOk);\n  phoneEl.classList.toggle('input-error', !phoneOk);\n\n  if (!emailOk || !phoneOk) {\n    errEl.style.display = 'block';\n    return;\n  }\n\n  errEl.style.display = 'none';\n  btnEl.disabled = true;\n  btnEl.textContent = 'Spajanje...';\n\n  \/\/ Spremi kontakt lokalno\n  const contact = { email, phone, ts: new Date().toISOString() };\n  localStorage.setItem(CONTACT_KEY, JSON.stringify(contact));\n\n  \/\/ Po\u0161alji na n8n (ne blokira \u010dak i ako ne uspije)\n  try {\n    await fetch(LEAD_WEBHOOK, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({ email, phone, timestamp: contact.ts, source: 'crofil3d-chat' }),\n    });\n  } catch (e) {\n    \/\/ Ignoriramo gre\u0161ku \u2014 chat se svejedno otvara\n    console.warn('Lead webhook error:', e);\n  }\n\n  \/\/ Sakrij formu, poka\u017ei chat\n  document.getElementById('crofil-prechat').style.display = 'none';\n  initChat();\n};\n\n\/\/ Enter tipka u formi\n['prechat-email', 'prechat-phone'].forEach(id => {\n  document.getElementById(id).addEventListener('keydown', e => {\n    if (e.key === 'Enter') window.submitPrechat();\n  });\n});\n\n\/\/ \u2500\u2500\u2500 PROVJERI JE LI KONTAKT VE\u0106 POHRANJEN \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nif (getContact()) {\n  \/\/ Preska\u010di formu\n  document.getElementById('crofil-prechat').style.display = 'none';\n  initChat();\n}\n\n\/\/ \u2500\u2500\u2500 NOVI RAZGOVOR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nwindow.crofilNewChat = function() {\n  if (!confirm('Obrisati povijest razgovora i po\u010deti ispo\u010detka?')) return;\n  localStorage.removeItem(HISTORY_KEY);\n  localStorage.removeItem(CONTACT_KEY);\n  Object.keys(localStorage).forEach(k => {\n    if (k.startsWith('chat_') || k.includes('session')) localStorage.removeItem(k);\n  });\n  location.reload();\n};\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcac Crofil3D Podr\u0161ka Unesite svoje podatke i odmah \u0107ete biti spojeni s AI asistentom Email adresa * Broj mobitela * Pokreni razgovor \u2192 Molimo unesite ispravnu email adresu i broj mobitela. Va\u0161i podaci koriste se isklju\u010divo za potrebe podr\u0161ke i ne\u0107e biti dijeljeni s tre\u0107im stranama. \u21ba Novi razgovor<\/p>","protected":false},"author":79,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-5322","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/crofil3d.com\/hr\/wp-json\/wp\/v2\/pages\/5322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/crofil3d.com\/hr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/crofil3d.com\/hr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/crofil3d.com\/hr\/wp-json\/wp\/v2\/users\/79"}],"replies":[{"embeddable":true,"href":"https:\/\/crofil3d.com\/hr\/wp-json\/wp\/v2\/comments?post=5322"}],"version-history":[{"count":17,"href":"https:\/\/crofil3d.com\/hr\/wp-json\/wp\/v2\/pages\/5322\/revisions"}],"predecessor-version":[{"id":5393,"href":"https:\/\/crofil3d.com\/hr\/wp-json\/wp\/v2\/pages\/5322\/revisions\/5393"}],"wp:attachment":[{"href":"https:\/\/crofil3d.com\/hr\/wp-json\/wp\/v2\/media?parent=5322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}