<script lang="ts">
	import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte";
	import Progressbar from "#components/Ausweis/Progressbar.svelte";
	//import Hilfe from "#components/Ausweis/Hilfe.svelte";
	import { PRICES } from "#lib/constants.js";

	import Bereich from "#components/labels/Bereich.svelte";

	import ButtonWeiterHilfe from "#components/Ausweis/ButtonWeiterHilfe.svelte";
	import Ausweisart from "#components/Ausweis/Ausweisart.svelte";
	import GebaeudeDaten from "#components/Ausweis/GebaeudeDaten.svelte";
	import GebaeudeVolumen from "#components/Ausweis/GebaeudeVolumen.svelte";
	import Fensterflaechen  from "#components/Ausweis/Fensterflaechen.svelte";
	import KellerDachgeschossLueftungKuehlung  from "#components/Ausweis/KellerDachgeschossLueftungKuehlung.svelte";

	import SanierungszustandHeizungsanlage from "#components/Ausweis/SanierungszustandHeizungsanlage.svelte";
	import SanierungszustandFensterTueren from "#components/Ausweis/SanierungszustandFensterTueren.svelte";
	import SanierungszustandWaermedammung from "#components/Ausweis/SanierungszustandWaermedammung.svelte";
	import AusweisPreviewContainer from "#components/Ausweis/AusweisPreviewContainer.svelte";

	import Label from "#components/Label.svelte";
	import HelpLabel from "#components/HelpLabel.svelte";
	import ZipSearch from "#components/PlzSuche.svelte";

	import { hotWaterProductionTypes } from "#modules/BedarfsausweisWohnen/HotWaterProductionTypes.js";
	import BilderZusatzsysteme from "../../components/Ausweis/BilderZusatzsysteme.svelte";
	import moment from "moment";
	import { BitChecker } from "src/lib/BitChecker.js";
	import { Enums } from "#lib/client/prisma";
	import {
		BedarfsausweisWohnenClient,
		BenutzerClient,
		ObjektClient,
		UploadedGebaeudeBild,
		AufnahmeClient
	} from "#components/Ausweis/types.js";

	import ButtonSpaeterHilfe from "#components/Ausweis/ButtonSpaeterHilfe.svelte";

	export let ausweis: BedarfsausweisWohnenClient;
	export let objekt: ObjektClient
	export let aufnahme: AufnahmeClient
	export let user: BenutzerClient = {} as BenutzerClient;
	export let images: UploadedGebaeudeBild[] = []

	let daemmungsBreiten = [0, 0.02, 0.05, 0.08, 0.12, 0.16, 0.2, 0.3, 0.4];

	let fensterArten = {
		Einfachverglasung: 5,
		"Holzfenster Doppelverglasung": 2.7,
		"Kunststofffenster Doppelverglasung": 3,
		"Alu- oder Stahlfenster Doppelverglasung": 4.3,
		"Fenster Doppelverglasung (ab 1995)": 1.8,
		"Fenster Doppelverglasung (U-Wert 1,1)": 1.1,
		"Dreifach-Wärmeschutzverglasung(U-Wert 0,9)": 0.9,
		"Dreifach-Wärmeschutzverglasung(U-Wert 0,85)": 0.85,
		"Passivhausfenster(U-Wert 0,7)": 0.7,
		"Passivhausfenster(U-Wert 0,6)": 0.6,
		"Fenster mit U-Wert 2,3": 2.3,
		"Fenster mit U-Wert 1,6": 1.6,
		"Fenster mit U-Wert 1,7": 1.7,
		"Fenster mit U-Wert 1,3": 1.3,
		"Fenster mit U-Wert 1": 1,
	};

	async function spaeterWeitermachen() {
		// const result = await verbrauchsausweisWohnenSpeichern(
		// 	ausweis,
		// 	gebaeude,
		// 	aufnahme,
		// 	images,
		// 	user
		// );
		// if (result !== null) {
		// 	// Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
		// 	// Sonst müsste er alles neu eingeben...
		// 	ausweis.uid = result.uid;
		// 	gebaeude.uid = result.gebaeude_uid;
		// 	aufnahme.uid = result.gebaeude_aufnahme_uid;
		// 	window.history.pushState(
		// 		{},
		// 		"",
		// 		`${location.pathname}?uid=${result.uid}`
		// 	);
		// 	speichernOverlayHidden = false;
		// }
	}

	const arrayRange = (start: number, stop: number, step: number) =>
		Array.from(
			{ length: (stop - start) / step + 1 },
			(value, index) => start + index * step
		);

	function automatischAusfüllen() {
		ausweis.baujahr_anlage = 1974;
		ausweis.baujahr_gebaeude = 1962;
		ausweis.anzahl_einheiten = 1;
		ausweis.objekt_saniert = true;
		ausweis.objekt_strasse = "Mönckebergstraße";
		ausweis.objekt_plz = "22049";
		ausweis.objekt_ort = "Hamburg";
		ausweis.wohnflaeche = 152;
		ausweis.keller_beheizt = true;
		ausweis.dachgeschoss = Enums.Heizungsstatus.UNBEHEIZT;
		ausweis.energieverbrauch_zeitraum = moment("04.01.2018");
		ausweis.energietraeger_1 = "Erdgas";
		ausweis.energietraeger_einheit_heizquelle_1 = "kWh";
		ausweis.versorgungssysteme = BitChecker(1);
		ausweis.fenster_dach = BitChecker(1);
		ausweis.daemmung = BitChecker(1);
		ausweis.objekt_typ = "Einfamilienhaus";
		ausweis.objekt_gebaeudeteil = "Gesamtgebäude";
		ausweis.lueftungskonzept = "Fensterlüftung";
		ausweis.wird_gekuehlt = false;
		ausweis.energieverbrauch_1_heizquelle_1 = 40120;
		ausweis.energieverbrauch_2_heizquelle_1 = 42120;
		ausweis.energieverbrauch_3_heizquelle_1 = 41120;
		ausweis.anzahl_vollgeschosse = 2;
		ausweis.geschosshoehe = 2.25;
		ausweis.anzahl_gauben = 1;
		ausweis.breite_gauben = 0.7;
		ausweis.masse_a = 4;
		ausweis.masse_b = 12;
		ausweis.masse_c = 3;
		ausweis.masse_d = 6;
		ausweis.masse_e = 4;
		ausweis.masse_f = 9;
		ausweis.fensterflaeche_so_sw = 8;
		ausweis.fensterflaeche_nw_no = 8;
		ausweis.aussenwandflaeche_unbeheizt = 15;
		ausweis.fenster_flaeche_1 = 16;
		ausweis.fenster_art_1 = 5;
		ausweis.fenster_flaeche_2 = 0;
		ausweis.fenster_art_2 = 5;
		ausweis.dachfenster_flaeche = 12;
		ausweis.dachfenster_art = 5;
		ausweis.haustuer_flaeche = 2;
		ausweis.haustuer_art = 5;
		ausweis.dach_bauart = "Massive Konstruktion";
		ausweis.dach_daemmung = 0;
		ausweis.decke_bauart = "Massive Konstruktion";
		ausweis.decke_daemmung = 0.02;
		ausweis.aussenwand_bauart = "Massive Konstruktion";
		ausweis.aussenwand_daemmung = 0.05;
		ausweis.boden_bauart = "Massive Konstruktion";
		ausweis.boden_daemmung = 0.08;
		ausweis.warmwasser_verteilung = "zvmzbis1978";
		ausweis.warmwasser_speicherung = "zwwsath";
		ausweis.warmwasser_erzeugung = "ktkesselbis1986";
		ausweis.heizung_zentral = false;
		ausweis.heizung_verteilung = "zv7055bis1978";
		ausweis.waerme_erzeugung_heizung = "ktkesselbis1986h";
		ausweis.heizung_speicherung = "elzs7055bis1994";
		ausweis.energietraeger_2 = "Braunkohle";
		ausweis.anteil_zusatzheizung = 0.7;
		ausweis = ausweis;
	}

	const ausweisart = Enums.Ausweisart.BedarfsausweisWohnen	
	const anliegen = "Energieausweis erstellen";
</script>


<div id="skala" class="bg-white grid grid-cols-1 px-0 sm:p-4 lg:grid-cols-2 lg:gap-x-6">
	
	<PerformanceScore
		bind:ausweis
		bind:aufnahme={aufnahme}
		bind:objekt={objekt}
		{ausweisart}
	/>

	<Progressbar active={0} {ausweisart} {anliegen}/>

</div>

<form id="formInput-1" on:submit={ausweisAbschicken} name="ausweis" data-test="ausweis">
	<div id="formular-box" class="formular-boxen ring-0">


		<ButtonSpaeterHilfe {automatischAusfüllen} {spaeterWeitermachen} />

		<!-- A Prüfung der Ausweisart -->

		<Bereich bereich="A" title="Prüfung der Ausweisart">
			<Ausweisart
				bind:objekt={objekt}
				bind:aufnahme={aufnahme}
				bind:ausweis
				{ausweisart}
			/>
		</Bereich>

		<!-- B Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss -->

<!-- B Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss -->

		<Bereich
		bereich="B"
		title="Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss"
		><GebaeudeDaten bind:aufnahme bind:objekt /></Bereich
		>


<!-- C - Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen -->

		<Bereich
		bereich="C"
		title="Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen"
		><GebaeudeVolumen bind:ausweis/></Bereich>


<!-- D - Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden -->

<Bereich
bereich="D"
title="Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden"
><Fensterflaechen bind:ausweis/></Bereich>
	


<!-- E - Angabe zu Keller, Dachgeschoss, Lüftung und Kühlung -->

<Bereich
bereich="E"
title="Angabe zu Keller, Dachgeschoss, Lüftung und Kühlung"
><KellerDachgeschossLueftungKuehlung bind:ausweis/></Bereich>




<!-- F Angaben zur Heizungsanlage -->
<Bereich bereich="F" title="Angaben zur Heizunganlage"
			><SanierungszustandHeizungsanlage
				bind:images
				bind:objekt
				bind:aufnahme
				bind:ausweis
				{ausweisart}
			/></Bereich
			>
	
			<!-- G Angaben zur Fenster, Dachfenster und Türen -->
	
			<Bereich bereich="G" title="Angaben zu Fenster, Dachfenster und Türen"
				><SanierungszustandFensterTueren
					bind:images
					bind:objekt
					bind:aufnahme
					bind:ausweis
				/></Bereich
			>
			<!-- H Angaben zur Wärmedammung -->
	
			<Bereich bereich="H" title="Angaben zur Wärmedämmung"
				><SanierungszustandWaermedammung
					bind:images
					bind:objekt
					bind:aufnahme
					bind:ausweis
				/></Bereich
			>
	
			<!-- I Gebäudebild und Energieausweis PDF Vorschau  -->
	
			<Bereich bereich="I" title="Gebäudebild und Energieausweis PDF Vorschau"
				><AusweisPreviewContainer
					bind:images
					bind:ausweis
					bind:objekt
					bind:aufnahme
					{ausweisart}
				/></Bereich
			>

		</div>
		
			<ButtonWeiterHilfe {spaeterWeitermachen}
			bind:ausweis
			bind:images
			bind:user
			bind:objekt
			bind:aufnahme
			ausweisart={Enums.Ausweisart.BedarfsausweisWohnen}
			/>
		


	
</form>
