﻿//pre-emption form-boxes
var old = 5.8;
var UwOLD = 5.8;
var Fnew = 0;
var Gnew = 0;
var UwNEW = 0;
var FensterFL=30;
var Lebensdauer = 30;
var Heizoel_E = (0.5+1-1);
var Erdgas_E = (0.5+1-1);
var Pellets_E = (0.5+1-1);
var Hackgut_E= (0.5+1-1);
//var Buche_E=73;
var UWmanuell = false;

//initialize form
function FormInit() {
    document.frmEnergie.FensterFL.value = FensterFL;
    document.frmEnergie.Lebensdauer.value = Lebensdauer;
    document.frmEnergie.old.value = old;
    document.frmEnergie.UwOLD.value = UwOLD;
    document.frmEnergie.FSystem.value = Fnew;
    document.frmEnergie.Glasnew.value = Gnew;
    document.frmEnergie.UwNEW.value = UwNEW;
    document.frmEnergie.UWmanuell.checked = false;
    
    document.frmEnergie.Heizoel_E.value = Heizoel_E;
    document.frmEnergie.Erdgas_E.value = Erdgas_E;
    document.frmEnergie.Pellets_E.value = Pellets_E;
    document.frmEnergie.Hackgut_E.value = Hackgut_E;
//    document.frmEnergie.Buche_E.value = Buche_E;    
}
// rates for computation 

var Heizgradtage = (3354+1-1);
var kgL = 1.19;
var Brennwert_HOelL = 11900;
var Wirkungsgrad = 0.75;

// formatting numbers (round, dot) 
function round2(number) {
    if (isNaN(number)) return 0;
    numstr = number.toString();
    dotpos = numstr.indexOf(".");
    
    if (dotpos > -1) {
    if (numstr.length > (dotpos + 3)) {
        numstr = numstr.substr(0, dotpos + 3);    
    }
    numstr_w = numstr.split(".")[0];
    numstr_d = numstr.split(".")[1];
    numstr = numstr_w + "," + numstr_d;
    }   
     
    return numstr;
}
function round2cur(number) {
    if (isNaN(number)) return 0;    
    numstr = number.toString();    
    dotpos = numstr.indexOf(".");
    
    if (dotpos > -1) {
    if (numstr.length > (dotpos + 3)) {
        numstr = numstr.substr(0, dotpos + 3);    
    }
    numstr_w = numstr.split(".")[0];
    numstr_d = numstr.split(".")[1];
    
    if (numstr_d.length < 2)
        numstr_d = numstr_d + "0";
        numstr = numstr_w + "," + numstr_d;
    }   
     
    return numstr;
}
//dot
function round3(number) {
    if (isNaN(number)) return 0;
    numstr = number.toString();    
    numstr = numstr.split(".")[0];
     
    return numstr;
}
function round6(number) {
    return dotnum(round3(number));
}
function dotnum(strnum) {
    dots = (strnum.length - 1) / 3;
    dots = Math.floor(dots);
    prenum = strnum.length % 3;
    if (dots) {
    for(i = dots; i >= 0; i--) {
        numforward = prenum + i * 3;
        if (numforward == 0) continue;
        if (numforward == strnum.length) continue;
        
        str1st = strnum.substr(0, numforward);
        str2nd = strnum.substr(numforward);
        
        strnum = str1st + "." + str2nd;        
    }
    }
    
    return strnum;
}
function REcalc(form) {
// Uw boxes
    if (form.old.options[form.old.selectedIndex].value == 0) {
    form.old.selectedIndex = 0;
    if (form.old.options[form.old.selectedIndex].value != 0)
        return REcalc(form);
    }
    
    if (form.Glasnew.options[form.Glasnew.selectedIndex].value == 0) {
    form.Glasnew.selectedIndex = 0;
    if (form.Glasnew.options[form.Glasnew.selectedIndex].value != 0)
        return REcalc(form);
    }
    
    
// form data
    FensterFL = parseInt(form.FensterFL.value);
    Lebensdauer = parseInt(form.Lebensdauer.value);
    if(UWmanuell) {
    UwOLD = parseFloat(form.UwOLD.value.replace(",","."));
    UwNEW = parseFloat(form.UwNEW.value.replace(",","."));
    }
    else{
    UwOLD = form.old.options[form.old.selectedIndex].value;
    Glasnew = form.Glasnew.options[form.Glasnew.selectedIndex].value;
     if (Glasnew=="1")
        UwNEW = "1.2";
    else if(Glasnew=="2")
        UwNEW = "1.2";
    else if (Glasnew == "3")
        UwNEW = "0.92";            
    else if (Glasnew == "4")
        UwNEW = "0.78";    
    else if (Glasnew =="5")
        UwNEW = "1.1";        
    else if (Glasnew =="6")
        UwNEW = "1.0";
    else if (Glasnew =="7")
        UwNEW = "1.1";  
    else if (Glasnew =="8")
        UwNEW = "1.1";  
    else if (Glasnew =="9")
        UwNEW = "0.87";
    else if (Glasnew =="10")
        UwNEW = "0.68";
    else if (Glasnew =="11")
        UwNEW = "1.0";
    else if (Glasnew =="12")
        UwNEW = "0.8";
    else if (Glasnew =="13")
        UwNEW = "0.88";
    else if (Glasnew =="14")
        UwNEW = "0.74";
    else if (Glasnew =="15")
        UwNEW = "1.0";
    else if (Glasnew =="16")
        UwNEW = "0.63";
     }
   
    if (isNaN(FensterFL)) { FensterFL = 0; }
    if (isNaN(Lebensdauer)) { Lebensdauer = 0; }
    Heizoel_E = parseFloat(form.Heizoel_E.value.replace(",", "."));
    Erdgas_E = parseFloat(form.Erdgas_E.value.replace(",", "."));
    Pellets_E = parseFloat(form.Pellets_E.value.replace(",", "."));
    Hackgut_E = parseFloat(form.Hackgut_E.value.replace(",", "."));
//    Buche_E = parseFloat(form.Buche_E.value.replace(",", "."));

//formula energy-saving
Heizoel_Spar = ((UwOLD - UwNEW) * FensterFL *kgL *  24 * Heizgradtage) / (Wirkungsgrad * Brennwert_HOelL);
    LHeizoel = Heizoel_Spar * Lebensdauer;
    m3Erdgas = LHeizoel * 1.042;
    kgPellets = LHeizoel * 2.2;
    srmHackgut = LHeizoel * 0.014;
//    rmBuche = LHeizoel *0.004;
    
    LHeizoel_sumE = LHeizoel * Heizoel_E;
    m3Erdgas_sumE = m3Erdgas * Erdgas_E;
    kgPellets_sumE = kgPellets * Pellets_E;
    srmHackgut_sumE = srmHackgut * Hackgut_E;
//    rmBuche_sumE = rmBuche * Buche_E;
    
    kgCO2 = LHeizoel * 2.7861;
    kgSO2 = LHeizoel * 0.0034416;
    kgNO2 = LHeizoel * 0.0029201;
// refresh form
    form.FensterFL.value = round2(FensterFL);
    form.UwOLD.value = UwOLD;
    form.UwNEW.value = UwNEW;
   
    form.Heizoel_Spar.value = round6(Heizoel_Spar);
    
    form.Lebensdauer.value = round6(Lebensdauer);
    form.LD1.value = form.Lebensdauer.value;
    form.LD2.value = form.Lebensdauer.value;
    
    form.LHeizoel.value = round6(LHeizoel);
    form.m3Erdgas.value = round6(m3Erdgas);
    form.kgPellets.value = round6(kgPellets);
    form.srmHackgut.value = round6(srmHackgut);
//    form.rmBuche.value = round6(rmBuche);    
    form.Heizoel_E.value = round2cur(Heizoel_E);
    form.Erdgas_E.value = round2cur(Erdgas_E);
    form.Pellets_E.value = round2cur(Pellets_E);
    form.Hackgut_E.value = round2cur(Hackgut_E);
//    form.Buche_E.value = round2cur(Buche_E);
    form.LHeizoel_sumE.value = round6(LHeizoel_sumE);
    form.m3Erdgas_sumE.value = round6(m3Erdgas_sumE);
    form.kgPellets_sumE.value = round6(kgPellets_sumE);
    form.srmHackgut_sumE.value = round6(srmHackgut_sumE);
//    form.rmBuche_sumE.value = round6(rmBuche_sumE);    
    form.kgCO2.value = round6(kgCO2);
    form.kgSO2.value = round6(kgSO2);
    form.kgNO2.value = round6(kgNO2);
}
//control dropdown - window system / glass
var bV=parseInt(navigator.appVersion);
NS4=(document.layers) ? 1 : 0;
IE4=((document.all)&&(bV>=4)) ? 1 : 0;
ver4 = (NS4 || IE4) ? 1 : 0;

function checkSystem()
{    f = document.forms["frmEnergie"];
    c = f.elements["FSystem"];
    r = f.elements["Glasnew"];
    // clear old regions
    for (i=r.length-1; i>=0; i--)
        r.options[i]=null;
    // fill array
    o = new Array;
    i = 0;
selectedUwOLDID=-1;
if (c.options[c.selectedIndex].value == "0") {
    o[i++]=new Option("- Please select above -                                                                          ","0",(selectedUwOLDID==0),(selectedUwOLDID==0));
}

if (c.options[c.selectedIndex].value == "dimension") {
    o[i++]=new Option("- please select -                                                                                ", "0");
    o[i++]=new Option("Double glazing Ug= 1.1 with aluminium spacer", "1");
    o[i++]=new Option("Double glazing Ug= 1.1 with stainless steel spacer", "2");
    o[i++]=new Option("Triple glazing Ug= 0.7 with stainless steel spacer", "3");
    o[i++]=new Option("Triple glazing Ug= 0.5 with stainless steel spacer", "4");

  }

if (c.options[c.selectedIndex].value == "dimension4") {
    o[i++]=new Option("- please select -                                                                                ", "0");
    o[i++]=new Option("Standard glazing with alumium spacer", "5");
    o[i++]=new Option("Standard glazing with stainless steel spacer", "6");
  }
  
  
  
if (c.options[c.selectedIndex].value == "edition") {
    o[i++]=new Option("- please select -                                                                                ", "0");
    o[i++]=new Option("Double glazing Ug= 1.1 with aluminium spacer", "7");
    o[i++]=new Option("Double glazing Ug= 1.1 with stainless steel spacer", "8");
    o[i++]=new Option("Triple glazing Ug= 0.7 with stainless steel spacer", "9");
    o[i++]=new Option("Triple glazing Ug= 0.5 with stainless steel spacer", "10");

  }
  
  
  
if (c.options[c.selectedIndex].value == "edition4") {
    o[i++]=new Option("- please select -                                                                                ", "0");
    o[i++]=new Option("Standard glazing with alumium spacer", "11");
    o[i++]=new Option("Passive house glazing with stainless steel spacer", "12");
  }

if (c.options[c.selectedIndex].value == "varion") {
    o[i++]=new Option("- please select -                                                                                ", "0");
    o[i++]=new Option("Triple glazing Ug= 0.7 with stainless steel spacer", "13");
    o[i++]=new Option("Triple glazing Ug= 0.5 with stainless steel spacer", "14");
  }

if (c.options[c.selectedIndex].value == "varion4") {
    o[i++]=new Option("- please select -                                                                                ", "0");
    o[i++]=new Option("Triple glazing Ug= 0,95 with stainless steel spacer", "15");
    o[i++]=new Option("Quad glazing Ug= 0,59 with stainless steel spacer", "16");
  }


r.length=o.length;
for (i=0; i < o.length; i++) r.options[i]=o[i];
r.length=o.length;
document.frmEnergie.UwNEW.value = 0;
}

//manually UW
function UW(form)
{
if (form.UWmanuell.checked){
    UWmanuell = true;
    form.old.disabled=true;
    form.FSystem.disabled = true;
    form.Glasnew.disabled = true;
    form.UwOLD.disabled = false;
    form.UwOLD.style.background ="#3BA0C0";
    form.UwOLD.style.color = "white";
    form.UwNEW.disabled = false;
    form.UwNEW.style.background ="#3BA0C0";
    form.UwNEW.style.color = "white";    
    form.UwNEW.style.bordercolor="white";
} else {
    UWmanuell = false;
    form.old.disabled=false;
    form.FSystem.disabled = false;
    form.Glasnew.disabled = false;
    form.UwOLD.disabled = true;
    form.UwOLD.style.background ="white";
    form.UwNEW.disabled = true;
    form.UwNEW.style.background ="white";
    
}
REcalc(form);
}