var niederschlag = new Array(29);
var deckung		 = new Array(13);
var filtertyp	 = new Array(6);

function init_01(){
	niederschlag[0]  = 806;
	niederschlag[1]  = 861;
	niederschlag[2]  = 601;
	niederschlag[3]  = 900;
	niederschlag[4]  = 645;
	niederschlag[5]  = 650;
	niederschlag[6]  = 578;
	niederschlag[7]  = 1000;
	niederschlag[8]  = 800;
	niederschlag[9]  = 500;
	niederschlag[10] = 989;
	niederschlag[11] = 932;
	niederschlag[12] = 656;
	niederschlag[13] = 820;
	niederschlag[14] = 627;
	niederschlag[15] = 706;
	niederschlag[16] = 850;
	niederschlag[17] = 950;
	niederschlag[18] = 586;
	niederschlag[19] = 650;
	niederschlag[20] = 390;
	niederschlag[21] = 1020;
	niederschlag[22] = 650;
	niederschlag[23] = 900;
	niederschlag[24] = 1003;
	niederschlag[25] = 850;
	niederschlag[26] = 1100;
	niederschlag[27] = 707;
	niederschlag[28] = 749;
	niederschlag[29] = 1;
	
	deckung[0]		 = 0.64;
	deckung[1]		 = 0.32;
	deckung[2]		 = 0.504;
	deckung[3]		 = 0.6;
	deckung[4]		 = 0.6;
	deckung[5]		 = 0.72;
	deckung[6]		 = 0.68;
	
	deckung[7]		 = 0.8;
	deckung[8]		 = 0.4;
	deckung[9]		 = 0.63;
	deckung[10]		 = 0.75;
	deckung[11]		 = 0.75;
	deckung[12]		 = 0.9;
	deckung[13]		 = 0.85;

	filtertyp[0]	 = 0.85;
	filtertyp[1]	 = 0.95;
	filtertyp[2]	 = 0.9;
	filtertyp[3]	 = 0.85;
	filtertyp[4]	 = 0.95;
	filtertyp[5]	 = 0.9;
	filtertyp[6]	 = 0.9;

	calcErtrag();
}

function calcErtrag(){
	var replText1 = /,/;
	var dn = 0;
	var dd = 0;
	var ft = 0;
	document.calculate.ns.value = Math.round(parseFloat(document.calculate.ns.value.replace(replText1, ".")));
	document.calculate.dachflaeche.value = Math.round(parseFloat(document.calculate.dachflaeche.value.replace(replText1, ".")));
	document.calculate.sonstwert.value = parseFloat(document.calculate.sonstwert.value.replace(replText1, "."));
	if (isNaN(document.calculate.ns.value)) document.calculate.ns.value = 500;
	if (isNaN(document.calculate.dachflaeche.value)) document.calculate.dachflaeche.value = 120;
	if (isNaN(document.calculate.sonstwert.value)) document.calculate.sonstwert.value = 0.9;
	if (document.calculate.stadt.selectedIndex < 29) document.calculate.ns.value = niederschlag[document.calculate.stadt.selectedIndex];
	for (i = 0; i < 2; i++) if (eval("document.calculate.dn["+i+"].checked")) dn = eval("document.calculate.dn["+i+"].value");
	for (i = 0; i < 7; i++) if (eval("document.calculate.dd["+i+"].checked")) dd = eval("document.calculate.dd["+i+"].value");
	for (i = 0; i < 7; i++) if (eval("document.calculate.ft["+i+"].checked")) { ft = eval("document.calculate.ft["+i+"].value"); if (i == 6) filtertyp[6] = parseFloat(document.calculate.sonstwert.value.replace(replText1, ".")); }
	dd = parseInt(dd)+(parseInt(dn)*7)
	document.calculate.ertrag_erg.value = Math.round(document.calculate.dachflaeche.value * document.calculate.ns.value * deckung[dd] * filtertyp[ft]);
	calcZisterne();
}

function calcBedarf(){
    var replText1 = /,/;
	var per = Math.round(parseFloat(document.calculate.pe.value.replace(replText1, ".")));
	var wap = Math.round(parseFloat(document.calculate.wa.value.replace(replText1, ".")));
	var gar = Math.round(parseFloat(document.calculate.ga.value.replace(replText1, ".")));
	var solj = Math.round(parseFloat(document.calculate.solj.value.replace(replText1, ".")));
	var pulj = 1032;
	var toil = 6880;
	var wasc = 0;
	var gart = 0;
	var tapj = 344;
	document.calculate.wasch0.value = Math.round(parseFloat(document.calculate.wasch0.value.replace(replText1, ".")));
	document.calculate.wasch1.value = Math.round(parseFloat(document.calculate.wasch1.value.replace(replText1, ".")));
	if (isNaN(per)) per = 1;
	if (isNaN(wap)) wap = 1;
	if (isNaN(gar)) gar = 0;
	if (isNaN(solj)) solj = 0;

	if (isNaN(document.calculate.wasch0.value)) document.calculate.wasch0.value = 12;
	if (isNaN(document.calculate.wasch1.value)) document.calculate.wasch1.value = 20;
	for (i = 0; i < 2; i++) if (eval("document.calculate.toi["+i+"].checked")) toil = eval("document.calculate.toi"+i+".value") * per * tapj;
	for (i = 0; i < 2; i++) if (eval("document.calculate.wasch["+i+"].checked")) wasc = eval("document.calculate.wasch"+i+".value") * wap * tapj;
	for (i = 0; i < 3; i++) if (eval("document.calculate.garten["+i+"].checked")) gart = eval("document.calculate.garten["+i+"].value") * gar;

	pulj = pulj * per;
	document.calculate.pe.value = per;
	document.calculate.wa.value = wap;
	document.calculate.ga.value = gar;
	document.calculate.solj.value = solj;
	document.calculate.wclj.value = Math.round(toil);
	document.calculate.walj.value = Math.round(wasc);
	document.calculate.pulj.value = Math.round(pulj);
	document.calculate.galj.value = Math.round(gart);
	document.calculate.bedarf_erg.value = Math.round(toil + wasc + pulj + gart + solj);
	calcZisterne();
}

function calcZisterne(){
	var replText1 = /,/;
	var sp = 0;
	var be = 0;
	be = document.calculate.bedarf_erg.value;
	er = document.calculate.ertrag_erg.value;
	sp = Math.round(parseFloat(document.calculate.speicher.value.replace(replText1, ".")));
	if (isNaN(sp)) sp = 7;
	document.calculate.speicher.value = sp;
	document.calculate.optimal.value = Math.round(be * (28 + sp) / 365);
	document.calculate.deckung_erg.value = roundNumber((er / be), 2);

	if (be < er) {
		vo = be * 0.085;
		document.calculate.speicher.value = Math.round((vo / (be / 300))-1);
		document.calculate.optimal.value = Math.round(vo);
	} else {
		vo = er * 0.085;
		document.calculate.speicher.value = Math.round((vo / (er / 300))-1);
		document.calculate.optimal.value = Math.round(vo);
	}
}

function roundNumber(num, iDigits) {
  var i, numStr, iDez, sZ, sN;
  var divisor = 1;

  if (isNaN(num)) return("0,00");

  numStr = num.toString();
  iDez = numStr.indexOf(".");
  if (iDez > -1) {
    sZ = numStr.substring(0, iDez);
    sN = numStr.substring(iDez + 1, numStr.length);
    if (sN.length > iDigits) {
      for (i = 1; i <= (sN.length - iDigits); i++) {
        divisor *= 10;
      }
      sN = parseInt(sN, 10);
      sZ = parseInt(sZ, 10);
      sN = Math.round(sN /divisor);
      divisor = 1;
      if (iDigits > 0) {
        for (i = 1; i <= iDigits; i++) {
          divisor *= 10;
        }
      }
      sN = sN /divisor;
      num = sZ + sN;
      numStr = num.toString();
    }
  }
  return(numStr);
}
