{"id":8810,"date":"2026-07-18T09:52:30","date_gmt":"2026-07-18T09:52:30","guid":{"rendered":"https:\/\/rolloninsulation.se\/?page_id=8810"},"modified":"2026-07-22T19:02:09","modified_gmt":"2026-07-22T19:02:09","slug":"kallarkalkylen","status":"publish","type":"page","link":"https:\/\/rolloninsulation.se\/en\/kallarkalkylen\/","title":{"rendered":"k\u00e4llarkalkylen"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" data-vc-stretch-content=\"true\" class=\"vc_row wpb_row vc_row-fluid vc_row-no-padding vc_row-o-full-height vc_row-o-columns-middle vc_row-flex\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div  class=\"parallax-mousemove wpb_single_image wpb_content_element vc_align_center\">\n\t\t\n\t\t\n\t\t<figure class=\"wpb_wrapper vc_figure\">\n\t\t\t<div class=\"vc_single_image-wrapper   vc_box_border_grey\"><\/div>\n\t\t<\/figure>\n\t<\/div>\n<div data-rellax-speed=\"0.7\" data-rellax-percentage=\"0.7\" class=\"vc_row wpb_row vc_inner vc_row-fluid\"><div class=\"wpb_column vc_column_container vc_col-sm-2\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"wpb_column vc_column_container vc_col-sm-8\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<ol>\n<li><b data-path-to-node=\"8\" data-index-in-node=\"0\">\ud83e\udd76 Slipp kalla golv i resten av huset<br \/>\n<\/b>En oisolerad k\u00e4llare fungerar som en enorm kylklamp under ditt hus. Kylan str\u00e5lar upp genom bj\u00e4lklaget och kyler ner golven ovanf\u00f6r. Genom att enkelt applicera Roll-On i stryper du golvdraget. Du f\u00e5r varmare golv och kan ofta skruva ner elementen p\u00e5 \u00f6verv\u00e5ningen, vilket kapar din elr\u00e4kning direkt.<\/li>\n<li><b data-path-to-node=\"10\" data-index-in-node=\"0\">\ud83e\uddf1 Betong l\u00e4cker pengar<br \/>\n<\/b>R\u00e5a k\u00e4llarv\u00e4ggar av betong eller leca har i princip noll isolerf\u00f6rm\u00e5ga. De leder kylan fr\u00e5n marken rakt in i huset. Att g\u00e5 fr\u00e5n obefintlig isolering till v\u00e5r h\u00f6gteknologiska vakuumbarri\u00e4r ger d\u00e4rf\u00f6r en gigantisk och omedelbar procentuell f\u00f6rb\u00e4ttring.<\/li>\n<li><b data-path-to-node=\"12\" data-index-in-node=\"0\">\ud83d\udee1\ufe0f\u00a0 M\u00f6gels\u00e4kert (Bel\u00e4ggningen andas!)<br \/>\n<\/b>Det traditionella s\u00e4ttet att isolera en k\u00e4llare inifr\u00e5n med vanlig mineralull och plastfolie \u00e4r riskabelt och leder ofta till fuktskador och svartm\u00f6gel. Roll-On \u00e4r unikt eftersom det \u00e4r helt <i data-path-to-node=\"13\" data-index-in-node=\"191\">diffusions\u00f6ppet<\/i>. Det betyder att fukt fr\u00e5n marken till\u00e5ts vandra igenom bel\u00e4ggningen och dunsta bort naturligt i luften, samtidigt som v\u00e4rmen stannar kvar i rummet. Helt riskfritt!<\/li>\n<\/ol>\n\n\t\t<\/div>\n\t<\/div>\n<div class=\"vc_empty_space\"   style=\"height: 40px\"><span class=\"vc_empty_space_inner\"><\/span><\/div><\/div><\/div><\/div><div class=\"wpb_column vc_column_container vc_col-sm-2\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><\/div>\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<!-- Vi laddar in diagramverktyget (Chart.js) via CDN -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n\n<div class=\"calculator-container\">\n  <h2>K\u00e4llarkalkylen \u2014 Roll-On Insulation<\/h2>\n  <p class=\"intro-text\">Traditionell k\u00e4llarisolering kr\u00e4ver dyr utgr\u00e4vning och riskerar m\u00f6gel. Roll-On l\u00f6ser problemet inifr\u00e5n p\u00e5 en helg och f\u00f6rb\u00e4ttrar husets energiklass.<\/p>\n  \n  <div class=\"calc-workspace\">\n    \n    <!-- V\u00c4NSTER SK\u00c4RMTREDJEDEL: INMATNING -->\n    <div class=\"calc-side-inputs\">\n      <!-- V\u00c4LJ VAD SOM SKA BEHANDLAS -->\n      <div class=\"input-group\">\n        <label>V\u00e4lj vad du vill isolera i k\u00e4llaren:<\/label>\n        \n        <div class=\"checkbox-box\">\n          <div class=\"checkbox-line\">\n            <input type=\"checkbox\" id=\"isolate_ceiling\" checked onchange=\"toggleKallareInputs(); calculateKallare();\">\n            <span><strong>K\u00e4llartak (Steg 1)<\/strong><\/span>\n          <\/div>\n          <p class=\"checkbox-desc\">Stoppar k\u00e4llarkylan fr\u00e5n att stiga upp. Eliminerar kalla golv p\u00e5 entr\u00e9plan.<\/p>\n          <div id=\"ceiling_meta\" class=\"sub-input\" style=\"display: block;\">\n            <label>Takets yta (m\u00b2):<\/label>\n            <input type=\"number\" id=\"ceiling_area\" value=\"80\" onchange=\"calculateKallare()\">\n          <\/div>\n        <\/div>\n\n        <div class=\"checkbox-box\" style=\"margin-top: 12px;\">\n          <div class=\"checkbox-line\">\n            <input type=\"checkbox\" id=\"isolate_walls\" onchange=\"toggleKallareInputs(); calculateKallare();\">\n            <span><strong>K\u00e4llarv\u00e4ggar (Steg 2)<\/strong><\/span>\n          <\/div>\n          <p class=\"checkbox-desc\">Isolerar betongen inifr\u00e5n. 100% diffusions\u00f6ppen nanofunktion (m\u00f6gels\u00e4ker).<\/p>\n          <div id=\"wall_meta\" class=\"sub-input\" style=\"display: none;\">\n            <label>V\u00e4ggarnas totala yta (m\u00b2):<\/label>\n            <input type=\"number\" id=\"wall_area\" value=\"60\" onchange=\"calculateKallare()\">\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- NUVARANDE ENERGIDEKLARATION -->\n      <div class=\"input-group\">\n        <label for=\"current_class\">Husets nuvarande energiklass:<\/label>\n        <select id=\"current_class\" onchange=\"calculateKallare()\">\n          <option value=\"G\">Klass G (Mycket h\u00f6g f\u00f6rbrukning)<\/option>\n          <option value=\"F\">Klass F<\/option>\n          <option value=\"E\" selected>Klass E (Standard f\u00f6r \u00e4ldre hus)<\/option>\n          <option value=\"D\">Klass D<\/option>\n          <option value=\"C\">Klass C (Nybyggnadsstandard)<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- KOSTNAD PER KVM -->\n      <div class=\"input-group\">\n        <label for=\"sqm_cost\">Kostnad f\u00f6r Roll-On per m\u00b2 (kr, mtrl + arbete):<\/label>\n        <input type=\"number\" id=\"sqm_cost\" value=\"700\" onchange=\"calculateKallare()\">\n      <\/div>\n\n      <!-- ELPRIS -->\n      <div class=\"input-group\">\n        <label for=\"energy_price\">Ditt el\/energipris (kr\/kWh):<\/label>\n        <input type=\"number\" id=\"energy_price\" value=\"2.5\" step=\"0.1\" onchange=\"calculateKallare()\">\n      <\/div>\n\n      <button onclick=\"calculateKallare()\">Ber\u00e4kna besparing<\/button>\n    <\/div>\n\n    <!-- H\u00d6GER SK\u00c4RMTREDJEDEL: LIVE-RESULTAT -->\n    <div id=\"results\" class=\"results-box\" style=\"display:none;\">\n      <h3>Ditt resultat &amp; ROI<\/h3>\n      \n      <!-- LYFT I ENERGIDEKLARATIONEN -->\n      <div class=\"energy-label-box\">\n        <div class=\"energy-title\">Teoretiskt lyft i Energideklarationen:<\/div>\n        <div class=\"energy-badge-flex\">\n          <div id=\"badge_old\" class=\"energy-badge\">E<\/div>\n          <div class=\"energy-arrow\">\u2794<\/div>\n          <div id=\"badge_new\" class=\"energy-badge\">D<\/div>\n        <\/div>\n        <p id=\"energy_status_text\" class=\"energy-desc\"><\/p>\n      <\/div>\n\n      <div class=\"result-row\">\n        <span>\ud83d\udcb0 \u00c5rlig ekonomisk besparing:<\/span>\n        <strong id=\"money_saved\">0<\/strong>\n      <\/div>\n      <div class=\"result-row\">\n        <span>\ud83d\udce6 Material\u00e5tg\u00e5ng (liter):<\/span>\n        <strong id=\"liters_needed\">0<\/strong>\n      <\/div>\n      <div class=\"result-row\" id=\"total_cost_row\">\n        <span>\ud83d\udcb5 Din investering:<\/span>\n        <strong id=\"total_cost\" style=\"color: #4a5568;\">0<\/strong>\n      <\/div>\n      <div class=\"result-row\" id=\"roi_row\" style=\"background: #f0fff4; font-weight: bold; padding: 12px; border-radius: 8px; margin-top: 10px;\">\n        <span>\u23f1\ufe0f \u00c5terbetalning (ROI):<\/span>\n        <strong id=\"roi_years\" style=\"color: #38a169; font-size: 1.25rem;\">0 \u00e5r<\/strong>\n      <\/div>\n\n      <!-- J\u00c4MF\u00d6RELSE BOX -->\n      <div class=\"comparison-highlight\">\n        <h4>\ud83d\udca1 Prisj\u00e4mf\u00f6relse mot traditionell metod<\/h4>\n        <p>Att gr\u00e4va upp och isolera utifr\u00e5n kostar normalt <strong>150\u2013300 tkr<\/strong>. Med Roll-On sparar du de pengarna direkt.<\/p>\n      <\/div>\n\n      <!-- DIAGRAM -->\n      <div class=\"chart-wrapper\">\n        <h4>\ud83d\udcc8 Din ekonomiska utveckling \u00f6ver 10 \u00e5r<\/h4>\n        <div style=\"position: relative; height:180px; width:100%;\">\n          <canvas id=\"roiChart\"><\/canvas>\n        <\/div>\n      <\/div>\n\n      <!-- UNIKA EGENSKAPER RUTA -->\n      <div class=\"feature-box inside-bg\">\n        <h4>\ud83c\udfe0 Hur det fungerar i k\u00e4llaren:<\/h4>\n        <ul>\n          <li><strong>M\u00f6gels\u00e4kert:<\/strong> Helt diffusions\u00f6ppen.<\/li>\n          <li><strong>Vakuum-barri\u00e4r:<\/strong> Motsvarar 25 cm mineralull per skikt.<\/li>\n          <li><strong>Varmare golv:<\/strong> Eliminerar golvdraget ovanf\u00f6r.<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n    \n  <\/div>\n<\/div>\n\n<style>\n  \/* 1. GLOBALA REGLER F\u00d6R ATT F\u00d6RHINDRA \u00d6VERFL\u00d6DE *\/\n  .calculator-container, \n  .calculator-container *, \n  .calculator-container *::before, \n  .calculator-container *::after {\n    box-sizing: border-box !important;\n    max-width: 100%; \/* Inget element f\u00e5r n\u00e5gonsin bli bredare \u00e4n sin f\u00f6r\u00e4lder *\/\n  }\n\n  .calculator-container {\n    width: 100%;\n    max-width: 1050px;\n    margin: 20px auto;\n    padding: 30px;\n    background: #ffffff;\n    border-radius: 16px;\n    box-shadow: 0 10px 30px rgba(0,0,0,0.08);\n    font-family: 'Segoe UI', system-ui, sans-serif;\n    color: #2d3748;\n    overflow-wrap: break-word;\n    word-wrap: break-word;\n    overflow-x: hidden; \/* D\u00f6ljer alla horisontella skrollistor om n\u00e5got \u00e4nd\u00e5 f\u00f6rs\u00f6ker smita ut *\/\n  }\n\n  .calculator-container h2 {\n    text-align: center;\n    color: #1a202c;\n    font-size: 1.6rem;\n    margin-bottom: 5px;\n    font-weight: 700;\n  }\n  .intro-text {\n    text-align: center;\n    font-size: 0.9rem;\n    color: #718096;\n    margin-bottom: 30px;\n    line-height: 1.4;\n  }\n\n  .calc-workspace {\n    display: flex;\n    flex-direction: column;\n    gap: 30px;\n    width: 100%;\n  }\n  \n  \/* GRID BARA F\u00d6R ST\u00d6RRE SK\u00c4RMAR *\/\n  @media (min-width: 768px) {\n    .calc-workspace {\n      display: grid;\n      grid-template-columns: 1fr 1.1fr;\n    }\n  }\n\n  \/* 2. MIN-WIDTH: 0 L\u00d6SER DET MESTA MED GRID\/FLEX \u00d6VERFL\u00d6DE *\/\n  .calc-side-inputs, .results-box {\n    min-width: 0; \n    width: 100%;\n  }\n\n  .input-group {\n    margin-bottom: 18px;\n    width: 100%;\n  }\n  .input-group label {\n    display: block;\n    font-weight: 600;\n    margin-bottom: 6px;\n    color: #4a5568;\n    font-size: 0.88rem;\n  }\n  .input-group input, .input-group select {\n    width: 100%;\n    padding: 11px;\n    border: 1px solid #cbd5e0;\n    border-radius: 8px;\n    font-size: 0.95rem;\n    background: #f7fafc;\n    color: #2d3748;\n  }\n  .checkbox-box {\n    background: #f7fafc;\n    border: 1px solid #e2e8f0;\n    border-radius: 8px;\n    padding: 12px;\n    width: 100%;\n  }\n  .checkbox-line {\n    display: flex;\n    align-items: center;\n    cursor: pointer;\n    font-size: 0.9rem;\n  }\n  .checkbox-line input {\n    width: auto;\n    margin-right: 10px;\n    flex-shrink: 0;\n  }\n  .checkbox-desc {\n    font-size: 0.8rem;\n    color: #718096;\n    margin: 4px 0 8px 24px;\n    line-height: 1.3;\n  }\n  .sub-input {\n    padding-left: 24px;\n  }\n  .sub-input label {\n    font-size: 0.78rem;\n    color: #718096;\n    margin-bottom: 2px;\n  }\n  .sub-input input {\n    background: #fff;\n    padding: 6px;\n    font-size: 0.9rem;\n  }\n\n  .results-box {\n    background: #ffffff;\n    border: 1px solid #e2e8f0;\n    border-radius: 12px;\n    padding: 20px;\n    box-shadow: 0 4px 12px rgba(0,0,0,0.02);\n  }\n  .results-box h3 {\n    margin: 0 0 15px 0;\n    font-size: 1.2rem;\n    color: #1a202c;\n  }\n  \n  \/* 3. FLEX-WRAP F\u00d6R ATT L\u00c5TA SIFFROR HOPPA NER EN RAD OM DET \u00c4R F\u00d6R TR\u00c5NGT *\/\n  .result-row {\n    display: flex;\n    flex-wrap: wrap; \/* Detta r\u00e4ddar layouten p\u00e5 pyttesm\u00e5 sk\u00e4rmar! *\/\n    justify-content: space-between;\n    align-items: center;\n    padding: 10px 0;\n    border-bottom: 1px dashed #e2e8f0;\n    font-size: 0.95rem;\n    gap: 5px;\n  }\n  .result-row strong {\n    color: #38a169;\n    font-size: 1.05rem;\n    flex-shrink: 0;\n  }\n\n  .energy-label-box {\n    background: #f7fafc;\n    border: 2px solid #cbd5e0;\n    border-radius: 12px;\n    padding: 12px;\n    margin-bottom: 15px;\n    text-align: center;\n    width: 100%;\n  }\n  .energy-title {\n    font-weight: 700;\n    font-size: 0.85rem;\n    color: #2d3748;\n    margin-bottom: 8px;\n  }\n  .energy-badge-flex {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    gap: 10px;\n    margin-bottom: 6px;\n  }\n  .energy-badge {\n    width: 36px;\n    height: 36px;\n    line-height: 36px;\n    font-size: 1.2rem;\n    font-weight: 900;\n    color: #fff;\n    border-radius: 6px;\n    text-align: center;\n  }\n  .energy-arrow {\n    font-size: 1.1rem;\n    color: #a0aec0;\n  }\n  .energy-desc {\n    font-size: 0.8rem;\n    color: #4a5568;\n    margin: 0;\n    line-height: 1.3;\n  }\n  .comparison-highlight {\n    background: #fffaf0;\n    border-left: 4px solid #dd6b20;\n    padding: 10px;\n    border-radius: 6px;\n    margin: 15px 0;\n    font-size: 0.82rem;\n  }\n  .comparison-highlight h4 {\n    margin: 0 0 2px 0;\n    color: #dd6b20;\n  }\n  .comparison-highlight p {\n    margin: 0;\n    color: #7b341e;\n  }\n  .chart-wrapper {\n    margin: 15px 0;\n    padding: 12px;\n    background: #fff;\n    border: 1px solid #e2e8f0;\n    border-radius: 12px;\n    width: 100%;\n  }\n  .chart-wrapper h4 {\n    margin: 0 0 8px 0;\n    font-size: 0.85rem;\n    text-align: center;\n  }\n  button {\n    width: 100%;\n    padding: 14px 10px;\n    background: #38a169;\n    color: white;\n    border: none;\n    border-radius: 8px;\n    font-size: 1.05rem;\n    cursor: pointer;\n    font-weight: bold;\n    margin-top: 10px;\n    white-space: normal; \/* L\u00e5ter knappens text brytas till 2 rader om sk\u00e4rmen \u00e4r liten *\/\n  }\n  button:hover {\n    background: #2f855a;\n  }\n  .feature-box {\n    margin-top: 12px;\n    padding: 12px;\n    border-radius: 8px;\n    font-size: 0.82rem;\n    line-height: 1.4;\n  }\n  .feature-box h4 {\n    margin: 0 0 4px 0;\n  }\n  .feature-box ul {\n    margin: 0;\n    padding-left: 15px;\n  }\n  .inside-bg {\n    background: #ebf8ff;\n    border-left: 4px solid #3182ce;\n    color: #2b6cb0;\n  }\n\n  \/* 4. MOBIL-OPTIMERING: Tajtare marginaler f\u00f6r att spara plats *\/\n  @media (max-width: 767px) {\n    .calculator-container {\n      padding: 15px;\n      border-radius: 8px;\n    }\n    .intro-text {\n      margin-bottom: 20px;\n      font-size: 0.85rem;\n    }\n    .results-box {\n      padding: 12px;\n    }\n    .result-row {\n      font-size: 0.88rem;\n    }\n    .energy-label-box {\n      padding: 10px;\n    }\n  }\n<\/style>\n\n<script>\nlet roiChartInstance = null;\n\nconst classColors = {\n  'A': '#196f3d', 'B': '#28b463', 'C': '#52be80', \n  'D': '#f4d03f', 'E': '#f39c12', 'F': '#e67e22', 'G': '#e74c3c'\n};\n\nfunction toggleKallareInputs() {\n  const ceilChecked = document.getElementById('isolate_ceiling').checked;\n  const wallChecked = document.getElementById('isolate_walls').checked;\n\n  document.getElementById('ceiling_meta').style.display = ceilChecked ? 'block' : 'none';\n  document.getElementById('wall_meta').style.display = wallChecked ? 'block' : 'none';\n}\n\nfunction calculateKallare() {\n  const sqmCost = parseFloat(document.getElementById('sqm_cost').value) || 0;\n  const price = parseFloat(document.getElementById('energy_price').value) || 0;\n  const currentClass = document.getElementById('current_class').value;\n  \n  const ceilChecked = document.getElementById('isolate_ceiling').checked;\n  const wallChecked = document.getElementById('isolate_walls').checked;\n\n  if (!ceilChecked && !wallChecked) {\n    document.getElementById('results').style.display = 'none';\n    return;\n  }\n\n  const degreeHours = 90000; \n  const rollOnR = 5.7; \n  \n  const R_base_ceiling = 0.5; \n  const R_base_wall = 0.15; \n\n  let totalArea = 0;\n  let totalKwhSaved = 0;\n  let basementFloorArea = 0;\n\n  if (ceilChecked) {\n    const area = parseFloat(document.getElementById('ceiling_area').value) || 0;\n    const deltaU = (1 \/ R_base_ceiling) - (1 \/ (R_base_ceiling + rollOnR));\n    totalKwhSaved += (deltaU * area * degreeHours * 1.2) \/ 1000;\n    totalArea += area;\n    basementFloorArea = area;\n  }\n\n  if (wallChecked) {\n    const area = parseFloat(document.getElementById('wall_area').value) || 0;\n    const deltaU = (1 \/ R_base_wall) - (1 \/ (R_base_wall + rollOnR));\n    totalKwhSaved += (deltaU * area * degreeHours * 1.0) \/ 1000;\n    totalArea += area;\n    if (basementFloorArea === 0) {\n      basementFloorArea = area * 1.2;\n    }\n  }\n\n  const kwhSaved = Math.round(totalKwhSaved);\n  const moneySaved = Math.round(kwhSaved * price);\n  const litersNeeded = Math.ceil(totalArea \/ 2);\n  const totalCost = totalArea * sqmCost;\n\n  const estimatedHouseArea = basementFloorArea > 0 ? (basementFloorArea * 2) : 150;\n  const kwhSavedPerSqmHouse = kwhSaved \/ estimatedHouseArea;\n\n  const classOrder = ['G', 'F', 'E', 'D', 'C', 'B', 'A'];\n  let currentIndex = classOrder.indexOf(currentClass);\n  let newIndex = currentIndex;\n\n  if (kwhSavedPerSqmHouse > 25) {\n    newIndex = Math.min(6, currentIndex + 2); \n  } else if (kwhSavedPerSqmHouse > 8) {\n    newIndex = Math.min(6, currentIndex + 1); \n  }\n  const newClass = classOrder[newIndex];\n\n  document.getElementById('badge_old').innerText = currentClass;\n  document.getElementById('badge_old').style.backgroundColor = classColors[currentClass];\n  document.getElementById('badge_new').innerText = newClass;\n  document.getElementById('badge_new').style.backgroundColor = classColors[newClass];\n\n  const statusText = document.getElementById('energy_status_text');\n  if (newClass === currentClass) {\n    statusText.innerHTML = `Isoleringen s\u00e4nker din f\u00f6rbrukning. F\u00f6r att h\u00f6ja husets officiella energiklass ett helt steg, kombinera b\u00e5de tak- och v\u00e4ggisolering.`;\n  } else {\n    statusText.innerHTML = `Genom att kapa k\u00e4llarens energil\u00e4ckage kan husets totala betyg teoretiskt lyftas fr\u00e5n <strong>Klass ${currentClass}<\/strong> till <strong>Klass ${newClass}<\/strong>!`;\n  }\n\n  document.getElementById('money_saved').innerText = moneySaved.toLocaleString('sv-SE') + \" kr\";\n  document.getElementById('liters_needed').innerText = litersNeeded.toLocaleString('sv-SE');\n\n  if (totalCost > 0) {\n    document.getElementById('total_cost').innerText = totalCost.toLocaleString('sv-SE') + \" kr\";\n    document.getElementById('total_cost_row').style.display = 'flex';\n    \n    if (moneySaved > 0) {\n      const roiYears = (totalCost \/ moneySaved).toFixed(1);\n      document.getElementById('roi_years').innerText = roiYears + \" \u00e5r\";\n      document.getElementById('roi_row').style.display = 'flex';\n    } else {\n      document.getElementById('roi_row').style.display = 'none';\n    }\n  } else {\n    document.getElementById('total_cost_row').style.display = 'none';\n    document.getElementById('roi_row').style.display = 'none';\n  }\n\n  document.getElementById('results').style.display = 'block';\n\n  try {\n    generateChart(totalCost, moneySaved);\n  } catch (error) {\n    console.warn(error);\n  }\n}\n\nfunction generateChart(investment, annualSavings) {\n  if (typeof Chart === 'undefined') return;\n\n  const canvas = document.getElementById('roiChart');\n  if (!canvas) return;\n  const ctx = canvas.getContext('2d');\n  \n  const labels = ['Start', '\u00c5r 1', '\u00c5r 2', '\u00c5r 3', '\u00c5r 4', '\u00c5r 5', '\u00c5r 6', '\u00c5r 7', '\u00c5r 8', '\u00c5r 9', '\u00c5r 10'];\n  const data = [-investment]; \n  \n  for (let year = 1; year <= 10; year++) {\n    data.push((year * annualSavings) - investment);\n  }\n\n  if (roiChartInstance) {\n    roiChartInstance.destroy();\n  }\n\n  roiChartInstance = new Chart(ctx, {\n    type: 'bar',\n    data: {\n      labels: labels,\n      datasets: [{\n        data: data,\n        backgroundColor: data.map(v => v >= 0 ? 'rgba(56, 161, 105, 0.85)' : 'rgba(229, 62, 62, 0.85)'),\n        borderColor: data.map(v => v >= 0 ? '#38a169' : '#e53e3e'),\n        borderWidth: 1.5,\n        borderRadius: 4\n      }]\n    },\n    options: {\n      responsive: true,\n      maintainAspectRatio: false,\n      plugins: { legend: { display: false } },\n      scales: {\n        y: { ticks: { font: { size: 10 }, callback: function(v) { return v.toLocaleString('sv-SE') + ' kr'; } } },\n        x: { ticks: { font: { size: 10 } } }\n      }\n    }\n  });\n}\n\ntoggleKallareInputs();\ncalculateKallare();\n<\/script>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><div class=\"vc_row-full-width vc_clearfix\"><\/div><div data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" data-vc-stretch-content=\"true\" class=\"vc_row wpb_row vc_row-fluid vc_row-no-padding\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"vc_empty_space\"   style=\"height: 40px\"><span class=\"vc_empty_space_inner\"><\/span><\/div><div data-rellax-speed=\"0.7\" data-rellax-percentage=\"0.7\" class=\"vc_row wpb_row vc_inner vc_row-fluid align-center\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><\/div><div class=\"ult-spacer spacer-6a6a0abd9514e\" data-id=\"6a6a0abd9514e\" data-height=\"200\" data-height-mobile=\"80\" data-height-tab=\"\" data-height-tab-portrait=\"140\" data-height-mobile-landscape=\"80\" style=\"clear:both;display:block;\"><\/div><\/div><\/div><\/div><\/div><div class=\"vc_row-full-width vc_clearfix\"><\/div><!-- Row Backgrounds --><div class=\"upb_bg_img\" data-ultimate-bg=\"url(https:\/\/preview.treethemes.com\/resonance\/corporate\/wp-content\/uploads\/sites\/15\/2023\/12\/decoration-3.svg)\" data-image-id=\"id^178|url^https:\/\/preview.treethemes.com\/resonance\/corporate\/wp-content\/uploads\/sites\/15\/2023\/12\/decoration-3.svg|caption^null|alt^null|title^decoration-3|description^null\" data-ultimate-bg-style=\"vcpb-default\" data-bg-img-repeat=\"repeat\" data-bg-img-size=\"cover\" data-bg-img-position=\"\" data-parallx_sense=\"30\" data-bg-override=\"ex-full\" data-bg_img_attach=\"scroll\" data-upb-overlay-color=\"rgba(255,255,255,0.75)\" data-upb-bg-animation=\"\" data-fadeout=\"\" data-bg-animation=\"left-animation\" data-bg-animation-type=\"h\" data-animation-repeat=\"repeat\" data-fadeout-percentage=\"30\" data-parallax-content=\"\" data-parallax-content-sense=\"30\" data-row-effect-mobile-disable=\"true\" data-img-parallax-mobile-disable=\"true\" data-rtl=\"false\"  data-custom-vc-row=\"\"  data-vc=\"7.5\"  data-is_old_vc=\"\"  data-theme-support=\"\"   data-overlay=\"true\" data-overlay-color=\"rgba(255,255,255,0.75)\" data-overlay-pattern=\"\" data-overlay-pattern-opacity=\"0.8\" data-overlay-pattern-size=\"\" data-overlay-pattern-attachment=\"scroll\"    ><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"\ud83e\udd76 Slipp kalla golv i resten av huset En oisolerad k\u00e4llare fungerar som en enorm kylklamp under ditt hus. Kylan str\u00e5lar upp genom bj\u00e4lklaget och kyler ner golven ovanf\u00f6r. Genom att enkelt applicera Roll-On i stryper du golvdraget. Du f\u00e5r varmare golv och kan ofta skruva ner elementen p\u00e5 \u00f6verv\u00e5ningen, vilket kapar din elr\u00e4kning direkt. [...]","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8810","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/pages\/8810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/comments?post=8810"}],"version-history":[{"count":12,"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/pages\/8810\/revisions"}],"predecessor-version":[{"id":8868,"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/pages\/8810\/revisions\/8868"}],"wp:attachment":[{"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/media?parent=8810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}