// JavaScript Document
// erecon Calculator


function sendForm (event) {
  if (event.keyCode == 13) {
    calc ();
  }
} 

function jsTest () {
  document.getElementById('noCalc').style.display = 'none';
  document.getElementById('calcWrap').style.display = 'block';
}

function calc () {

  var Laufzeit = document.calcForm.Laufzeit.value.replace(/,/, ".");
  var Betriebstage = document.calcForm.Betriebstage.value.replace(/,/, ".");
  var Nutzungsdauer = document.calcForm.Nutzungsdauer.value.replace(/,/, ".");
  var Auslastung = document.calcForm.Auslastung.value.replace(/,/, ".");
  var Strompreis = document.calcForm.Strompreis.value.replace(/,/, ".");
  var Server = document.calcForm.Server.value.replace(/,/, "."); 
  var maxLeistungsaufnahme = document.calcForm.maxLeistungsaufnahmePro.value.replace(/,/, "."); 
  var calmaxLeistungsaufnahme = document.calcForm.calmaxLeistungsaufnahmePro.value.replace(/,/, ".");

  // alert (Laufzeit+'\n'+Betriebstage+'\n'+Nutzungsdauer+'\n'+Auslastung+'\n'+Strompreis+'\n'+Server);
  
  // Anzahl der Server
  var calServer = Math.round(Server / 2 );
  document.calcForm.calServer.value = calServer;
  
  // max. Leistungsaufnahme gesamt
  var maxLeistungsaufnahmeGesamt = maxLeistungsaufnahme * Server;
  document.calcForm.maxLeistungsaufnahmeGesamt.value = formatZahl(maxLeistungsaufnahmeGesamt);
  
  var calmaxLeistungsaufnahmeGesamt = calmaxLeistungsaufnahme * calServer;
  document.calcForm.calmaxLeistungsaufnahmeGesamt.value = formatZahl(calmaxLeistungsaufnahmeGesamt);
  
  var commaxLeistungsaufnahmeGesamt = maxLeistungsaufnahmeGesamt - calmaxLeistungsaufnahmeGesamt;
  document.calcForm.commaxLeistungsaufnahmeGesamt.value = formatZahl(commaxLeistungsaufnahmeGesamt);
  
  // Durchschnittl. Leistungsaufnahme  
  var  durchschnittLeistungsaufnahme =  (maxLeistungsaufnahmeGesamt * Auslastung) / 100;
  document.calcForm.durchschnittLeistungsaufnahme.value = formatZahl(durchschnittLeistungsaufnahme);
  
  var  caldurchschnittLeistungsaufnahme =  (calmaxLeistungsaufnahmeGesamt * Auslastung) / 100;
  document.calcForm.caldurchschnittLeistungsaufnahme.value = formatZahl(caldurchschnittLeistungsaufnahme); 
  
  var comdurchschnittLeistungsaufnahme = durchschnittLeistungsaufnahme - caldurchschnittLeistungsaufnahme;
  document.calcForm.comdurchschnittLeistungsaufnahme.value = formatZahl(comdurchschnittLeistungsaufnahme);


  // Energieverbrauch pro Jahr -------------------------------------------------
  // Verbrauch der Server pro Jahr
  var JVerbrauchServer = (durchschnittLeistungsaufnahme * Laufzeit) / 1000 * Betriebstage;
  document.calcForm.JVerbrauchServer.value = formatZahl(JVerbrauchServer);
  
  var calJVerbrauchServer = (caldurchschnittLeistungsaufnahme * Laufzeit) / 1000 * Betriebstage;
  document.calcForm.calJVerbrauchServer.value = formatZahl(calJVerbrauchServer); 
  
  var comJVerbrauchServer = JVerbrauchServer - calJVerbrauchServer;
  document.calcForm.comJVerbrauchServer.value = formatZahl(comJVerbrauchServer); 
  
  // Verbrauch der Klimaanlage pro Jahr
  var JVerbrauchKlimaanlage = JVerbrauchServer * 1;
  document.calcForm.JVerbrauchKlimaanlage.value = formatZahl(JVerbrauchKlimaanlage);
  
  var calJVerbrauchKlimaanlage = calJVerbrauchServer * 0.5;
  document.calcForm.calJVerbrauchKlimaanlage.value = formatZahl(calJVerbrauchKlimaanlage); 
  
  var comJVerbrauchKlimaanlage = JVerbrauchKlimaanlage - calJVerbrauchKlimaanlage;
  document.calcForm.comJVerbrauchKlimaanlage.value = formatZahl(comJVerbrauchKlimaanlage);  
  
  // Thermische Optimierung Zuluft/Abluft pro Jahr
  var calJThermischeOptimierung = calJVerbrauchKlimaanlage * -0.25;
  document.calcForm.calJThermischeOptimierung.value = formatZahl(calJThermischeOptimierung);
  
  var comJThermischeOptimierung = 0 - calJThermischeOptimierung;
  document.calcForm.comJThermischeOptimierung.value = formatZahl(comJThermischeOptimierung);
  
  // Summe - Energieverbrauch pro Jahr
  var JVerbrauchSumme = JVerbrauchServer + JVerbrauchKlimaanlage;
  document.calcForm.JVerbrauchSumme.value = formatZahl(JVerbrauchSumme);
  
  var calJVerbrauchSumme = calJVerbrauchServer + calJVerbrauchKlimaanlage + calJThermischeOptimierung;
  document.calcForm.calJVerbrauchSumme.value = formatZahl(calJVerbrauchSumme);
  
  var comJVerbrauchSumme = JVerbrauchSumme - calJVerbrauchSumme;
  document.calcForm.comJVerbrauchSumme.value = formatZahl(comJVerbrauchSumme);
  // ---------------------------------------------------------------------------
  
  // Energieverbrauch über die Nutzungsdauer -----------------------------------
  // Verbrauch der Server über die Nutzungsdauer
  var NVerbrauchServer = JVerbrauchServer * Nutzungsdauer;
  document.calcForm.NVerbrauchServer.value = formatZahl(NVerbrauchServer);
  
  var calNVerbrauchServer = calJVerbrauchServer * Nutzungsdauer;
  document.calcForm.calNVerbrauchServer.value = formatZahl(calNVerbrauchServer); 
  
  var comNVerbrauchServer = NVerbrauchServer - calNVerbrauchServer;
  document.calcForm.comNVerbrauchServer.value = formatZahl(comNVerbrauchServer);  
  
  // Verbrauch der Klimaanlage über die Nutzungsdauer
  var NVerbrauchKlimaanlage = JVerbrauchKlimaanlage * Nutzungsdauer;
  document.calcForm.NVerbrauchKlimaanlage.value = formatZahl(NVerbrauchKlimaanlage);
  
  var calNVerbrauchKlimaanlage = calJVerbrauchKlimaanlage * Nutzungsdauer;
  document.calcForm.calNVerbrauchKlimaanlage.value = formatZahl(calNVerbrauchKlimaanlage); 
  
  var comNVerbrauchKlimaanlage = NVerbrauchKlimaanlage - calNVerbrauchKlimaanlage;
  document.calcForm.comNVerbrauchKlimaanlage.value = formatZahl(comNVerbrauchKlimaanlage); 
  
  // Optimierung - Energieverbrauch über die Nutzungsdauer   
  var calNThermischeOptimierung = calJThermischeOptimierung * Nutzungsdauer;
  document.calcForm.calNThermischeOptimierung.value = formatZahl(calNThermischeOptimierung);
  
  var comNThermischeOptimierung = 0 - calNThermischeOptimierung;
  document.calcForm.comNThermischeOptimierung.value = formatZahl(comNThermischeOptimierung);   
  
  // Summe - Energieverbrauch über die Nutzungsdauer 
  var NVerbrauchSumme = NVerbrauchServer + NVerbrauchKlimaanlage;
  document.calcForm.NVerbrauchSumme.value = formatZahl(NVerbrauchSumme);
  
  var calNVerbrauchSumme = calNVerbrauchServer + calNVerbrauchKlimaanlage + calNThermischeOptimierung;
  document.calcForm.calNVerbrauchSumme.value = formatZahl(calNVerbrauchSumme);
  
  var comNVerbrauchSumme = NVerbrauchSumme - calNVerbrauchSumme;
  document.calcForm.comNVerbrauchSumme.value = formatZahl(comNVerbrauchSumme);
  // ---------------------------------------------------------------------------    

  // Energiekosten pro Jahr ----------------------------------------------------
  // Verbrauchskosten der Server pro Jahr
  var JVerbrauchskostenServer = JVerbrauchServer * Strompreis;
  document.calcForm.JVerbrauchskostenServer.value = formatZahl(JVerbrauchskostenServer);
  
  var calJVerbrauchskostenServer = calJVerbrauchServer * Strompreis;
  document.calcForm.calJVerbrauchskostenServer.value = formatZahl(calJVerbrauchskostenServer);
  
  var comJVerbrauchskostenServer = JVerbrauchskostenServer - calJVerbrauchskostenServer;
  document.calcForm.comJVerbrauchskostenServer.value = formatZahl(comJVerbrauchskostenServer);    
  
  // Verbrauchskosten der Klimaanlage pro Jahr
  var JVerbrauchskostenKlimaanlage = JVerbrauchKlimaanlage * Strompreis;
  document.calcForm.JVerbrauchskostenKlimaanlage.value = formatZahl(JVerbrauchskostenKlimaanlage);
  
  var calJVerbrauchskostenKlimaanlage = calJVerbrauchKlimaanlage * Strompreis;
  document.calcForm.calJVerbrauchskostenKlimaanlage.value = formatZahl(calJVerbrauchskostenKlimaanlage);
  
  var comJVerbrauchskostenKlimaanlage = JVerbrauchskostenKlimaanlage - calJVerbrauchskostenKlimaanlage;
  document.calcForm.comJVerbrauchskostenKlimaanlage.value = formatZahl(comJVerbrauchskostenKlimaanlage);    
  
  // Optimierung - Energiekosten über die Nutzungsdauer 
  var calJVerbrauchskostenDifferenz = calJThermischeOptimierung * Strompreis;
  document.calcForm.calJVerbrauchskostenDifferenz.value = formatZahl(calJVerbrauchskostenDifferenz);
  
  document.calcForm.comJVerbrauchskostenDifferenz.value = formatZahl((0 - calJVerbrauchskostenDifferenz));
  
  // Summe - Verbrauchskosten pro Jahr
  var JVerbrauchskostenSumme = JVerbrauchSumme * Strompreis;
  document.calcForm.JVerbrauchskostenSumme.value = formatZahl(JVerbrauchskostenSumme);
  
  var calJVerbrauchskostenSumme = calJVerbrauchSumme * Strompreis;
  document.calcForm.calJVerbrauchskostenSumme.value = formatZahl(calJVerbrauchskostenSumme);
  
  var comJVerbrauchskostenSumme = comJVerbrauchSumme * Strompreis;
  document.calcForm.comJVerbrauchskostenSumme.value = formatZahl(comJVerbrauchskostenSumme);   
  
  // Energiekosten über die Nutzungsdauer --------------------------------------
  // Verbrauchskosten der Server über die Nutzungsdauer
  var NVerbrauchskostenServer = JVerbrauchServer * Strompreis * Nutzungsdauer;
  document.calcForm.NVerbrauchskostenServer.value = formatZahl(NVerbrauchskostenServer);
  
  var calNVerbrauchskostenServer = calJVerbrauchServer * Strompreis * Nutzungsdauer;
  document.calcForm.calNVerbrauchskostenServer.value = formatZahl(calNVerbrauchskostenServer);
  
  var comNVerbrauchskostenServer = NVerbrauchskostenServer - calNVerbrauchskostenServer;
  document.calcForm.comNVerbrauchskostenServer.value = formatZahl(comNVerbrauchskostenServer);     
  
  // Verbrauchskosten der Klimaanlage über die Nutzungsdauer
  var NVerbrauchskostenKlimaanlage = JVerbrauchKlimaanlage * Strompreis * Nutzungsdauer;
  document.calcForm.NVerbrauchskostenKlimaanlage.value = formatZahl(NVerbrauchskostenKlimaanlage);
  
  var calNVerbrauchskostenKlimaanlage = calJVerbrauchKlimaanlage * Strompreis * Nutzungsdauer;
  document.calcForm.calNVerbrauchskostenKlimaanlage.value = formatZahl(calNVerbrauchskostenKlimaanlage);
  
  var comNVerbrauchskostenKlimaanlage = NVerbrauchskostenKlimaanlage - calNVerbrauchskostenKlimaanlage;
  document.calcForm.comNVerbrauchskostenKlimaanlage.value = formatZahl(comNVerbrauchskostenKlimaanlage);

  // Summe - Verbrauchskosten über die Nutzungsdauer 
  var NVerbrauchskostenSumme = JVerbrauchSumme * Strompreis * Nutzungsdauer;
  document.calcForm.NVerbrauchskostenSumme.value = formatZahl(NVerbrauchskostenSumme); 
  
  var calNVerbrauchskostenSumme = calJVerbrauchSumme * Strompreis * Nutzungsdauer;
  document.calcForm.calNVerbrauchskostenSumme.value = formatZahl(calNVerbrauchskostenSumme);   
  
  var comNVerbrauchskostenSumme = comJVerbrauchSumme * Strompreis * Nutzungsdauer;
  document.calcForm.comNVerbrauchskostenSumme.value = formatZahl(comNVerbrauchskostenSumme);     
}

function formatZahl(zahl) {
    var k = 2;
    var fix = 1;
    var neu = '';
   // Runden
    var f = Math.pow(10, k);
    zahl = '' + parseInt( zahl * f + (.5 * (zahl > 0 ? 1 : -1)) ) / f ;
    // Komma ermittlen
    var idx = zahl.indexOf('.');
    // fehlende Nullen einfügen

    if(fix)
    {
         zahl += (idx == -1 ? '.' : '' )
         + f.toString().substring(1);
    }
    // Nachkommastellen ermittlen
    idx = zahl.indexOf('.');
    if( idx == -1) idx = zahl.length;
    else neu = ',' + zahl.substr(idx + 1, k);
    // Tausendertrennzeichen
    while(idx > 0)
    {
        if(idx - 3 > 0)
        neu = '.' + zahl.substring( idx - 3, idx) + neu;
        else
        neu = zahl.substring(0, idx) + neu;
        idx -= 3;
    }
    return neu;
}

function reverse () {
  document.calcForm.Laufzeit.value = 24;
  document.calcForm.Betriebstage.value = 365;
  document.calcForm.Nutzungsdauer.value = 5;
  document.calcForm.Auslastung.value = 12.5;
  document.calcForm.Strompreis.value = '0.18';    
  document.calcForm.Server.value = 2; 
  document.calcForm.maxLeistungsaufnahmePro.value = 400; 
  document.calcForm.calmaxLeistungsaufnahmePro.value = 600;
  calc ();
}



