{"id":5135,"date":"2026-08-18T18:39:19","date_gmt":"2026-08-18T18:39:19","guid":{"rendered":"https:\/\/kristinauto.pl\/?page_id=5135"},"modified":"2026-08-25T14:10:11","modified_gmt":"2026-08-25T14:10:11","slug":"wypowiedzenia-oc","status":"publish","type":"page","link":"https:\/\/kristinauto.pl\/pl\/wypowiedzenia-oc\/","title":{"rendered":"Wypowiedzenia OC"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5135\" class=\"elementor elementor-5135\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4b90a70 e-con e-atomic-element e-flexbox-base e-default-div e-e523c7c \" data-id=\"4b90a70\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"4b90a70\">\n    \t\t<div class=\"elementor-element elementor-element-4dacf74 elementor-widget elementor-widget-html\" data-id=\"4dacf74\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"krist-wyp\">\n\n<style>\n#krist-wyp{\n  --gold:#F5B400;\n  --black:#111;\n  --gray:#737373;\n  --line:#e8e8e8;\n  --soft:#f8f8f6;\n\n  width:100%;\n  max-width:700px;\n  margin:0 auto;\n\n  font-family:Inter,Arial,sans-serif;\n  color:var(--black);\n}\n\n#krist-wyp *{\n  box-sizing:border-box;\n}\n\n#krist-wyp .kw-card{\n  background:#fff;\n  border:1px solid #ededed;\n  border-radius:18px;\n  padding:24px;\n\n  box-shadow:\n  0 10px 35px\n  rgba(0,0,0,.045);\n}\n\n\n\/* =========================================================\n   HEADER\n========================================================= *\/\n\n#krist-wyp .kw-header{\n  display:flex;\n  justify-content:space-between;\n  align-items:center;\n\n  gap:15px;\n\n  padding-bottom:17px;\n  margin-bottom:20px;\n\n  border-bottom:\n  1px solid var(--line);\n}\n\n#krist-wyp .kw-logo{\n  font-size:23px;\n  line-height:1;\n\n  font-weight:900;\n  letter-spacing:-1px;\n}\n\n#krist-wyp .kw-logo span{\n  color:var(--gold);\n}\n\n#krist-wyp .kw-tag{\n  margin-top:4px;\n\n  color:#999;\n\n  font-size:7px;\n  letter-spacing:1.3px;\n}\n\n#krist-wyp .kw-lang{\n  display:flex;\n\n  padding:3px;\n\n  background:#f2f2f2;\n\n  border-radius:8px;\n}\n\n#krist-wyp .kw-lang button{\n  border:0;\n\n  padding:6px 10px;\n\n  border-radius:6px;\n\n  background:transparent;\n\n  color:#555;\n\n  font-weight:800;\n  font-size:11px;\n\n  cursor:pointer;\n}\n\n#krist-wyp .kw-lang button.active{\n  background:#111;\n  color:#fff;\n}\n\n\n\/* =========================================================\n   TITLE\n========================================================= *\/\n\n#krist-wyp .kw-title{\n  margin:0;\n\n  font-size:23px;\n  font-weight:850;\n\n  line-height:1.2;\n}\n\n#krist-wyp .kw-description{\n  margin:5px 0 20px;\n\n  color:#888;\n\n  font-size:12px;\n}\n\n\n\/* =========================================================\n   SECTIONS\n========================================================= *\/\n\n#krist-wyp .kw-section{\n  padding-top:17px;\n  margin-top:17px;\n\n  border-top:\n  1px solid var(--line);\n}\n\n#krist-wyp .kw-section-title{\n  display:flex;\n  align-items:center;\n\n  gap:7px;\n\n  margin-bottom:13px;\n\n  font-size:10px;\n  font-weight:850;\n\n  letter-spacing:.8px;\n\n  text-transform:uppercase;\n}\n\n#krist-wyp .kw-section-title:before{\n  content:\"\";\n\n  width:6px;\n  height:6px;\n\n  border-radius:50%;\n\n  background:var(--gold);\n}\n\n#krist-wyp .kw-grid{\n  display:grid;\n\n  grid-template-columns:\n  1fr 1fr;\n\n  gap:11px;\n}\n\n#krist-wyp .kw-full{\n  grid-column:1\/-1;\n}\n\n\n\/* =========================================================\n   INPUTS\n========================================================= *\/\n\n#krist-wyp .kw-field label{\n  display:block;\n\n  margin-bottom:5px;\n\n  font-size:11px;\n  font-weight:700;\n}\n\n#krist-wyp .kw-field input,\n#krist-wyp .kw-field select{\n  display:block !important;\n\n  visibility:visible !important;\n  opacity:1 !important;\n\n  width:100% !important;\n  height:43px !important;\n\n  margin:0 !important;\n\n  padding:0 11px !important;\n\n  border:\n  1px solid #ddd !important;\n\n  border-radius:9px !important;\n\n  background:#fff !important;\n\n  color:#111 !important;\n\n  font-family:\n  Inter,\n  Arial,\n  sans-serif !important;\n\n  font-size:13px !important;\n\n  outline:none !important;\n\n  -webkit-appearance:auto !important;\n  appearance:auto !important;\n}\n\n#krist-wyp .kw-field input:focus,\n#krist-wyp .kw-field select:focus{\n  border-color:\n  var(--gold) !important;\n\n  box-shadow:\n  0 0 0 3px\n  rgba(245,180,0,.10) !important;\n}\n\n\n\/* REGISTRATION ALWAYS UPPERCASE *\/\n\n#krist-wyp #kw-registration{\n  text-transform:uppercase !important;\n  font-weight:750 !important;\n  letter-spacing:.4px;\n}\n\n\n\/* =========================================================\n   SECOND OWNER\n========================================================= *\/\n\n#krist-wyp .kw-check{\n  display:flex;\n  align-items:center;\n\n  gap:8px;\n\n  margin-top:11px;\n\n  cursor:pointer;\n\n  font-size:12px;\n  font-weight:600;\n}\n\n#krist-wyp .kw-check input{\n  width:17px;\n  height:17px;\n\n  accent-color:\n  var(--gold);\n}\n\n#krist-wyp #kw-owner2-box{\n  display:none;\n\n  margin-top:11px;\n\n  padding:12px;\n\n  background:#fafafa;\n\n  border-radius:10px;\n}\n\n\n\/* =========================================================\n   BUTTONS\n========================================================= *\/\n\n#krist-wyp .kw-actions{\n  display:flex;\n\n  gap:9px;\n\n  margin-top:21px;\n}\n\n#krist-wyp .kw-generate{\n  flex:1;\n\n  height:47px;\n\n  border:0;\n\n  border-radius:9px;\n\n  background:var(--gold);\n\n  color:#111;\n\n  font-size:13px;\n  font-weight:850;\n\n  cursor:pointer;\n}\n\n#krist-wyp .kw-clear{\n  height:47px;\n\n  padding:0 18px;\n\n  border:\n  1px solid #ddd;\n\n  border-radius:9px;\n\n  background:#fff;\n\n  color:#111;\n\n  font-size:12px;\n  font-weight:750;\n\n  cursor:pointer;\n}\n\n\n\/* =========================================================\n   CONTACT\n========================================================= *\/\n\n#krist-wyp .kw-contact{\n  margin-top:19px;\n\n  padding-top:15px;\n\n  border-top:\n  1px solid var(--line);\n\n  color:#888;\n\n  font-size:9px;\n  line-height:1.6;\n}\n\n#krist-wyp .kw-contact strong{\n  color:#111;\n}\n\n\n\/* =========================================================\n   MOBILE\n========================================================= *\/\n\n@media(max-width:600px){\n\n  #krist-wyp .kw-card{\n    padding:17px;\n\n    border-radius:14px;\n  }\n\n  #krist-wyp .kw-grid{\n    grid-template-columns:1fr;\n  }\n\n  #krist-wyp .kw-full{\n    grid-column:auto;\n  }\n\n  #krist-wyp .kw-title{\n    font-size:20px;\n  }\n\n  #krist-wyp .kw-logo{\n    font-size:19px;\n  }\n\n}\n<\/style>\n\n\n<div class=\"kw-card\">\n\n  <div class=\"kw-header\">\n\n    <div>\n\n      <div class=\"kw-logo\">\n        KRIST <span>IN<\/span> AUTO\n      <\/div>\n\n      <div class=\"kw-tag\">\n        YOUR AUTOMOTIVE PARTNER\n      <\/div>\n\n    <\/div>\n\n\n    <div class=\"kw-lang\">\n\n      <button\n        id=\"kw-pl\"\n        class=\"active\"\n        type=\"button\">\n        PL\n      <\/button>\n\n      <button\n        id=\"kw-ru\"\n        type=\"button\">\n        RU\n      <\/button>\n\n    <\/div>\n\n  <\/div>\n\n\n  <h2\n    class=\"kw-title\"\n    data-t=\"title\">\n    Generator wypowiedzenia OC\n  <\/h2>\n\n\n  <p\n    class=\"kw-description\"\n    data-t=\"desc\">\n    Wype\u0142nij dane i wygeneruj gotowy dokument.\n  <\/p>\n\n\n  <!-- =====================================================\n       POLICY\n  ====================================================== -->\n\n  <div class=\"kw-section\">\n\n    <div\n      class=\"kw-section-title\"\n      data-t=\"policySection\">\n      Dane polisy\n    <\/div>\n\n\n    <div class=\"kw-grid\">\n\n\n      <div class=\"kw-field kw-full\">\n\n        <label data-t=\"insurer\">\n          Towarzystwo ubezpieczeniowe\n        <\/label>\n\n\n        <select id=\"kw-insurer\">\n\n          <option value=\"\">\n            \u2014 wybierz towarzystwo \u2014\n          <\/option>\n\n          <option value=\"pzu\">PZU<\/option>\n\n          <option value=\"warta\">\n            Warta HDI\n          <\/option>\n\n          <option value=\"allianz\">\n            Allianz\n          <\/option>\n\n          <option value=\"aviva\">\n            AVIVA \/ Allianz\n          <\/option>\n\n          <option value=\"hestia\">\n            ERGO Hestia\n          <\/option>\n\n          <option value=\"mtu\">\n            MTU \/ ERGO Hestia\n          <\/option>\n\n          <option value=\"ycd\">\n            You Can Drive\n          <\/option>\n\n          <option value=\"compensa\">\n            Compensa\n          <\/option>\n\n          <option value=\"wiener\">\n            Wiener \/ Compensa\n          <\/option>\n\n          <option value=\"beesafe\">\n            Beesafe\n          <\/option>\n\n          <option value=\"benefia\">\n            Benefia\n          <\/option>\n\n          <option value=\"generali\">\n            Generali T.U. S.A.\n          <\/option>\n\n          <option value=\"proama\">\n            Proama\n          <\/option>\n\n          <option value=\"generaliagro\">\n            Generali Agro\n          <\/option>\n\n          <option value=\"uniqa\">\n            UNIQA T.U. S.A.\n          <\/option>\n\n          <option value=\"link4\">\n            LINK4\n          <\/option>\n\n          <option value=\"interrisk\">\n            InterRisk\n          <\/option>\n\n          <option value=\"agro\">\n            Agro Ubezpieczenia\n          <\/option>\n\n          <option value=\"tuw\">\n            TUW - Towarzystwo Ubezpiecze\u0144 Wzajemnych\n          <\/option>\n\n          <option value=\"tuz\">\n            TUZ Ubezpieczenia S.A.\n          <\/option>\n\n          <option value=\"balcia\">\n            Balcia\n          <\/option>\n\n          <option value=\"trasti\">\n            Trasti\n          <\/option>\n\n          <option value=\"direct\">\n            Direct Poji\u0161\u0165ovna (UNEXT)\n          <\/option>\n\n          <option value=\"ominimo\">\n            Ominimo (DA Direkt)\n          <\/option>\n\n          <option value=\"euroins\">\n            Euroins \/ EINS\n          <\/option>\n\n          <option value=\"dallbogg\">\n            JSC DALLBOGG\n          <\/option>\n\n          <option value=\"accredited\">\n            Accredited Insurance\n          <\/option>\n\n          <option value=\"wefox\">\n            Wefox \/ UNEXT\n          <\/option>\n\n        <\/select>\n\n      <\/div>\n\n\n      <div class=\"kw-field\">\n\n        <label data-t=\"policy\">\n          Numer \/ seria polisy\n        <\/label>\n\n        <input\n          id=\"kw-policy\"\n          type=\"text\"\n          autocomplete=\"off\">\n\n      <\/div>\n\n\n      <div class=\"kw-field\">\n\n        <label data-t=\"policyEnd\">\n          Data wyga\u015bni\u0119cia\n        <\/label>\n\n        <input\n          id=\"kw-policy-end\"\n          type=\"date\">\n\n      <\/div>\n\n\n      <div class=\"kw-field kw-full\">\n\n        <label data-t=\"type\">\n          Typ wypowiedzenia\n        <\/label>\n\n        <select id=\"kw-type\">\n\n          <option value=\"\">\n            \u2014 wybierz artyku\u0142 \u2014\n          <\/option>\n\n          <option value=\"28\">\n            Art. 28 \u2014 koniec okresu ubezpieczenia\n          <\/option>\n\n          <option value=\"28a\">\n            Art. 28a \u2014 automatyczne odnowienie \/ podw\u00f3jne OC\n          <\/option>\n\n          <option value=\"31\">\n            Art. 31 \u2014 nabywca pojazdu\n          <\/option>\n\n          <option value=\"46\">\n            Art. 46 \u2014 OC rolnika \/ koniec okresu\n          <\/option>\n\n          <option value=\"46a\">\n            Art. 46a \u2014 podw\u00f3jne OC rolnika\n          <\/option>\n\n          <option value=\"47\">\n            Art. 47 \u2014 OC rolnika \/ zmiana posiadacza\n          <\/option>\n\n          <option value=\"62\">\n            Art. 62 \u2014 budynki rolnicze \/ koniec okresu\n          <\/option>\n\n          <option value=\"62a\">\n            Art. 62a \u2014 podw\u00f3jne ubezpieczenie budynk\u00f3w\n          <\/option>\n\n          <option value=\"63\">\n            Art. 63 \u2014 budynki \/ zmiana posiadacza\n          <\/option>\n\n        <\/select>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- =====================================================\n       OWNER\n  ====================================================== -->\n\n  <div class=\"kw-section\">\n\n    <div\n      class=\"kw-section-title\"\n      data-t=\"ownerSection\">\n      Dane w\u0142a\u015bciciela\n    <\/div>\n\n\n    <div class=\"kw-grid\">\n\n\n      <div class=\"kw-field kw-full\">\n\n        <label data-t=\"owner\">\n          Imi\u0119 i nazwisko \/ Nazwa firmy\n        <\/label>\n\n        <input\n          id=\"kw-owner\"\n          type=\"text\">\n\n      <\/div>\n\n\n      <div class=\"kw-field kw-full\">\n\n        <label data-t=\"address\">\n          Adres pocztowy\n        <\/label>\n\n        <input\n          id=\"kw-owner-address\"\n          type=\"text\"\n          placeholder=\"ulica, nr domu, kod pocztowy, miejscowo\u015b\u0107\">\n\n      <\/div>\n\n    <\/div>\n\n\n    <label class=\"kw-check\">\n\n      <input\n        id=\"kw-second-owner\"\n        type=\"checkbox\">\n\n      <span data-t=\"secondOwner\">\n        Wyst\u0119puje drugi w\u0142a\u015bciciel\n      <\/span>\n\n    <\/label>\n\n\n    <div id=\"kw-owner2-box\">\n\n      <div class=\"kw-field\">\n\n        <label data-t=\"owner2\">\n          Imi\u0119 i nazwisko drugiego w\u0142a\u015bciciela\n        <\/label>\n\n        <input\n          id=\"kw-owner2\"\n          type=\"text\">\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- =====================================================\n       VEHICLE\n  ====================================================== -->\n\n  <div class=\"kw-section\">\n\n    <div\n      class=\"kw-section-title\"\n      data-t=\"vehicleSection\">\n      Dane pojazdu\n    <\/div>\n\n\n    <div class=\"kw-grid\">\n\n\n      <div class=\"kw-field\">\n\n        <label data-t=\"vehicle\">\n          Marka i model\n        <\/label>\n\n        <input\n          id=\"kw-vehicle\"\n          type=\"text\">\n\n      <\/div>\n\n\n      <div class=\"kw-field\">\n\n        <label data-t=\"registration\">\n          Numer rejestracyjny\n        <\/label>\n\n        <input\n          id=\"kw-registration\"\n          type=\"text\"\n          autocomplete=\"off\"\n          spellcheck=\"false\">\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- =====================================================\n       DOCUMENT\n  ====================================================== -->\n\n  <div class=\"kw-section\">\n\n    <div\n      class=\"kw-section-title\"\n      data-t=\"documentSection\">\n      Dane dokumentu\n    <\/div>\n\n\n    <div class=\"kw-grid\">\n\n\n      <div class=\"kw-field\">\n\n        <label data-t=\"city\">\n          Miejscowo\u015b\u0107\n        <\/label>\n\n        <input\n          id=\"kw-city\"\n          type=\"text\">\n\n      <\/div>\n\n\n      <div class=\"kw-field\">\n\n        <label data-t=\"date\">\n          Data\n        <\/label>\n\n        <input\n          id=\"kw-date\"\n  type=\"date\"\n  readonly>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- =====================================================\n       ACTIONS\n  ====================================================== -->\n\n  <div class=\"kw-actions\">\n\n    <button\n      id=\"kw-generate\"\n      class=\"kw-generate\"\n      type=\"button\"\n      data-t=\"generate\">\n\n      Generuj dokument\n\n    <\/button>\n\n\n    <button\n      id=\"kw-clear\"\n      class=\"kw-clear\"\n      type=\"button\"\n      data-t=\"clear\">\n\n      Wyczy\u015b\u0107\n\n    <\/button>\n\n  <\/div>\n\n\n  <!-- =====================================================\n       WEBSITE CONTACT\n  ====================================================== -->\n\n  <div class=\"kw-contact\">\n\n    <strong>\n      KRIST IN AUTO\n    <\/strong>\n\n    <br>\n\n    Instagram: Kristinauto.pl \u00b7\n    WhatsApp: +48 537 846 384 \u00b7\n    Telegram: t.me\/kristinauto\n\n    <br>\n\n    ubezpieczenia@kristinauto.pl \u00b7\n    Kristinauto.pl\n\n    <br>\n\n    Grudzi 25, 05-090 Falenty Nowe\n\n  <\/div>\n\n<\/div>\n\n\n<script data-no-optimize=\"1\" data-no-defer=\"1\" data-no-delay=\"1\" data-cfasync=\"false\">\n(function(){\n\n\"use strict\";\n\n\n\/* =========================================================\n   HELPERS\n========================================================= *\/\n\nconst $ = function(id){\n  return document.getElementById(id);\n};\n\/* KRIST IN AUTO: mobile document preview, 2026-10-06. *\/\nlet kwPreviewState=null;const kwLibraryPromises={};\nfunction kwLoadLibrary(url,name){if(window[name])return Promise.resolve();if(kwLibraryPromises[name])return kwLibraryPromises[name];const promise=new Promise(function(resolve,reject){const script=document.createElement('script');let settled=false;const timer=setTimeout(function(){finish(new Error('Przekroczono czas pobierania biblioteki PDF.'));},15000);function finish(error){if(settled)return;settled=true;clearTimeout(timer);script.onload=script.onerror=null;if(error){script.remove();reject(error);}else resolve();}script.src=url;script.referrerPolicy='no-referrer';script.onload=function(){finish(window[name]?null:new Error('Nieprawid\u0142owa biblioteka PDF.'));};script.onerror=function(){finish(new Error('Nie uda\u0142o si\u0119 pobra\u0107 biblioteki PDF.'));};document.head.appendChild(script);});kwLibraryPromises[name]=promise.catch(function(error){delete kwLibraryPromises[name];throw error;});return kwLibraryPromises[name];}\nfunction kwCreatePreview(){if(kwPreviewState)kwPreviewState.close();const dialog=document.createElement('dialog');dialog.id='kw-document-preview';dialog.setAttribute('aria-label','Podgl\u0105d dokumentu');dialog.style.cssText='position:fixed;inset:0;z-index:2147483647;width:100%;max-width:940px;height:100%;max-height:100dvh;margin:auto;padding:12px;border:0;background:#f4f4f4;box-sizing:border-box;overflow:auto;color:#111;';const bar=document.createElement('div');bar.style.cssText='position:sticky;top:-12px;z-index:2;display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;background:#f4f4f4;font:14px Arial,sans-serif;';function control(label,tag){const item=document.createElement(tag||'button');if(item.tagName==='BUTTON')item.type='button';item.textContent=label;item.style.cssText='display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid #ddd;border-radius:8px;background:white;color:#111;font:700 14px Arial,sans-serif;text-decoration:none;cursor:pointer;';bar.appendChild(item);return item;}const retry=control('Przygotuj PDF');const save=control('Zapisz PDF','a');const open=control('Otw\u00f3rz PDF','a');const share=control('Udost\u0119pnij');const print=control('Drukuj');const close=control('Wr\u00f3\u0107 do formularza');save.style.background='#F5B400';save.hidden=open.hidden=share.hidden=true;[save,open,share].forEach(function(el){el.style.display='none';});open.target='_blank';open.rel='noopener';const status=document.createElement('p');status.setAttribute('role','status');status.style.cssText='flex:0 0 100%;margin:2px 0;font:13px\/1.4 Arial,sans-serif;';bar.appendChild(status);const viewport=document.createElement('div');viewport.style.cssText='position:relative;width:100%;overflow:hidden;';const frame=document.createElement('iframe');frame.title='Wypowiedzenie \u2014 podgl\u0105d A4';frame.style.cssText='display:block;width:794px;height:1160px;border:0;max-width:none;transform-origin:top left;background:white;';viewport.appendChild(frame);dialog.appendChild(bar);dialog.appendChild(viewport);document.body.appendChild(dialog);const state={dialog:dialog,frame:frame,status:status,retry:retry,save:save,open:open,share:share,blob:null,url:null,busy:false,closed:false,filename:'Wypowiedzenie_OC_KRIST_IN_AUTO.pdf'};kwPreviewState=state;function resize(){const scale=Math.min(1,viewport.clientWidth\/794);frame.style.transform='scale('+scale+')';viewport.style.height=Math.ceil(1160*scale)+'px';}state.close=function(){if(state.closed)return;state.closed=true;if(state.url)URL.revokeObjectURL(state.url);window.removeEventListener('resize',resize);dialog.remove();if(kwPreviewState===state)kwPreviewState=null;const trigger=document.getElementById('kw-generate');if(trigger)trigger.focus({preventScroll:true});};function track(){try{const win=frame.contentWindow;if(win.kristTrackDownload)win.kristTrackDownload();}catch(_){}}save.onclick=open.onclick=track;close.onclick=state.close;dialog.addEventListener('cancel',function(e){e.preventDefault();state.close();});print.onclick=function(){const win=frame.contentWindow;try{if(win.kristFitA4)win.kristFitA4();track();win.focus();win.print();}catch(_){status.textContent='Drukowanie nie jest dost\u0119pne. U\u017cyj Zapisz PDF lub Udost\u0119pnij.';}};retry.onclick=function(){kwPreparePDF(state);};share.onclick=function(){if(!state.blob||!navigator.share)return;const file=new File([state.blob],state.filename,{type:'application\/pdf'});navigator.share({files:[file],title:'Wypowiedzenie OC'}).then(track).catch(function(error){if(error.name!=='AbortError')status.textContent='U\u017cyj Zapisz PDF lub Otw\u00f3rz PDF.';});};if(typeof dialog.showModal==='function')dialog.showModal();else dialog.setAttribute('open','');window.addEventListener('resize',resize);resize();close.focus({preventScroll:true});return frame.contentWindow;}\nasync function kwPreparePDF(state){state=state||kwPreviewState;if(!state||state.closed||state.busy)return;state.busy=true;state.retry.disabled=true;state.status.textContent='Przygotowywanie PDF\u2026 Podgl\u0105d i drukowanie pozostaj\u0105 dost\u0119pne.';try{await Promise.all([kwLoadLibrary('https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js','html2canvas'),kwLoadLibrary('https:\/\/cdn.jsdelivr.net\/npm\/jspdf@4.2.1\/dist\/jspdf.umd.min.js','jspdf')]);if(state.closed)return;const win=state.frame.contentWindow;const doc=win.document;if(doc.fonts&&doc.fonts.ready)await Promise.race([doc.fonts.ready,new Promise(function(r){setTimeout(r,2000);})]);if(state.closed)return;if(win.kristFitA4)win.kristFitA4();const page=doc.getElementById('krist-a4-page');if(!page)throw new Error('Brak dokumentu do zapisania.');const main=page.querySelector('.docMain');if(page.scrollHeight>page.clientHeight+2||(main&&main.scrollHeight>main.clientHeight+2))throw new Error('Dane nie mieszcz\u0105 si\u0119 na stronie A4. Skr\u00f3\u0107 zbyt d\u0142ugie pola.');const canvas=await window.html2canvas(page,{scale:1.5,backgroundColor:'#ffffff',useCORS:true,allowTaint:false,logging:false,imageTimeout:8000,windowWidth:794,windowHeight:1160,width:page.offsetWidth,height:page.offsetHeight,scrollX:0,scrollY:0});let blob;try{if(!canvas.width||!canvas.height)throw new Error('Pusty obraz dokumentu.');const pdf=new window.jspdf.jsPDF({orientation:'portrait',unit:'mm',format:'a4',compress:true});pdf.addImage(canvas.toDataURL('image\/jpeg',0.96),'JPEG',10,9,190,279,undefined,'FAST');blob=pdf.output('blob');}finally{canvas.width=0;canvas.height=0;}if(state.closed)return;if(!blob||blob.size<100)throw new Error('Pusty plik PDF.');if(state.url)URL.revokeObjectURL(state.url);state.blob=blob;state.url=URL.createObjectURL(blob);state.save.href=state.open.href=state.url;state.save.download=state.filename;[state.save,state.open].forEach(function(el){el.hidden=false;el.style.display='inline-flex';});state.retry.textContent='Generuj ponownie';try{const file=new File([blob],state.filename,{type:'application\/pdf'});if(navigator.canShare&&navigator.canShare({files:[file]})){state.share.hidden=false;state.share.style.display='inline-flex';}}catch(_){}state.status.textContent='PDF gotowy. Naci\u015bnij Zapisz PDF. Na iPhonie mo\u017cesz te\u017c u\u017cy\u0107 Udost\u0119pnij \u2192 Zapisz w Plikach.';}catch(error){if(!state.closed)state.status.textContent=(error.message||'Nie uda\u0142o si\u0119 wygenerowa\u0107 PDF.')+' Spr\u00f3buj ponownie lub u\u017cyj Drukuj.';}finally{state.busy=false;if(!state.closed)state.retry.disabled=false;}}\n\n\/* =========================================================\n   DOWNLOAD TRACKING\n========================================================= *\/\n\nconst KW_AJAX_URL =\n  window.location.origin +\n  \"\/wp-admin\/admin-ajax.php\";\n\n\nfunction kwTrackingScript(){\n\n  return `\n\n  function kristTrackDownload(){\n\n    return new Promise(function(resolve){\n\n      try{\n\n        var formData =\n        new FormData();\n\n\n        formData.append(\n          \"action\",\n          \"kia_document_download\"\n        );\n\n\n        formData.append(\n          \"document_type\",\n          \"wypowiedzenie_oc\"\n        );\n\n\n        formData.append(\n          \"language\",\n          \"PL\"\n        );\n\n\n        formData.append(\n          \"page_url\",\n          ${JSON.stringify(window.location.href)}\n        );\n\n\n        fetch(\n          ${JSON.stringify(KW_AJAX_URL)},\n          {\n            method:\"POST\",\n            body:formData,\n            credentials:\"same-origin\",\n            keepalive:true\n          }\n        )\n        .then(function(response){\n          return response.json();\n        })\n        .catch(function(error){\n\n          console.warn(\n            \"KRIST IN AUTO tracking error\",\n            error\n          );\n\n        })\n        .finally(function(){\n          resolve();\n        });\n\n      }catch(error){\n\n        console.warn(error);\n\n        resolve();\n\n      }\n\n    });\n\n  }\n\n\n  async function kristPrintDocument(button){\n\n    if(\n      button.dataset.busy === \"1\"\n    ){\n      return;\n    }\n\n\n    button.dataset.busy =\n    \"1\";\n\n\n    var originalText =\n    button.textContent;\n\n\n    button.textContent =\n    \"PRZYGOTOWYWANIE...\";\n\n\n    kristTrackDownload();\n\n\n    kristFitA4();\n\n\n    button.textContent =\n    originalText;\n\n\n    button.dataset.busy =\n    \"0\";\n\n\n    window.print();\n\n  }\n\n  `;\n\n}\n\n\n\/* =========================================================\n   INSURERS\n========================================================= *\/\n\nconst INSURERS = {\n\n  pzu:{\n    name:\n    \"Powszechny Zak\u0142ad Ubezpiecze\u0144 S.A.\",\n\n    address:\n    \"Rondo Ignacego Daszy\u0144skiego 4, 00-843 Warszawa\"\n  },\n\n\n  warta:{\n    name:\n    \"Towarzystwo Ubezpiecze\u0144 i Reasekuracji WARTA S.A.\",\n\n    address:\n    \"Rondo Ignacego Daszy\u0144skiego 1, 00-843 Warszawa\"\n  },\n\n\n  allianz:{\n    name:\n    \"Towarzystwo Ubezpiecze\u0144 i Reasekuracji Allianz Polska S.A.\",\n\n    address:\n    \"ul. Inflancka 4B, 00-189 Warszawa\"\n  },\n\n\n  aviva:{\n    name:\n    \"Towarzystwo Ubezpiecze\u0144 i Reasekuracji Allianz Polska S.A.\",\n\n    address:\n    \"ul. Inflancka 4B, 00-189 Warszawa\"\n  },\n\n\n  hestia:{\n    name:\n    \"Sopockie Towarzystwo Ubezpiecze\u0144 ERGO Hestia S.A.\",\n\n    address:\n    \"ul. Hestii 1, 81-731 Sopot\"\n  },\n\n\n  mtu:{\n    name:\n    \"Sopockie Towarzystwo Ubezpiecze\u0144 ERGO Hestia S.A. \/ MTU\",\n\n    address:\n    \"ul. Hestii 1, 81-731 Sopot\"\n  },\n\n\n  ycd:{\n    name:\n    \"Sopockie Towarzystwo Ubezpiecze\u0144 ERGO Hestia S.A. \/ You Can Drive\",\n\n    address:\n    \"ul. Hestii 1, 81-731 Sopot\"\n  },\n\n\n  compensa:{\n    name:\n    \"Compensa Towarzystwo Ubezpiecze\u0144 S.A. Vienna Insurance Group\",\n\n    address:\n    \"Al. Jerozolimskie 162, 02-342 Warszawa\"\n  },\n\n\n  wiener:{\n    name:\n    \"Compensa Towarzystwo Ubezpiecze\u0144 S.A. Vienna Insurance Group\",\n\n    address:\n    \"Al. Jerozolimskie 162, 02-342 Warszawa\"\n  },\n\n\n  beesafe:{\n    name:\n    \"Compensa Towarzystwo Ubezpiecze\u0144 S.A. Vienna Insurance Group \/ Beesafe\",\n\n    address:\n    \"Al. Jerozolimskie 162, 02-342 Warszawa\"\n  },\n\n\n  benefia:{\n    name:\n    \"Compensa Towarzystwo Ubezpiecze\u0144 S.A. Vienna Insurance Group \/ Benefia\",\n\n    address:\n    \"Al. Jerozolimskie 162, 02-342 Warszawa\"\n  },\n\n\n  generali:{\n    name:\n    \"Generali Towarzystwo Ubezpiecze\u0144 S.A.\",\n\n    address:\n    \"ul. Senatorska 18, 00-082 Warszawa\"\n  },\n\n\n  generaliagro:{\n    name:\n    \"Generali Towarzystwo Ubezpiecze\u0144 S.A.\",\n\n    address:\n    \"ul. Senatorska 18, 00-082 Warszawa\"\n  },\n\n\n  proama:{\n    name:\n    \"Generali Towarzystwo Ubezpiecze\u0144 S.A. \/ Proama\",\n\n    address:\n    \"ul. Senatorska 18, 00-082 Warszawa\"\n  },\n\n\n  uniqa:{\n    name:\n    \"UNIQA Towarzystwo Ubezpiecze\u0144 S.A.\",\n\n    address:\n    \"ul. Ch\u0142odna 51, 00-867 Warszawa\"\n  },\n\n\n  link4:{\n    name:\n    \"LINK4 Towarzystwo Ubezpiecze\u0144 S.A.\",\n\n    address:\n    \"ul. Post\u0119pu 15, 02-676 Warszawa\"\n  },\n\n\n  interrisk:{\n    name:\n    \"InterRisk Towarzystwo Ubezpiecze\u0144 S.A. Vienna Insurance Group\",\n\n    address:\n    \"ul. Noakowskiego 22, 00-668 Warszawa\"\n  },\n\n\n  agro:{\n    name:\n    \"AGRO Ubezpieczenia - Towarzystwo Ubezpiecze\u0144 Wzajemnych\",\n\n    address:\n    \"ul. Pu\u0142awska 2, 02-566 Warszawa\"\n  },\n\n\n  tuw:{\n    name:\n    \"Towarzystwo Ubezpiecze\u0144 Wzajemnych \u201eTUW\u201d\",\n\n    address:\n    \"ul. H. Raabego 13, 02-793 Warszawa\"\n  },\n\n\n  tuz:{\n    name:\n    \"TUZ Ubezpieczenia Towarzystwo Ubezpiecze\u0144 i Reasekuracji S.A.\",\n\n    address:\n    \"ul. Wo\u0142oska 22A, 02-675 Warszawa\"\n  },\n\n\n  balcia:{\n    name:\n    \"Balcia Insurance SE Sp\u00f3\u0142ka europejska Oddzia\u0142 w Polsce\",\n\n    address:\n    \"Al. Jerozolimskie 96, 00-807 Warszawa\"\n  },\n\n\n  trasti:{\n    name:\n    \"Trasti \/ Zavarovalnica Triglav d.d.\",\n\n    address:\n    \"Trasti, Skr. Envelo 206, 00-935 Warszawa\"\n  },\n\n\n  direct:{\n    name:\n    \"DIRECT poji\u0161\u0165ovna, a.s. Oddzia\u0142 w Polsce\",\n\n    address:\n    \"ul. \u017bwirki i Wigury 16A, 02-092 Warszawa\"\n  },\n\n\n  ominimo:{\n    name:\n    \"DA Deutsche Allgemeine Versicherung AG \/ Ominimo Poland Sp. z o.o.\",\n\n    address:\n    \"ul. Ho\u017ca 86 lok. 410, 00-682 Warszawa\"\n  },\n\n\n  euroins:{\n    name:\n    \"Insurance Company Euroins AD \/ EINS Polska Serwis Sp. z o.o.\",\n\n    address:\n    \"ul. Pu\u0142awska 543, 02-844 Warszawa\"\n  },\n\n\n  dallbogg:{\n    name:\n    \"Insurance Company DallBogg: Life and Health AD\",\n\n    address:\n    \"DioDea Poland Sp. z o.o., ul. Chmielna 132\/134, 00-805 Warszawa\"\n  },\n\n\n  accredited:{\n    name:\n    \"Accredited Insurance (Europe) Ltd\",\n\n    address:\n    \"TOLERANCEINS Sp. z o.o., ul. Wrzesi\u0144ska 12 lok. 17, 03-713 Warszawa\"\n  },\n\n\n  wefox:{\n    name:\n    \"wefox Insurance \/ UNEXT\",\n\n    address:\n    \"ul. \u017bwirki i Wigury 16A, 02-092 Warszawa\"\n  }\n\n};\n\n\n\/* =========================================================\n   LEGAL TEXTS\n========================================================= *\/\n\nconst LEGAL = {\n\n  \"28\":{\n\n    title:\n    \"Wypowiedzenie umowy ubezpieczenia OC\",\n\n    text:function(policy){\n\n      return `\n      Niniejszym, zgodnie z art. 28 ust. 1\n      Ustawy z dnia 22 maja 2003 r.\n      o ubezpieczeniach obowi\u0105zkowych,\n      Ubezpieczeniowym Funduszu Gwarancyjnym\n      i Polskim Biurze Ubezpieczycieli Komunikacyjnych,\n      wypowiadam umow\u0119 ubezpieczenia\n      o numerze <strong>${safe(policy)}<\/strong>\n      z ko\u0144cem okresu, na jaki zosta\u0142a zawarta.\n      `;\n\n    }\n\n  },\n\n\n  \"28a\":{\n\n    title:\n    \"Wypowiedzenie automatycznie wznowionej umowy OC\",\n\n    text:function(policy){\n\n      return `\n      Niniejszym, zgodnie z art. 28a ust. 1\n      Ustawy z dnia 22 maja 2003 r.\n      o ubezpieczeniach obowi\u0105zkowych,\n      Ubezpieczeniowym Funduszu Gwarancyjnym\n      i Polskim Biurze Ubezpieczycieli Komunikacyjnych,\n      wypowiadam automatycznie wznowion\u0105\n      umow\u0119 ubezpieczenia OC\n      o numerze <strong>${safe(policy)}<\/strong>,\n      w zwi\u0105zku z posiadaniem w tym samym czasie\n      wi\u0119cej ni\u017c jednej umowy OC dotycz\u0105cej\n      tego samego pojazdu.\n      `;\n\n    }\n\n  },\n\n\n  \"31\":{\n\n    title:\n    \"Wypowiedzenie umowy ubezpieczenia OC przez nabywc\u0119 pojazdu\",\n\n    text:function(policy){\n\n      return `\n      Niniejszym, zgodnie z art. 31 ust. 1\n      Ustawy z dnia 22 maja 2003 r.\n      o ubezpieczeniach obowi\u0105zkowych,\n      Ubezpieczeniowym Funduszu Gwarancyjnym\n      i Polskim Biurze Ubezpieczycieli Komunikacyjnych,\n      jako nabywca pojazdu wypowiadam\n      umow\u0119 obowi\u0105zkowego ubezpieczenia OC\n      o numerze <strong>${safe(policy)}<\/strong>.\n      `;\n\n    }\n\n  },\n\n\n  \"46\":{\n\n    title:\n    \"Wypowiedzenie umowy OC rolnika\",\n\n    text:function(policy){\n\n      return `\n      Niniejszym, zgodnie z art. 46 ust. 1\n      Ustawy z dnia 22 maja 2003 r.\n      o ubezpieczeniach obowi\u0105zkowych,\n      Ubezpieczeniowym Funduszu Gwarancyjnym\n      i Polskim Biurze Ubezpieczycieli Komunikacyjnych,\n      sk\u0142adam wypowiedzenie umowy\n      obowi\u0105zkowego ubezpieczenia OC rolnik\u00f3w\n      o numerze <strong>${safe(policy)}<\/strong>\n      z ko\u0144cem okresu, na jaki zosta\u0142a zawarta.\n      `;\n\n    }\n\n  },\n\n\n  \"46a\":{\n\n    title:\n    \"Wypowiedzenie automatycznie wznowionej umowy OC rolnika\",\n\n    text:function(policy){\n\n      return `\n      Niniejszym, zgodnie z art. 46a ust. 1\n      Ustawy z dnia 22 maja 2003 r.\n      o ubezpieczeniach obowi\u0105zkowych,\n      Ubezpieczeniowym Funduszu Gwarancyjnym\n      i Polskim Biurze Ubezpieczycieli Komunikacyjnych,\n      wypowiadam automatycznie wznowion\u0105\n      umow\u0119 OC rolnik\u00f3w\n      o numerze <strong>${safe(policy)}<\/strong>.\n      `;\n\n    }\n\n  },\n\n\n  \"47\":{\n\n    title:\n    \"Wypowiedzenie umowy OC rolnika przez nowego posiadacza\",\n\n    text:function(policy){\n\n      return `\n      Niniejszym, zgodnie z art. 47\n      Ustawy z dnia 22 maja 2003 r.\n      o ubezpieczeniach obowi\u0105zkowych,\n      Ubezpieczeniowym Funduszu Gwarancyjnym\n      i Polskim Biurze Ubezpieczycieli Komunikacyjnych,\n      jako osoba obejmuj\u0105ca gospodarstwo rolne\n      w posiadanie wypowiadam umow\u0119\n      OC rolnik\u00f3w o numerze\n      <strong>${safe(policy)}<\/strong>.\n      `;\n\n    }\n\n  },\n\n\n  \"62\":{\n\n    title:\n    \"Wypowiedzenie ubezpieczenia budynk\u00f3w rolniczych\",\n\n    text:function(policy){\n\n      return `\n      Niniejszym, zgodnie z art. 62 ust. 1\n      Ustawy z dnia 22 maja 2003 r.\n      o ubezpieczeniach obowi\u0105zkowych,\n      Ubezpieczeniowym Funduszu Gwarancyjnym\n      i Polskim Biurze Ubezpieczycieli Komunikacyjnych,\n      wypowiadam umow\u0119 obowi\u0105zkowego\n      ubezpieczenia budynk\u00f3w rolniczych\n      o numerze <strong>${safe(policy)}<\/strong>\n      z ko\u0144cem okresu, na jaki zosta\u0142a zawarta.\n      `;\n\n    }\n\n  },\n\n\n  \"62a\":{\n\n    title:\n    \"Wypowiedzenie automatycznie wznowionego ubezpieczenia budynk\u00f3w\",\n\n    text:function(policy){\n\n      return `\n      Niniejszym, zgodnie z art. 62a ust. 1\n      Ustawy z dnia 22 maja 2003 r.\n      o ubezpieczeniach obowi\u0105zkowych,\n      Ubezpieczeniowym Funduszu Gwarancyjnym\n      i Polskim Biurze Ubezpieczycieli Komunikacyjnych,\n      wypowiadam automatycznie wznowion\u0105\n      umow\u0119 ubezpieczenia budynk\u00f3w rolniczych\n      o numerze <strong>${safe(policy)}<\/strong>.\n      `;\n\n    }\n\n  },\n\n\n  \"63\":{\n\n    title:\n    \"Wypowiedzenie ubezpieczenia budynk\u00f3w przez nowego posiadacza\",\n\n    text:function(policy){\n\n      return `\n      Niniejszym, zgodnie z art. 63\n      Ustawy z dnia 22 maja 2003 r.\n      o ubezpieczeniach obowi\u0105zkowych,\n      Ubezpieczeniowym Funduszu Gwarancyjnym\n      i Polskim Biurze Ubezpieczycieli Komunikacyjnych,\n      jako osoba obejmuj\u0105ca gospodarstwo rolne\n      w posiadanie wypowiadam umow\u0119\n      ubezpieczenia budynk\u00f3w rolniczych\n      o numerze <strong>${safe(policy)}<\/strong>.\n      `;\n\n    }\n\n  }\n\n};\n\n\n\/* =========================================================\n   LANGUAGES\n========================================================= *\/\n\nconst LANG = {\n\n  pl:{\n\n    title:\n    \"Generator wypowiedzenia OC\",\n\n    desc:\n    \"Wype\u0142nij dane i wygeneruj gotowy dokument.\",\n\n    policySection:\n    \"Dane polisy\",\n\n    insurer:\n    \"Towarzystwo ubezpieczeniowe\",\n\n    policy:\n    \"Numer \/ seria polisy\",\n\n    policyEnd:\n    \"Data wyga\u015bni\u0119cia\",\n\n    type:\n    \"Typ wypowiedzenia\",\n\n    ownerSection:\n    \"Dane w\u0142a\u015bciciela\",\n\n    owner:\n    \"Imi\u0119 i nazwisko \/ Nazwa firmy\",\n\n    address:\n    \"Adres pocztowy\",\n\n    secondOwner:\n    \"Wyst\u0119puje drugi w\u0142a\u015bciciel\",\n\n    owner2:\n    \"Imi\u0119 i nazwisko drugiego w\u0142a\u015bciciela\",\n\n    vehicleSection:\n    \"Dane pojazdu\",\n\n    vehicle:\n    \"Marka i model\",\n\n    registration:\n    \"Numer rejestracyjny\",\n\n    documentSection:\n    \"Dane dokumentu\",\n\n    city:\n    \"Miejscowo\u015b\u0107\",\n\n    date:\n    \"Data\",\n\n    generate:\n    \"Generuj dokument\",\n\n    clear:\n    \"Wyczy\u015b\u0107\"\n\n  },\n\n\n  ru:{\n\n    title:\n    \"\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0440\u0430\u0441\u0442\u043e\u0440\u0436\u0435\u043d\u0438\u044f OC\",\n\n    desc:\n    \"\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442.\",\n\n    policySection:\n    \"\u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u0438\u0441\u0430\",\n\n    insurer:\n    \"\u0421\u0442\u0440\u0430\u0445\u043e\u0432\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\",\n\n    policy:\n    \"\u041d\u043e\u043c\u0435\u0440 \/ \u0441\u0435\u0440\u0438\u044f \u043f\u043e\u043b\u0438\u0441\u0430\",\n\n    policyEnd:\n    \"\u0414\u0430\u0442\u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f\",\n\n    type:\n    \"\u0422\u0438\u043f \u0440\u0430\u0441\u0442\u043e\u0440\u0436\u0435\u043d\u0438\u044f\",\n\n    ownerSection:\n    \"\u0414\u0430\u043d\u043d\u044b\u0435 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430\",\n\n    owner:\n    \"\u0418\u043c\u044f \u0438 \u0444\u0430\u043c\u0438\u043b\u0438\u044f \/ \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u0440\u043c\u044b\",\n\n    address:\n    \"\u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441\",\n\n    secondOwner:\n    \"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430\",\n\n    owner2:\n    \"\u0418\u043c\u044f \u0438 \u0444\u0430\u043c\u0438\u043b\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430\",\n\n    vehicleSection:\n    \"\u0414\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f\",\n\n    vehicle:\n    \"\u041c\u0430\u0440\u043a\u0430 \u0438 \u043c\u043e\u0434\u0435\u043b\u044c\",\n\n    registration:\n    \"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\",\n\n    documentSection:\n    \"\u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\",\n\n    city:\n    \"\u0413\u043e\u0440\u043e\u0434\",\n\n    date:\n    \"\u0414\u0430\u0442\u0430\",\n\n    generate:\n    \"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\",\n\n    clear:\n    \"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\"\n\n  }\n\n};\n\n\n\/* =========================================================\n   LANGUAGE\n========================================================= *\/\n\nfunction changeLanguage(lang){\n\n  document\n  .querySelectorAll(\n    \"#krist-wyp [data-t]\"\n  )\n  .forEach(function(element){\n\n    const key =\n    element.getAttribute(\n      \"data-t\"\n    );\n\n\n    if(\n      LANG[lang] &&\n      LANG[lang][key]\n    ){\n\n      element.textContent =\n      LANG[lang][key];\n\n    }\n\n  });\n\n\n  $(\"kw-pl\")\n  .classList\n  .toggle(\n    \"active\",\n    lang === \"pl\"\n  );\n\n\n  $(\"kw-ru\")\n  .classList\n  .toggle(\n    \"active\",\n    lang === \"ru\"\n  );\n\n}\n\n\n$(\"kw-pl\")\n.addEventListener(\n  \"click\",\n  function(){\n\n    changeLanguage(\n      \"pl\"\n    );\n\n  }\n);\n\n\n$(\"kw-ru\")\n.addEventListener(\n  \"click\",\n  function(){\n\n    changeLanguage(\n      \"ru\"\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   DATE\n========================================================= *\/\n\nfunction today(){\n\n  const date =\n  new Date();\n\n\n  const year =\n  date.getFullYear();\n\n\n  const month =\n  String(\n    date.getMonth()+1\n  )\n  .padStart(\n    2,\n    \"0\"\n  );\n\n\n  const day =\n  String(\n    date.getDate()\n  )\n  .padStart(\n    2,\n    \"0\"\n  );\n\n\n  return (\n    year +\n    \"-\" +\n    month +\n    \"-\" +\n    day\n  );\n\n}\n\n\n$(\"kw-date\").value =\ntoday();\n\n\nfunction datePL(value){\n\n  if(!value){\n    return \"\";\n  }\n\n\n  const pieces =\n  value.split(\"-\");\n\n\n  if(\n    pieces.length !== 3\n  ){\n    return value;\n  }\n\n\n  return (\n    pieces[2] +\n    \".\" +\n    pieces[1] +\n    \".\" +\n    pieces[0]\n  );\n\n}\n\n\n\/* =========================================================\n   REGISTRATION UPPERCASE\n========================================================= *\/\n\n$(\"kw-registration\")\n.addEventListener(\n  \"input\",\n  function(){\n\n    const oldStart =\n    this.selectionStart;\n\n\n    const oldEnd =\n    this.selectionEnd;\n\n\n    this.value =\n    this.value\n    .toUpperCase();\n\n\n    try{\n\n      this.setSelectionRange(\n        oldStart,\n        oldEnd\n      );\n\n    }catch(error){}\n\n  }\n);\n\n\n$(\"kw-registration\")\n.addEventListener(\n  \"blur\",\n  function(){\n\n    this.value =\n    this.value\n    .trim()\n    .toUpperCase();\n\n  }\n);\n\n\n\/* =========================================================\n   SECOND OWNER\n========================================================= *\/\n\n$(\"kw-second-owner\")\n.addEventListener(\n  \"change\",\n  function(){\n\n    $(\"kw-owner2-box\")\n    .style.display =\n    this.checked\n    ?\n    \"block\"\n    :\n    \"none\";\n\n  }\n);\n\n\n\/* =========================================================\n   SAFE HTML\n========================================================= *\/\n\nfunction safe(value){\n\n  return String(\n    value || \"\"\n  )\n\n  .replace(\n    \/&\/g,\n    \"&amp;\"\n  )\n\n  .replace(\n    \/<\/g,\n    \"&lt;\"\n  )\n\n  .replace(\n    \/>\/g,\n    \"&gt;\"\n  )\n\n  .replace(\n    \/\"\/g,\n    \"&quot;\"\n  )\n\n  .replace(\n    \/'\/g,\n    \"&#039;\"\n  );\n\n}\n\n\n\/* =========================================================\n   VALIDATION\n========================================================= *\/\n\nfunction required(\n  id,\n  message\n){\n\n  const element =\n  $(id);\n\n\n  if(\n    !String(\n      element.value || \"\"\n    )\n    .trim()\n  ){\n\n    alert(\n      message\n    );\n\n\n    element.focus();\n\n\n    return false;\n\n  }\n\n\n  return true;\n\n}\n\n\n\/* =========================================================\n   GENERATE\n========================================================= *\/\n\n$(\"kw-generate\")\n.addEventListener(\n  \"click\",\n  function(){\n\n\n    const insurerKey =\n    $(\"kw-insurer\").value;\n\n\n    const type =\n    $(\"kw-type\").value;\n\n\n    if(\n      !insurerKey\n    ){\n\n      alert(\n        \"Wybierz towarzystwo ubezpieczeniowe.\"\n      );\n\n\n      $(\"kw-insurer\")\n      .focus();\n\n\n      return;\n\n    }\n\n\n    if(\n      !type\n    ){\n\n      alert(\n        \"Wybierz typ wypowiedzenia.\"\n      );\n\n\n      $(\"kw-type\")\n      .focus();\n\n\n      return;\n\n    }\n\n\n    if(\n      !required(\n        \"kw-policy\",\n        \"Wpisz numer polisy.\"\n      )\n    ){\n\n      return;\n\n    }\n\n\n    if(\n      !required(\n        \"kw-owner\",\n        \"Wpisz dane w\u0142a\u015bciciela.\"\n      )\n    ){\n\n      return;\n\n    }\n\n\n    const secondEnabled =\n    $(\"kw-second-owner\")\n    .checked;\n\n\n    if(\n      secondEnabled &&\n      !required(\n        \"kw-owner2\",\n        \"Wpisz dane drugiego w\u0142a\u015bciciela.\"\n      )\n    ){\n\n      return;\n\n    }\n\n\n    const insurer =\n    INSURERS[\n      insurerKey\n    ];\n\n\n    const law =\n    LEGAL[\n      type\n    ];\n\n\n    if(\n      !insurer ||\n      !law\n    ){\n\n      alert(\n        \"Nie uda\u0142o si\u0119 przygotowa\u0107 dokumentu.\"\n      );\n\n      return;\n\n    }\n\n\n    const policy =\n    $(\"kw-policy\")\n    .value\n    .trim();\n\n\n    const secondName =\n    $(\"kw-owner2\")\n    .value\n    .trim();\n\n\n    const registration =\n    $(\"kw-registration\")\n    .value\n    .trim()\n    .toUpperCase();\n\n\n    $(\"kw-registration\")\n    .value =\n    registration;\n\n\n    const policyEnd =\n    $(\"kw-policy-end\")\n    .value;\n\n\n    \/* =====================================================\n       SECOND OWNER\n    ====================================================== *\/\n\n    const secondOwnerHTML =\n    secondEnabled &&\n    secondName\n\n    ? `\n      <div class=\"secondOwner\">\n        ${safe(secondName)}\n      <\/div>\n    `\n\n    : \"\";\n\n\n    const secondSignature =\n    secondEnabled &&\n    secondName\n\n    ? `\n      <div class=\"signature\">\n\n        <div class=\"sigLine\"><\/div>\n\n        <div class=\"sigText\">\n          PODPIS DRUGIEGO W\u0141A\u015aCICIELA\n        <\/div>\n\n      <\/div>\n    `\n\n    : \"\";\n\n\n    \/* =====================================================\n       POLICY END\n    ====================================================== *\/\n\n    const policyEndHTML =\n    policyEnd\n\n    ? `\n      <div class=\"row\">\n\n        <div class=\"label\">\n          Data wyga\u015bni\u0119cia polisy:\n        <\/div>\n\n        <div class=\"value\">\n          ${datePL(policyEnd)}\n        <\/div>\n\n      <\/div>\n    `\n\n    : \"\";\n\n\n    \/* =====================================================\n       DETAILS\n    ====================================================== *\/\n\n    const vehicleArticle =\n    [\n      \"28\",\n      \"28a\",\n      \"31\"\n    ]\n    .includes(\n      type\n    );\n\n\n    const detailsSection =\n    vehicleArticle\n\n    ? `\n      <div class=\"details noBreak\">\n\n        <div class=\"detailsTitle\">\n          DANE POJAZDU\n        <\/div>\n\n\n        <div class=\"row\">\n\n          <div class=\"label\">\n            Marka, model:\n          <\/div>\n\n          <div class=\"value\">\n            ${safe(\n              $(\"kw-vehicle\").value\n            )}\n          <\/div>\n\n        <\/div>\n\n\n        <div class=\"row\">\n\n          <div class=\"label\">\n            Numer rejestracyjny:\n          <\/div>\n\n          <div class=\"value registrationNumber\">\n            ${safe(registration)}\n          <\/div>\n\n        <\/div>\n\n\n        ${policyEndHTML}\n\n\n        <div class=\"row\">\n\n          <div class=\"label\">\n            Numer polisy:\n          <\/div>\n\n          <div class=\"value\">\n            ${safe(policy)}\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n    `\n\n    : `\n      <div class=\"details noBreak\">\n\n        <div class=\"detailsTitle\">\n          DANE POLISY\n        <\/div>\n\n\n        <div class=\"row\">\n\n          <div class=\"label\">\n            Numer polisy:\n          <\/div>\n\n          <div class=\"value\">\n            ${safe(policy)}\n          <\/div>\n\n        <\/div>\n\n\n        ${policyEndHTML}\n\n      <\/div>\n    `;\n\n\n    \/* =====================================================\n       GENERATED DOCUMENT\n    ====================================================== *\/\n\n    const html = `\n<!DOCTYPE html>\n\n<html lang=\"pl\">\n\n<head>\n\n<meta charset=\"UTF-8\">\n\n<meta\n  name=\"viewport\"\n  content=\"width=device-width,initial-scale=1\">\n\n<title><\/title>\n\n\n<style>\n\n\/* =========================================================\n   PRINT PAGE\n========================================================= *\/\n\n@page{\n  size:A4 portrait;\n\n  margin:\n  9mm 10mm;\n}\n\n\n*{\n  box-sizing:border-box;\n}\n\n\nhtml,\nbody{\n  margin:0;\n  padding:0;\n\n  width:100%;\n\n  background:#f1f1f1;\n\n  color:#111;\n\n  font-family:\n  Arial,\n  Helvetica,\n  sans-serif;\n\n  -webkit-print-color-adjust:exact;\n  print-color-adjust:exact;\n}\n\n\nbody{\n  font-size:10pt;\n  line-height:1.32;\n}\n\n\n\/* =========================================================\n   REAL A4 CONTENT AREA\n   297mm - 18mm margins = 279mm\n========================================================= *\/\n\n.page{\n\n  width:190mm;\n  height:279mm;\n  max-height:279mm;\n\n  margin:\n  8mm auto 0;\n\n  padding:0;\n\n  display:flex;\n  flex-direction:column;\n\n  background:#fff;\n\n  overflow:hidden;\n\n  box-shadow:\n  0 12px 45px\n  rgba(0,0,0,.10);\n}\n\n\n\/* =========================================================\n   MAIN CONTENT\n========================================================= *\/\n\n.docMain{\n\n  flex:1 1 auto;\n\n  min-height:0;\n\n  display:flex;\n  flex-direction:column;\n}\n\n\n\/* =========================================================\n   DATE\n========================================================= *\/\n\n.date{\n\n  margin:\n  1mm 0 5mm;\n\n  text-align:right;\n\n  font-size:9.2pt;\n}\n\n\n\/* =========================================================\n   OWNER + INSURER\n========================================================= *\/\n\n.infoGrid{\n\n  display:grid;\n\n  grid-template-columns:\n  1fr 1fr;\n\n  gap:4mm;\n\n  margin-bottom:7mm;\n}\n\n\n.infoBox{\n\n  min-height:21mm;\n\n  padding:\n  3mm 3.5mm;\n\n  border:\n  1px solid #dcdcdc;\n\n  border-radius:2.8mm;\n\n  font-size:9.3pt;\n}\n\n\n.smallTitle{\n\n  margin-bottom:2mm;\n\n  color:#777;\n\n  font-size:6.7pt;\n  font-weight:700;\n\n  letter-spacing:.55px;\n}\n\n\n.ownerName,\n.secondOwner{\n\n  font-weight:700;\n}\n\n\n.secondOwner{\n\n  margin-top:1mm;\n}\n\n\n\/* =========================================================\n   TITLE\n========================================================= *\/\n\nh1{\n\n  max-width:170mm;\n\n  margin:\n  0 auto 5mm;\n\n  text-align:center;\n\n  font-size:14.5pt;\n  line-height:1.20;\n\n  font-weight:700;\n}\n\n\n\/* =========================================================\n   LEGAL TEXT\n========================================================= *\/\n\n.law{\n\n  margin:\n  0 0 6mm;\n\n  text-align:justify;\n\n  font-size:10pt;\n  line-height:1.40;\n}\n\n\n\/* =========================================================\n   DETAILS\n========================================================= *\/\n\n.details{\n\n  margin:0;\n\n  padding:\n  3mm 0;\n\n  border-top:\n  1px solid #d8d8d8;\n\n  border-bottom:\n  1px solid #d8d8d8;\n}\n\n\n.detailsTitle{\n\n  margin-bottom:1.8mm;\n\n  color:#777;\n\n  font-size:6.7pt;\n  font-weight:700;\n\n  letter-spacing:.55px;\n}\n\n\n.row{\n\n  display:flex;\n\n  align-items:flex-start;\n\n  gap:5mm;\n\n  padding:\n  .8mm 0;\n\n  line-height:1.3;\n}\n\n\n.label{\n\n  width:45mm;\n  flex:0 0 45mm;\n\n  color:#666;\n}\n\n\n.value{\n\n  flex:1;\n\n  min-width:0;\n\n  font-weight:700;\n\n  overflow-wrap:anywhere;\n}\n\n\n.registrationNumber{\n\n  text-transform:uppercase;\n\n  letter-spacing:.45px;\n\n  font-weight:700;\n}\n\n\n\/* =========================================================\n   SIGNATURE\n   PUSHED DOWN TO USE THE FULL A4 PAGE\n========================================================= *\/\n\n.signatures{\n\n  margin-top:auto;\n\n  padding-top:15mm;\n  padding-bottom:10mm;\n\n  display:flex;\n\n  justify-content:flex-end;\n\n  gap:8mm;\n\n  page-break-inside:avoid;\n  break-inside:avoid;\n}\n\n\n.signature{\n\n  width:62mm;\n\n  text-align:center;\n}\n\n\n.sigLine{\n\n  border-top:\n  1px solid #111;\n\n  margin-bottom:2mm;\n}\n\n\n.sigText{\n\n  color:#666;\n\n  font-size:6.7pt;\n\n  line-height:1.2;\n}\n\n\n\/* =========================================================\n   BOTTOM KRIST IN AUTO\n   NO BLACK SQUARE\n========================================================= *\/\n\n.footer{\n\n  flex:0 0 auto;\n\n  min-height:24mm;\n\n  padding:\n  4mm 0 2mm;\n\n  border-top:\n  1.5px solid #F5B400;\n\n  display:grid;\n\n  grid-template-columns:\n  68mm 1fr;\n\n  align-items:center;\n\n  gap:5mm;\n\n  color:#666;\n\n  font-size:6.6pt;\n  line-height:1.35;\n\n  page-break-inside:avoid;\n  break-inside:avoid;\n}\n\n\n.footerBrand{\n\n  min-width:0;\n}\n\n\n.footerName{\n\n  color:#111;\n\n  font-size:15pt;\n  line-height:1;\n\n  font-weight:800;\n\n  letter-spacing:-.65px;\n\n  white-space:nowrap;\n}\n\n\n.footerName span{\n\n  color:#F5B400;\n}\n\n\n.footerTag{\n\n  margin-top:1.5mm;\n\n  color:#8a8a8a;\n\n  font-size:5.4pt;\n\n  font-weight:600;\n\n  letter-spacing:1.05px;\n}\n\n\n.footerData{\n\n  text-align:right;\n\n  color:#666;\n}\n\n\n.footerData strong{\n\n  color:#111;\n}\n\n\n\/* =========================================================\n   NO BREAK\n========================================================= *\/\n\n.noBreak{\n\n  page-break-inside:avoid;\n\n  break-inside:avoid;\n}\n\n\n\/* =========================================================\n   AUTO FIT 1\n========================================================= *\/\n\n.page.fit1{\n\n  font-size:9.5pt;\n}\n\n\n.page.fit1 .date{\n\n  margin-bottom:4mm;\n}\n\n\n.page.fit1 .infoGrid{\n\n  margin-bottom:5mm;\n}\n\n\n.page.fit1 .infoBox{\n\n  min-height:18mm;\n\n  padding:\n  2.5mm 3mm;\n}\n\n\n.page.fit1 h1{\n\n  margin-bottom:4mm;\n\n  font-size:13.7pt;\n}\n\n\n.page.fit1 .law{\n\n  margin-bottom:4.5mm;\n\n  font-size:9.5pt;\n\n  line-height:1.32;\n}\n\n\n.page.fit1 .details{\n\n  padding:\n  2.5mm 0;\n}\n\n\n.page.fit1 .signatures{\n\n  padding-top:10mm;\n\n  padding-bottom:7mm;\n}\n\n\n\/* =========================================================\n   AUTO FIT 2\n========================================================= *\/\n\n.page.fit2{\n\n  font-size:9pt;\n}\n\n\n.page.fit2 .date{\n\n  margin-bottom:3mm;\n}\n\n\n.page.fit2 .infoGrid{\n\n  gap:3mm;\n\n  margin-bottom:4mm;\n}\n\n\n.page.fit2 .infoBox{\n\n  min-height:16mm;\n\n  padding:\n  2mm 2.5mm;\n\n  font-size:8.8pt;\n}\n\n\n.page.fit2 h1{\n\n  margin-bottom:3mm;\n\n  font-size:12.7pt;\n}\n\n\n.page.fit2 .law{\n\n  margin-bottom:3.5mm;\n\n  font-size:9pt;\n\n  line-height:1.26;\n}\n\n\n.page.fit2 .details{\n\n  padding:\n  2mm 0;\n}\n\n\n.page.fit2 .row{\n\n  padding:\n  .5mm 0;\n}\n\n\n.page.fit2 .signatures{\n\n  padding-top:7mm;\n\n  padding-bottom:5mm;\n}\n\n\n.page.fit2 .footer{\n\n  min-height:21mm;\n\n  padding-top:3mm;\n\n  font-size:6.2pt;\n}\n\n\n.page.fit2 .footerName{\n\n  font-size:13.5pt;\n}\n\n\n\/* =========================================================\n   AUTO FIT 3\n========================================================= *\/\n\n.page.fit3{\n\n  font-size:8.5pt;\n}\n\n\n.page.fit3 .date{\n\n  margin-bottom:2.5mm;\n}\n\n\n.page.fit3 .infoGrid{\n\n  margin-bottom:3mm;\n}\n\n\n.page.fit3 .infoBox{\n\n  min-height:14mm;\n\n  padding:\n  1.7mm 2.2mm;\n\n  font-size:8.3pt;\n}\n\n\n.page.fit3 h1{\n\n  margin-bottom:2.5mm;\n\n  font-size:12pt;\n}\n\n\n.page.fit3 .law{\n\n  margin-bottom:3mm;\n\n  font-size:8.5pt;\n\n  line-height:1.20;\n}\n\n\n.page.fit3 .details{\n\n  padding:\n  1.7mm 0;\n}\n\n\n.page.fit3 .row{\n\n  padding:\n  .35mm 0;\n}\n\n\n.page.fit3 .signatures{\n\n  padding-top:5mm;\n\n  padding-bottom:4mm;\n}\n\n\n.page.fit3 .footer{\n\n  min-height:19mm;\n\n  padding-top:2.5mm;\n\n  font-size:5.8pt;\n}\n\n\n.page.fit3 .footerName{\n\n  font-size:12.5pt;\n}\n\n\n\/* =========================================================\n   FINAL EMERGENCY FIT\n========================================================= *\/\n\n.page.fit4{\n\n  font-size:8pt;\n}\n\n\n.page.fit4 .date{\n\n  margin-bottom:2mm;\n}\n\n\n.page.fit4 .infoGrid{\n\n  gap:2.5mm;\n\n  margin-bottom:2.5mm;\n}\n\n\n.page.fit4 .infoBox{\n\n  min-height:13mm;\n\n  padding:\n  1.5mm 2mm;\n\n  font-size:7.9pt;\n}\n\n\n.page.fit4 h1{\n\n  margin-bottom:2mm;\n\n  font-size:11.3pt;\n}\n\n\n.page.fit4 .law{\n\n  margin-bottom:2.4mm;\n\n  font-size:8pt;\n\n  line-height:1.16;\n}\n\n\n.page.fit4 .details{\n\n  padding:\n  1.4mm 0;\n}\n\n\n.page.fit4 .row{\n\n  padding:\n  .25mm 0;\n}\n\n\n.page.fit4 .signatures{\n\n  padding-top:3.5mm;\n\n  padding-bottom:3mm;\n}\n\n\n.page.fit4 .footer{\n\n  min-height:17mm;\n\n  padding:\n  2mm 0 1mm;\n\n  font-size:5.4pt;\n}\n\n\n.page.fit4 .footerName{\n\n  font-size:11.5pt;\n}\n\n\n\/* =========================================================\n   BUTTONS OUTSIDE DOCUMENT\n========================================================= *\/\n\n.actions{\n\n  width:190mm;\n\n  margin:\n  4mm auto 8mm;\n\n  display:flex;\n\n  justify-content:center;\n\n  gap:8px;\n}\n\n\n.print{\n\n  border:0;\n\n  border-radius:9px;\n\n  padding:\n  12px 22px;\n\n  background:#F5B400;\n\n  color:#111;\n\n  font-family:\n  Arial,\n  sans-serif;\n\n  font-weight:700;\n\n  cursor:pointer;\n}\n\n\n.close{\n\n  border:\n  1px solid #ddd;\n\n  border-radius:9px;\n\n  padding:\n  12px 18px;\n\n  background:#fff;\n\n  color:#111;\n\n  font-family:\n  Arial,\n  sans-serif;\n\n  font-weight:700;\n\n  cursor:pointer;\n}\n\n\n\/* =========================================================\n   PRINT\n========================================================= *\/\n\n@media print{\n\n  html,\n  body{\n\n    width:210mm;\n    height:297mm;\n\n    margin:0;\n    padding:0;\n\n    background:#fff;\n\n    overflow:hidden;\n  }\n\n\n  body{\n\n    font-family:\n    Arial,\n    Helvetica,\n    sans-serif;\n  }\n\n\n  .actions{\n\n    display:none !important;\n  }\n\n\n  .page{\n\n    width:190mm;\n    height:279mm;\n    max-height:279mm;\n\n    margin:0;\n\n    background:#fff;\n\n    box-shadow:none;\n\n    overflow:hidden;\n\n    page-break-before:avoid;\n    page-break-after:avoid;\n    page-break-inside:avoid;\n\n    break-before:avoid-page;\n    break-after:avoid-page;\n    break-inside:avoid-page;\n  }\n\n}\n\n<\/style>\n\n${'<'+ '\/he' + 'ad>'}\n\n\n<body>\n\n\n<div\n  class=\"page\"\n  id=\"krist-a4-page\">\n\n\n  <div class=\"docMain\">\n\n\n    <!-- NO LOGO AT THE TOP -->\n\n\n    <div class=\"date\">\n\n      ${safe(\n        $(\"kw-city\").value ||\n        \"........................\"\n      )},\n\n      dn.\n\n      ${datePL(\n        $(\"kw-date\").value\n      )}\n\n    <\/div>\n\n\n    <!-- OWNER \/ INSURER -->\n\n    <div class=\"infoGrid noBreak\">\n\n\n      <div class=\"infoBox\">\n\n        <div class=\"smallTitle\">\n          DANE W\u0141A\u015aCICIELA\n        <\/div>\n\n\n        <div class=\"ownerName\">\n          ${safe(\n            $(\"kw-owner\").value\n          )}\n        <\/div>\n\n\n        ${secondOwnerHTML}\n\n\n        <div>\n          ${safe(\n            $(\"kw-owner-address\").value\n          )}\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"infoBox\">\n\n        <div class=\"smallTitle\">\n          TOWARZYSTWO UBEZPIECZENIOWE\n        <\/div>\n\n\n        <strong>\n          ${safe(\n            insurer.name\n          )}\n        <\/strong>\n\n\n        <br>\n\n\n        ${safe(\n          insurer.address\n        )}\n\n      <\/div>\n\n    <\/div>\n\n\n    <!-- TITLE -->\n\n    <h1>\n      ${safe(\n        law.title\n      )}\n    <\/h1>\n\n\n    <!-- ARTICLE -->\n\n    <div class=\"law\">\n      ${law.text(policy)}\n    <\/div>\n\n\n    <!-- DETAILS -->\n\n    ${detailsSection}\n\n\n    <!-- SIGNATURE\n         PUSHED LOWER ON A4 -->\n\n    <div class=\"signatures noBreak\">\n\n\n      <div class=\"signature\">\n\n        <div class=\"sigLine\"><\/div>\n\n        <div class=\"sigText\">\n          PODPIS W\u0141A\u015aCICIELA\n        <\/div>\n\n      <\/div>\n\n\n      ${secondSignature}\n\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- =====================================================\n       BOTTOM BRAND\n       NO BLACK SQUARE\n  ====================================================== -->\n\n  <div class=\"footer noBreak\">\n\n\n    <div class=\"footerBrand\">\n\n      <div class=\"footerName\">\n        KRIST <span>IN<\/span> AUTO\n      <\/div>\n\n\n      <div class=\"footerTag\">\n        YOUR AUTOMOTIVE PARTNER\n      <\/div>\n\n    <\/div>\n\n\n    <div class=\"footerData\">\n\n      <strong>\n        Grudzi 25, 05-090 Falenty Nowe\n      <\/strong>\n\n      <br>\n\n      +48 537 846 384\n\n      \u00b7\n\n      ubezpieczenia@kristinauto.pl\n\n      <br>\n\n      Kristinauto.pl\n\n      \u00b7\n\n      Instagram: Kristinauto.pl\n\n      <br>\n\n      Telegram: t.me\/kristinauto\n\n    <\/div>\n\n\n  <\/div>\n\n<\/div>\n\n\n<!-- =====================================================\n     ACTIONS\n===================================================== -->\n\n<div class=\"actions\">\n\n\n  <button\n    id=\"krist-print-button\"\n    class=\"print\"\n    type=\"button\"\n    onclick=\"kristPrintDocument(this)\">\n\n    DRUKUJ \/ ZAPISZ PDF\n\n  <\/button>\n\n\n  <button\n    class=\"close\"\n    type=\"button\"\n    onclick=\"window.close()\">\n\n    ZAMKNIJ\n\n  <\/button>\n\n\n<\/div>\n\n\n${'<scr' + 'ipt>'}\n\n\/* =========================================================\n   FIT DOCUMENT TO EXACTLY ONE A4\n========================================================= *\/\n\nfunction kristFitA4(){\n\n  var page =\n  document.getElementById(\n    \"krist-a4-page\"\n  );\n\n\n  if(!page){\n    return;\n  }\n\n\n  page.classList.remove(\n    \"fit1\",\n    \"fit2\",\n    \"fit3\",\n    \"fit4\"\n  );\n\n\n  \/*\n   * We check the REAL content.\n   * Normally no fitting is applied,\n   * therefore the document uses\n   * the full A4 page naturally.\n   *\/\n\n  if(\n    page.scrollHeight <=\n    page.clientHeight + 1\n  ){\n    return;\n  }\n\n\n  var levels = [\n    \"fit1\",\n    \"fit2\",\n    \"fit3\",\n    \"fit4\"\n  ];\n\n\n  for(\n    var i=0;\n    i<levels.length;\n    i++\n  ){\n\n    page.classList.add(\n      levels[i]\n    );\n\n\n    \/*\n     * Force browser layout refresh.\n     *\/\n\n    void page.offsetHeight;\n\n\n    if(\n      page.scrollHeight <=\n      page.clientHeight + 1\n    ){\n\n      break;\n\n    }\n\n  }\n\n}\n\n\n\/* =========================================================\n   LOAD\n========================================================= *\/\n\nwindow.addEventListener(\n  \"load\",\n  function(){\n\n    setTimeout(\n      kristFitA4,\n      80\n    );\n\n  }\n);\n\n\nwindow.addEventListener(\n  \"beforeprint\",\n  kristFitA4\n);\n\n\nwindow.addEventListener(\n  \"resize\",\n  kristFitA4\n);\n\n\n\/* =========================================================\n   DOWNLOAD TRACKING\n========================================================= *\/\n\n${kwTrackingScript()}\n\n${'<'+ '\/scr' + 'ipt>'}\n\n\n${'<'+ '\/bo' + 'dy>'}\n\n${'<'+ '\/ht' + 'ml>'}\n`;\n\n\n    \/* =====================================================\n       OPEN GENERATED DOCUMENT\n    ====================================================== *\/\n\n    const printWindow = kwCreatePreview();\n\n    if(!printWindow){ alert('Nie uda\u0142o si\u0119 otworzy\u0107 podgl\u0105du. Od\u015bwie\u017c stron\u0119.'); return; }\n\n    printWindow.document.open();\n\n\n    printWindow.document.write(\n      html\n    );\n\n\n    printWindow.document.close();\n    const previewStyle=printWindow.document.createElement('style');\n    previewStyle.textContent='.actions{display:none!important}.infoBox{overflow-wrap:anywhere}';\n    printWindow.document.head.appendChild(previewStyle);\n    kwPreparePDF();\n\n  }\n);\n\n\n\/* =========================================================\n   CLEAR FORM\n========================================================= *\/\n\n$(\"kw-clear\")\n.addEventListener(\n  \"click\",\n  function(){\n\n\n    document\n    .querySelectorAll(\n   \"#krist-wyp input\"\n    )\n    .forEach(\n      function(element){\n\n        if(\n          element.type ===\n          \"checkbox\"\n        ){\n\n          element.checked =\n          false;\n\n        }else{\n\n          element.value =\n          \"\";\n\n        }\n\n      }\n    );\n\n\n    document\n    .querySelectorAll(\n      \"#krist-wyp select\"\n    )\n    .forEach(\n      function(element){\n\n        element.selectedIndex =\n        0;\n\n      }\n    );\n\n\n    $(\"kw-owner2-box\")\n    .style.display =\n    \"none\";\n\n\n    $(\"kw-date\").value =\n    today();\n\n  }\n);\n\n\n\/* =========================================================\n   INIT\n========================================================= *\/\n\nchangeLanguage(\n  \"pl\"\n);\n\n})();\n<\/script>\n\n<\/div>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>KRIST IN AUTO YOUR AUTOMOTIVE PARTNER PL RU Generator wypowiedzenia OC Wype\u0142nij dane i wygeneruj gotowy dokument. Dane polisy Towarzystwo ubezpieczeniowe \u2014 wybierz towarzystwo \u2014 PZU Warta HDI Allianz AVIVA \/ Allianz ERGO Hestia MTU \/ ERGO Hestia You Can Drive Compensa Wiener \/ Compensa Beesafe Benefia Generali T.U. S.A. Proama Generali Agro UNIQA T.U. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5135","page","type-page","status-publish","hentry"],"ams_acf":[],"_links":{"self":[{"href":"https:\/\/kristinauto.pl\/pl\/wp-json\/wp\/v2\/pages\/5135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kristinauto.pl\/pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kristinauto.pl\/pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kristinauto.pl\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kristinauto.pl\/pl\/wp-json\/wp\/v2\/comments?post=5135"}],"version-history":[{"count":28,"href":"https:\/\/kristinauto.pl\/pl\/wp-json\/wp\/v2\/pages\/5135\/revisions"}],"predecessor-version":[{"id":5465,"href":"https:\/\/kristinauto.pl\/pl\/wp-json\/wp\/v2\/pages\/5135\/revisions\/5465"}],"wp:attachment":[{"href":"https:\/\/kristinauto.pl\/pl\/wp-json\/wp\/v2\/media?parent=5135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}