// konfigurator-taktvatt.js
// Visar: taktvatt
// === TAKTVÄTT KONFIGURATOR (kopplad till Produktkatalog) ===
let _ttSelectedType=null, _ttPricePerSqm=0, _ttDeduction='rot', _ttOwners=1, _ttFinYears=15;
let _ttProducts=[];
function initTtConfig(){ var _lbl=document.getElementById('cfgFileLabel');if(_lbl)_lbl.textContent='konfigurator-taktvatt.js';
// Hämta taktvätt-produkter från katalogen
_ttProducts = (typeof catalogProducts !== 'undefined' ? catalogProducts : []).filter(function(p){ return p.cat === 'taktvatt'; });
if(_ttProducts.length === 1) {
// Bara en produkt — välj den automatiskt
selectTtType(_ttProducts[0].id, _ttProducts[0].price);
}
renderTtTypes();
updateTtCalc();
}
function renderTtTypes(){
var c=document.getElementById('ttTypeCards');if(!c)return;
if(!_ttProducts.length) { c.innerHTML='<div style="padding:16px;color:#94a3b8;font-size:13px">Inga taktvätt-produkter i katalogen</div>'; return; }
c.innerHTML=_ttProducts.map(function(p){
var selected = _ttSelectedType === p.id;
var desc = p.desc || '';
var unit = p.unit || 'kvm';
var unitLabel = unit === 'kvm' ? 'm²' : unit;
var rotBadge = p.rotEligible ? '<div style="font-size:10px;color:#059669;margin-top:4px">✓ ROT-avdrag</div>' : '';
return '<div onclick="selectTtType(\''+p.id+'\','+p.price+')" style="padding:14px 16px;border:2px solid '+(selected?'#3b82f6':'#e5e7eb')+';border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:12px;background:'+(selected?'#f0f9ff':'#fff')+'">'
+'<div style="width:20px;height:20px;border:2px solid '+(selected?'#3b82f6':'#d1d5db')+';border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0">'+(selected?'<div style="width:10px;height:10px;background:#3b82f6;border-radius:50%"></div>':'')+'</div>'
+'<div style="flex:1"><div style="font-weight:600;font-size:14px">'+p.name+'</div><div style="font-size:11px;color:#64748b">'+desc+'</div>'+rotBadge+'</div>'
+'<div style="font-weight:700;font-size:14px;color:#1a1a1a">'+p.price.toFixed(2)+' kr/'+unitLabel+'</div>'
+'</div>';
}).join('');
}
function selectTtType(id,price){_ttSelectedType=id;_ttPricePerSqm=price;renderTtTypes();updateTtCalc();}
function setTtDeduction(t){_ttDeduction=t;updateTtCalc();}
function setTtOwners(n){_ttOwners=n;updateTtCalc();}
function setTtFinYears(y){_ttFinYears=y;updateTtCalc();}
function updateTtCalc(){
var area=parseInt(document.getElementById('ttArea')?.value)||0;
var subtotal=area*_ttPricePerSqm;
var prod = _ttProducts.find(function(p){ return p.id === _ttSelectedType; });
var hasRot = prod ? prod.rotEligible : false;
var deductType = hasRot ? _ttDeduction : 'none';
var deduct=cfgDeduct(subtotal,1.0,deductType,_ttOwners);
var total=subtotal-deduct;
var monthly=cfgMonthly(total,_ttFinYears);
var deductLabel = deductType==='rot' ? 'ROT-AVDRAG' : deductType==='green' ? 'GRÖNT TEKNIK-AVDRAG' : 'INGET AVDRAG';
var deductDetail = deductType==='rot' ? '30% av ' + fmt(subtotal) + ' = ' + fmt(deduct) : '';
renderPrisSidebar('ttPrisSidebar', {
lines: [
{label: 'Taktvätt', detail: area ? area+' m² × '+_ttPricePerSqm.toFixed(2)+' kr' : '', value: subtotal}
],
subtotal: subtotal,
deductType: deductType,
deductLabel: deductLabel,
deductAmount: deduct,
deductDetail: deductDetail,
owners: _ttOwners,
total: total,
finYears: _ttFinYears,
monthly: monthly,
category: 'taktvatt',
onDeductChange: 'setTtDeduction',
onOwnerChange: 'setTtOwners',
onFinChange: 'setTtFinYears',
onSave: "saveCfgQuote('taktvatt')",
onOrder: "goToCfgAffar('taktvatt')"
});
}