// Variablen Energiesparrechner Hydrauliköl ------------------------------------------------------------------------------   

var esrPresetOilvolume = 200;                                                   // Leistung Maschine in kWh   
var esrPresetOilcosts = 5;                                                      // Ölkosten (€/ltr.)

// Variablen Energiesparrechner Intelligent Mobility ---------------------------------------------------------------------   

var esr2PresetCostsUpgrade = 4800;
var esr2PresetDieselShare = 0.2;                                                // Diesel Anteil (0.2 entspricht 20%)
var esr2PresetNatspeedEuro = 0.65;                                              // NatSpeed Euro
var esr2PresetNatspeedSFR = 1.2;                                                // NatSpeed SFR

// -----------------------------------------------------------------------------------------------------------------------


var esrActiveCalculator = "1";

var esrIsoClass;
var esrPower;
var esrInterval;
var esrOilvolume;
var esrEnergycosts;
var esrEnergycostsOld;
var esrResultEnergysavingsOld;
var esrResultEnergysavings;
var esrOilcosts;
var esrCleaningoil;
var esrResultCostsPerRuntime;
var esrResultCostsPerRuntimeOld;
var isoRate;
var currency;


function esrSelectCalculator(calculator){
    switch (calculator) {
      case "1":
        document.getElementById("esrHeadline").src = "assets/images/headlines/hl_erechner_hydraulikoel.gif";      
        esrRetrieveData();
        break;
      case "2":
        document.getElementById("esrHeadline").src = "assets/images/headlines/hl_erechner_im.gif";
        esr2RetrieveData();
        break;
      default:
        break;
    }
}

function esrCalculate(){  
    isoRate = document.getElementById("esrIsoClass").value;
    currency = document.getElementById("esrCurrency").value;
    esrPower = document.getElementById("esrPower").value.replace(",",".") * 1;
    esrInterval = document.getElementById("esrInterval").value.replace(",",".") * 1;
    esrOilvolume = document.getElementById("esrOilvolume").value.replace(",",".") * 1;
    esrEnergycosts = document.getElementById("esrEnergycosts").value.replace(",",".") * 1;
    esrOilcosts = document.getElementById("esrOilcosts").value.replace(",",".") * 1;

    if(!document.getElementById("esrOilcosts").value || !document.getElementById("esrEnergycosts").value || !document.getElementById("esrEnergycosts").value || !document.getElementById("esrInterval").value || !document.getElementById("esrPower").value){
        alert("Bitte zun" + unescape("%E4") + "chst alle erforderlichen Daten eingeben!");
        return; 
    }
    if(isNaN(esrOilcosts) || isNaN(esrEnergycosts) || isNaN(esrOilvolume) || isNaN(esrInterval) || isNaN(esrPower)){
        alert("Bitte alle Felder korrekt ausf" + unescape("%FC") + "llen!");
        return; 
    }
    
    document.getElementById("esrResultInterval").innerHTML = kaufm(Math.round(esrInterval * 2 * 100) / 100) + " h";
    document.getElementById("esrResultIntervalOld").innerHTML = kaufm(Math.round(esrInterval * 100) / 100) + " h";

    document.getElementById("esrResultOilvolume").innerHTML = kaufm(Math.round(esrOilvolume * 100) / 100) + " l";
    document.getElementById("esrResultOilvolumeOld").innerHTML = kaufm(Math.round(esrOilvolume * 100) / 100) + " l";

    var tmpEnergyCosts = esrEnergycosts * esrPower * esrInterval * 2 * (1-isoRate);
    var tmpEnergyCostsOld = esrEnergycosts * esrPower * esrInterval;
    var tmpEnergySavings = isoRate * 100;
    var tmpOilCosts = esrPresetOilvolume * esrPresetOilcosts;
    var tmpOilCostsOld = esrOilvolume * esrOilcosts;
    var tmpCostsPerRuntimeOld = ((esrEnergycosts * esrPower * esrInterval) + (esrOilvolume * esrOilcosts)) / esrInterval;
    var tmpEnergyCostsPerHour = esrEnergycosts * esrPower * esrInterval * 2 * (1-isoRate);
    var tmpEnergySavingsValue = 0 - (tmpEnergyCostsPerHour * isoRate);
    var tmpTotalCostsPerInterval = tmpEnergyCostsPerHour + tmpOilCosts;// + tmpEnergySavingsValue;
    var tmpCostsPerRuntime = (tmpTotalCostsPerInterval / (esrInterval * 2));
    var tmpSavingsPerInterval = (tmpCostsPerRuntimeOld - tmpCostsPerRuntime) * esrInterval * 2;

    document.getElementById("esrResultEnergycosts").innerHTML = kaufm(Math.round(tmpEnergyCosts * 100) / 100)   + currency;
    document.getElementById("esrResultEnergycostsOld").innerHTML = kaufm(Math.round(tmpEnergyCostsOld * 100) / 100)  + currency;
    document.getElementById("esrResultEnergysavings").innerHTML = kaufm(Math.round(tmpEnergySavings * 100) / 100) + " %";
    document.getElementById("esrResultEnergysavingsOld").innerHTML = "0 %";
    document.getElementById("esrResultOilcosts").innerHTML = kaufm(Math.round(tmpOilCosts * 100) / 100)  + currency;
    document.getElementById("esrResultOilcostsOld").innerHTML = kaufm(Math.round(tmpOilCostsOld * 100) / 100)  + currency;
    document.getElementById("esrResultCostsPerRuntimeOld").innerHTML = kaufmold(Math.round(tmpCostsPerRuntimeOld * 100) / 100) + currency;
    document.getElementById("esrResultCostsPerRuntime").innerHTML = kaufmold(Math.round(tmpCostsPerRuntime * 100) / 100) + currency;
    document.getElementById("esrResultSavingsPerInteval").innerHTML = kaufm(Math.round((tmpSavingsPerInterval * 100) / 100)) + currency;
    document.getElementById("esrResultSavingsText").innerHTML = kaufm(Math.round((tmpSavingsPerInterval * 100) / 100)) + currency;
    document.getElementById("esrResultSavingsAmountText").innerHTML = Math.abs(kaufm(Math.round(tmpEnergySavingsValue * 100) / 100)) + currency;
    document.getElementById("esrResultCostsPerRuntimeText").innerHTML = kaufmold(Math.round(tmpCostsPerRuntime * 100) / 100) + currency;
    document.getElementById("esrResultCostsPerRuntimeOldText").innerHTML = kaufmold(Math.round(tmpCostsPerRuntimeOld * 100) / 100) + currency;
    document.getElementById("esrResultSavingsPercentText").innerHTML =  kaufm(Math.round(isoRate * 100 * 100) / 100) + " %";
    document.getElementById("esrResultOilIntervalText").innerHTML =  kaufm(Math.round(esrInterval * 100) / 100);
    document.getElementById("esrResultOilIntervalNewText").innerHTML = kaufm(Math.round(esrInterval * 2 * 100) / 100);
    document.getElementById("esrResultIsoText").innerHTML = isoRate == 0.15 ? "ISO VG Klasse 46" : isoRate == 0.25 ? "ISO VG Klasse 68" : "ISO VG Klasse 100";
    document.getElementById("esrStage").innerHTML = document.getElementById("esrResult").innerHTML;
}

function esrRetrieveData(){
    esrActiveCalculator = 1;
    document.getElementById("esrStage").innerHTML = document.getElementById("esrForm").innerHTML;
    if(esrPower)
      document.getElementById("esrPower").value = esrPower;
    if(esrInterval)
      document.getElementById("esrInterval").value = esrInterval;
    if(esrOilvolume)
      document.getElementById("esrOilvolume").value = esrOilvolume;
    if(esrEnergycosts)
      document.getElementById("esrEnergycosts").value = esrEnergycosts;
    if(esrOilcosts)
      document.getElementById("esrOilcosts").value = esrOilcosts;
      
    document.getElementById("esrIsoClass").selectedIndex = isoRate == 0.15 ? 0 : isoRate == 0.25 ? 1 : 2;
    document.getElementById("esrCurrency").selectedIndex = currency == " SFR" ? 1 : 0;
}


// -----------------------------------------------------------------------------------------------------------------------


var esr2Mileage;
var esr2Consumption;
var esr2DieselPrice;
var esr2Currency;
var esr2Amount;

function esr2Calculate(){
    esr2Mileage = document.getElementById("esr2Mileage").value.replace(",",".") * 1;
    esr2Consumption = document.getElementById("esr2Consumption").value.replace(",",".") * 1;
    esr2DieselPrice = document.getElementById("esr2DieselPrice").value.replace(",",".") * 1;
    esr2Currency = document.getElementById("esr2Currency").value;
    esr2Amount = document.getElementById("esr2Amount").value.replace(",",".") * 1;
    
    if(!document.getElementById("esr2Mileage").value || !document.getElementById("esr2Consumption").value || !document.getElementById("esr2DieselPrice").value || !document.getElementById("esr2Amount").value){
        alert("Bitte zun"+ unescape("%E4") + "chst alle erforderlichen Daten eingeben!");
        return; 
    }
    if(isNaN(esr2Mileage) || isNaN(esr2Consumption) || isNaN(esr2DieselPrice) || isNaN(esr2Amount)){
        alert("Bitte alle Felder korrekt ausfüllen!");
        return; 
    }
    
    var tmpDieselCosts = Math.round(esr2Consumption * esr2Mileage / 100 * esr2PresetDieselShare * esr2DieselPrice * 100) / 100;
    var tmpShareNatspeed = Math.round(((esr2Consumption * esr2Mileage / 100)-(esr2Consumption * esr2Mileage / 100 * esr2PresetDieselShare)) * 100 / 100);       
    var tmpCostsNatspeed = Math.round(tmpShareNatspeed * (esr2Currency == " €" ? esr2PresetNatspeedEuro : esr2PresetNatspeedSFR) * 100) / 100;
    var tmpTotalCostsOld = Math.round(esr2Consumption * esr2Mileage / 100 * esr2DieselPrice * 100) / 100;         
    var tmpTotalCosts = Math.round((tmpDieselCosts + tmpCostsNatspeed) * 100) / 100;         
    var tmpSavingsPerYear = Math.round((tmpTotalCostsOld - tmpTotalCosts) * 100) / 100;
    var tmpSavingsPerYearAndVehicle = Math.round((tmpTotalCostsOld - tmpTotalCosts) * esr2Amount * 100) / 100;
    var tmpArmortisationtime = Math.round((esr2PresetCostsUpgrade / (tmpSavingsPerYear / 12)) * 100) / 100;


    document.getElementById("esrStage").innerHTML = document.getElementById("esr2Result").innerHTML
    document.getElementById("esr2ResultAnnualMilageOld").innerHTML = kaufm(Math.round(esr2Mileage * 100) / 100);
    document.getElementById("esr2ResultAnnualMilage").innerHTML = kaufm(Math.round(esr2Mileage * 100) / 100);
    document.getElementById("esr2ResultConsumptionOld").innerHTML = kaufm(Math.round(esr2Consumption * 100) / 100);
    document.getElementById("esr2ResultConsumption").innerHTML = kaufm(Math.round(esr2Consumption * 100) / 100);
    document.getElementById("esr2ResultShareDieselOld").innerHTML = kaufm(Math.round(esr2Consumption * esr2Mileage / 100 * 100) / 100) + " l";
    document.getElementById("esr2ResultShareDiesel").innerHTML = kaufm(Math.round(esr2Consumption * esr2Mileage / 100 * esr2PresetDieselShare * 100) / 100) + " l";
    document.getElementById("esr2ResultDieselCostsOld").innerHTML = kaufm(Math.round(esr2Consumption * esr2Mileage / 100 * esr2DieselPrice * 100) / 100)  + esr2Currency;        
    document.getElementById("esr2ResultDieselCosts").innerHTML = kaufm(tmpDieselCosts)  + esr2Currency; 
    document.getElementById("esr2ResultShareNatspeed").innerHTML = kaufm(tmpShareNatspeed) + " l";
    document.getElementById("esr2ResultCostsNatspeed").innerHTML = kaufm(tmpCostsNatspeed)  + esr2Currency; 
    document.getElementById("esr2ResultTotalCostsOld").innerHTML = kaufm(tmpTotalCostsOld)  + esr2Currency;
    document.getElementById("esr2ResultTotalCosts").innerHTML = kaufm(tmpTotalCosts)  + esr2Currency;  
    document.getElementById("esr2ResultSavingsPerYear").innerHTML = kaufm(tmpSavingsPerYear) + esr2Currency;           
    document.getElementById("esr2ResultSavingsPerYearAndVehicle").innerHTML = kaufm(tmpSavingsPerYearAndVehicle) + esr2Currency;           
    document.getElementById("esr2ResultSavingsPerYearText").innerHTML = kaufm(tmpSavingsPerYear) + esr2Currency;  
    document.getElementById("esr2ResultSavingsPerYearTotalText").innerHTML = kaufm(tmpSavingsPerYearAndVehicle) + esr2Currency;  
    document.getElementById("esr2ResultAmountText").innerHTML = esr2Amount + " Fahrzeug(en)"; 
    document.getElementById("esr2ResultArmortisationText").innerHTML = kaufm(tmpArmortisationtime) + " Monaten"; 

}

function esr2RetrieveData(){
    esrActiveCalculator = 2;
    document.getElementById("esrStage").innerHTML = document.getElementById("esr2Form").innerHTML
    if(esr2Mileage)
      document.getElementById("esr2Mileage").value = esr2Mileage;
    if(esr2Consumption)
      document.getElementById("esr2Consumption").value = esr2Consumption;
    if(esr2DieselPrice)
      document.getElementById("esr2DieselPrice").value = esr2DieselPrice;
    if(esr2Amount)
      document.getElementById("esr2Amount").value = esr2Amount;
    document.getElementById("esr2Currency").selectedIndex = esr2Currency == " SFR" ? 1 : 0;

}

function kaufm(x) {
  return Math.round(x);
}            

function kaufmold(x) {
  k = x.toString();
  k += (k.indexOf('.') == -1)? '.00' : '00';
  return k.substring(0, k.indexOf('.') + 3).replace(".",",");
} 


