import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js";

export function funktionWaermeVerlusteTrinkwarmwasserSpeicherT55T56(System: string, SpeicherVolumen: number, BaujahrTrinkwarmwasserSpeicher: number) {

    if (SpeicherVolumen < 5) { SpeicherVolumen = 5; }
    if (SpeicherVolumen > 1500) { SpeicherVolumen = 1500; }
   
    const dataset = [
        {SuchSpalte: ["Speichervolumen"], DatenSpalte: [5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 150, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1500]},
        {SuchSpalte: ["indirekt beheizt - Aufstellort beheizt - mit Zirkulation"], DatenSpalte: [296, 313, 341, 366, 389, 411, 432, 452, 471, 490, 509, 595, 675, 823, 960, 1088, 1211, 1330, 1444, 1555, 1664, 1888]},
        {SuchSpalte: ["indirekt beheizt - Aufstellort beheizt - ohne Zirkulation"], DatenSpalte: [254, 268, 292, 314, 334, 352, 370, 387, 404, 420, 436, 510, 579, 705, 822, 933, 1038, 1140, 1238, 1333, 1426, 1619]},
        {SuchSpalte: ["indirekt beheizt - Aufstellort unbeheizt - mit Zirkulation"], DatenSpalte: [355, 375, 409, 439, 467, 493, 518, 542, 566, 588, 611, 714, 810, 988, 1151, 1306, 1454, 1595, 1733, 1866, 1996, 2266]},
        {SuchSpalte: ["indirekt beheizt - Aufstellort unbeheizt - ohne Zirkulation"], DatenSpalte: [313, 331, 360, 387, 411, 435, 457, 478, 498, 518, 538, 629, 714, 870, 1014, 1150, 1280, 1406, 1527, 1644, 1759, 1996]},
        {SuchSpalte: ["elektrisch beheizt - Aufstellort beheizt - mit Zirkulation"], DatenSpalte: [116, 133, 162, 188, 212, 235, 257, 279, 299, 320, 339, 434, 521, 685, 838, 983, 1123, 1258, 1389, 1517, 1643, 2236]},
        {SuchSpalte: ["elektrisch beheizt - Aufstellort beheizt - ohne Zirkulation"], DatenSpalte: [102, 116, 142, 164, 185, 206, 225, 244, 262, 280, 297, 379, 456, 599, 733, 861, 983, 1101, 1216, 1328, 1437, 1956]},
        {SuchSpalte: ["elektrisch beheizt - Aufstellort unbeheizt - mit Zirkulation"], DatenSpalte: [137, 156, 190, 221, 249, 276, 302, 327, 352, 376, 399, 509, 613, 805, 985, 1156, 1320, 1478, 1633, 1783, 1930, 2627]},
        {SuchSpalte: ["elektrisch beheizt - Aufstellort unbeheizt - ohne Zirkulation"], DatenSpalte: [122, 140, 170, 197, 223, 247, 270, 293, 314, 336, 356, 455, 547, 719, 880, 1033, 1179, 1321, 1459, 1593, 1725, 2348]},
        {SuchSpalte: ["gasbeheizt - Aufstellort beheizt - mit Zirkulation"], DatenSpalte: [712, 784, 938, 1100, 1268, 1441, 1616, 1795, 1976, 2160, 2346, 3300, 4286, 6331, 8446, 10615, 12828, 15079, 17362, 19674, 22011, 34019]},
        {SuchSpalte: ["gasbeheizt - Aufstellort beheizt - ohne Zirkulation"], DatenSpalte: [623, 686, 821, 963, 1110, 1260, 1414, 1571, 1729, 1890, 2053, 2887, 3750, 5539, 7390, 9288, 11225, 13194, 15192, 17215, 19260, 29766]},
        {SuchSpalte: ["gasbeheizt - Aufstellort unbeheizt - mit Zirkulation"], DatenSpalte: [836, 921, 1102, 1293, 1490, 1693, 1899, 2109, 2322, 2538, 2756, 3877, 5036, 7439, 9924, 12473, 15073, 17718, 20400, 23117, 25864, 39972]},
        {SuchSpalte: ["gasbeheizt - Aufstellort unbeheizt - ohne Zirkulation"], DatenSpalte: [747, 823, 985, 1155, 1332, 1513, 1697, 1885, 2075, 2268, 2463, 3465, 4501, 6647, 8868, 11146, 13470, 15833, 18230, 20657, 23112, 35720]}
    ];
    
    
    const WaermeVerlusteTrinkwarmwasserSpeicher = funktionEinfacheInterpolation(SpeicherVolumen, System, dataset);
    let WaermeVerlusteTrinkwarmwasserSpeicherAngepasst = 0;

    if (System.includes("gasbeheizt")) {
        WaermeVerlusteTrinkwarmwasserSpeicherAngepasst = WaermeVerlusteTrinkwarmwasserSpeicher * 1;
    }
    else {
        if (BaujahrTrinkwarmwasserSpeicher > 1994) { WaermeVerlusteTrinkwarmwasserSpeicherAngepasst = WaermeVerlusteTrinkwarmwasserSpeicher * 1; }
        else if (BaujahrTrinkwarmwasserSpeicher > 1988 && BaujahrTrinkwarmwasserSpeicher <= 1994) { WaermeVerlusteTrinkwarmwasserSpeicherAngepasst = WaermeVerlusteTrinkwarmwasserSpeicher * 1.25; }
        else if (BaujahrTrinkwarmwasserSpeicher <= 1988) { WaermeVerlusteTrinkwarmwasserSpeicherAngepasst = WaermeVerlusteTrinkwarmwasserSpeicher * 1.32; }    
     }

    return WaermeVerlusteTrinkwarmwasserSpeicherAngepasst;

}