
// JavaScript Document
// Warnt vor ungültigen Zeichen


{
if ( isNaN( Eingabe ) ) 
{
alert( "Bitte geben Sie eine Zahl ein" );
}
}

function splitValue(werte) //zerlegt einen durch ; getrennten String in einen Array
{
	var values = werte.split(";");
	return values;
}

function calcAge() //Umsetzung Logarithmusformel
{
var gY0 = window.document.forms.alterungswert.garantyear.value.replace(/,/,"."); //Komma in Punkt
var gY1 = parseFloat(gY0);
var gY = -gY1
var gP0= window.document.forms.alterungswert.garantpercent.value.replace(/,/,"."); //Komma in Punkt
var gP = parseFloat(gP0);
var gL1 = gP/100;
var gL = Math.log(gL1);
var gL2 = gL/gY;
var rV = parseFloat(window.document.forms.alterungswert.alter.options[window.document.forms.alterungswert.alter.selectedIndex].text);
var gL3 = -gL2;
var gA = rV*gL3;
var gA2 = Math.exp(gA);
var gA3 = gA2*100000;
var gA4 = Math.round(gA3);
var gA5 = gA4/1000;
return gA5;
}

function calcDegRate() //degR ist die jährlich garantierte Maximal-Degradationsrate in Prozent
{
var gY0 = window.document.forms.alterungswert.garantyear.value.replace(/,/,"."); //Komma in Punkt
var gY1 = parseFloat(gY0); //holt die Garantiedauer in Jahren
var degR1 = 1/gY1; //bildet den Exponenten in der Formel ab
var gP0= window.document.forms.alterungswert.garantpercent.value.replace(/,/,"."); //Komma in Punkt
var gP = parseFloat(gP0);
//holt den garantierten Prozentsatz
var gP1 = gP/100; //Prozent 
var degR2 = Math.pow(gP1,degR1);
//bildet den Subtrahenden in der Klammer ab
var degR3 = 1-degR2;
//bildet die Subtraktion in der Klammer ab
var degR4 = 100000*degR3;
var degR5 = Math.round(degR4);
var degR = degR5/1000;
//multipliziert mit 100 und komplettiert die Gleichung
return degR; 
}

function calcNennw() //nennW ist die aktuelle Nennleistung
{
var gY0 = window.document.forms.alterungswert.garantyear.value.replace(/,/,"."); //Komma in Punkt
var gY1 = parseFloat(gY0);
var degR1 = 1/gY1;
var gP0= window.document.forms.alterungswert.garantpercent.value.replace(/,/,"."); //Komma in Punkt
var gP = parseFloat(gP0);
var degR2 = Math.pow(gP,degR1);
var degR3 = 1-degR2;
var degR = 100*degR3;
var rV = parseFloat(window.document.forms.alterungswert.alter.options[window.document.forms.alterungswert.alter.selectedIndex].text);
var nennW1 = 1-degR;
var nennW = Math.pow(nennW1,rV);
return nennW;
}

function fillRate() //liest einen String, wandelt ihn in einen Array und füllt zwei Input-Felder 
{
  //numbers();
  fillValue();
 	window.document.forms.alterungswert.andegrad.value = calcDegRate();
}

function prozNennl() //berechnet aktuelle Leistung in Prozent der ursprünglichen Leistung
{
  var uNl0 = window.document.forms.alterungswert.nennleistung0.value.replace(/,/,"."); //Komma in Punkt
  var uNl = parseFloat (uNl0); //ursprüngliche Nennleistung
  var uNlp = uNl/100; //Prozent ursprüngliche Nennleistung
  var aktL0 = window.document.forms.alterungswert.nennleistungakt.value.replace(/,/,"."); //Komma in Punkt
  var aktL = parseFloat (aktL0); //aktuelle Leistung
  var prozNl1 = aktL/uNlp; //aktuelle Leistung in Prozent
  var prozNl2 = 1000*prozNl1;
  var prozNl3 = Math.round(prozNl2);
  var prozNl = prozNl3/1000; 
  return prozNl;
}

function calcAbsGa () //berechnet die aktuelle Leistung absolut im Vergleich zur Herstellergarantie
{
  var aktL0 = window.document.forms.alterungswert.nennleistungakt.value.replace(/,/,"."); //Komma in Punkt
  var aktL = parseFloat (aktL0); //aktuelle Leistung
  var garAbs0 = window.document.forms.alterungswert.garantabs.value.replace(/,/,"."); //Komma in Punkt
  var garAbs  = parseFloat (garAbs0); //garantierte Leistung
  var AbsG1 = aktL-garAbs; //Differenz aktuell und garantiert
  var AbsG2 = 1000*AbsG1;
  var AbsG3 = Math.round(AbsG2);
  var AbsG = AbsG3/1000;
  return AbsG; 
}

function calcProzG() //berechnet die aktuelle Leistung in Prozent zur Herstellergarantie
{
  var gAProz0 = window.document.forms.alterungswert.garantperc.value.replace(/,/,"."); //Komma in Punkt
  var gAProz = parseFloat (gAProz0); //
  var prozNl40 = window.document.forms.alterungswert.percaktuell.value.replace(/,/,"."); //Komma in Punkt
  var prozNl4 = parseFloat (prozNl40); //holt Prozent der Nennleistung
  var prozNl5 = prozNl4-gAProz;
  var prozNl6 = 1000*prozNl5;
  var prozNl7 = Math.round(prozNl6);
  var prozNl8 = prozNl7/1000; 
  return prozNl8; 
}

function calcAbsMin()
{
  var aktL0 = window.document.forms.alterungswert.nennleistungakt.value.replace(/,/,"."); //Komma in Punkt
  var aktL = parseFloat (aktL0); //aktuelle Leistung
  var absEmpmin0 = window.document.forms.alterungswert.empminabs.value.replace(/,/,"."); //Komma in Punkt
  var absEmpmin = parseFloat (absEmpmin0);
  var AbsMin1 = aktL-absEmpmin;
  var AbsMin2 = 1000*AbsMin1; 
  var AbsMin3 = Math.round(AbsMin2);
  var AbsMin = AbsMin3/1000;
  return AbsMin;
}

function calcProzMin() //berechnet die aktuelle Leistung in Prozent zum Empirieminiumum
{
  var eProzMin0 = window.document.forms.alterungswert.empmin.value.replace(/,/,"."); //Komma in Punkt
  var eProzMin = parseFloat (eProzMin0); //
  var prozNl90 = window.document.forms.alterungswert.percaktuell.value.replace(/,/,"."); //Komma in Punkt
  var prozNl9 = parseFloat (prozNl90); //holt Prozent der Nennleistung
  var prozNl10 = prozNl9-eProzMin;
  var prozNl11 = 1000*prozNl10;
  var prozNl12 = Math.round(prozNl11);
  var prozNl14 = prozNl12/1000;  
  return prozNl14; 
}

function calcAbsMax()
{
  var aktL0 = window.document.forms.alterungswert.nennleistungakt.value.replace(/,/,"."); //Komma in Punkt
  var aktL = parseFloat (aktL0); //aktuelle Leistung
  var absEmpmax0 = window.document.forms.alterungswert.empmaxabs.value.replace(/,/,"."); //Komma in Punkt 
  var absEmpmax = parseFloat (absEmpmax0);
  var AbsMax1 = absEmpmax-aktL;
  var AbsMax2 = 1000*AbsMax1;
  var AbsMax3 = Math.round(AbsMax2);
  var AbsMax = AbsMax3/1000;
  return AbsMax;
}

function calcProzMax() //berechnet die aktuelle Leistung in Prozent zum Empiriemaxiumum
{
  var eProzMax0 = window.document.forms.alterungswert.empmax.value.replace(/,/,"."); //Komma in Punkt 
  var eProzMax = parseFloat (eProzMax0); //
  var prozNl150 = window.document.forms.alterungswert.percaktuell.value.replace(/,/,"."); //Komma in Punkt 
  var prozNl15 = parseFloat (prozNl150); //holt Prozent der Nennleistung
  var prozNl16 = eProzMax-prozNl15;
  var prozNl17 = 1000*prozNl16;
  var prozNl18 = Math.round(prozNl17);
  var prozNl19 = prozNl18/1000;
  return prozNl19; 
}

function ev() //übergibt Auswertungen 
{
  //numbers();
  window.document.forms.alterungswert.percaktuell.value = prozNennl();
  window.document.forms.alterungswert.overgarantabs.value = calcAbsGa();
  window.document.forms.alterungswert.overgarantperc.value = calcProzG();
  window.document.forms.alterungswert.overempminabs.value = calcAbsMin();
  window.document.forms.alterungswert.overempminperc.value = calcProzMin();
  window.document.forms.alterungswert.verglempmaxabs.value = calcAbsMax();
  window.document.forms.alterungswert.verglempmaxperc.value = calcProzMax();
}

function calcAbsG() //berechnet Herstellerabsolut
{
  var uN0 = window.document.forms.alterungswert.nennleistung0.value.replace(/,/,"."); //Komma in Punkt
  var uN = parseFloat(uN0); //ursprüngliche Nennleistung
  var uNp = uN/100; //Prozent ursprüngliche Nennleistung
  var anG0 = window.document.forms.alterungswert.garantperc.value.replace(/,/,"."); //Komma in Punkt
  var anG = parseFloat (anG0); //holt annual garantierte Mindestprozente 
  var GAbs1 = uNp*anG; //Garantieabsolut
  var GAbs2 = GAbs1*1000;
  var GAbs3 = Math.round(GAbs2);
  var GAbs = GAbs3/1000;
  return GAbs;
}

function calcAbsEmin() //berechnet Empmin absolut
{
  var uN0 = window.document.forms.alterungswert.nennleistung0.value.replace(/,/,"."); //Komma in Punkt
  var uN = parseFloat(uN0); //ursprüngliche Nennleistung
  var uNp = uN/100; //Prozent ursprüngliche Nennleistung
  var anEmin0 = window.document.forms.alterungswert.empmin.value.replace(/,/,"."); //Komma in Punkt
  var anEmin = parseFloat (anEmin0);//holt annuales Empirie-Minimum
  var mEmpAbs1 = uNp*anEmin; //minimales Empirieabsolut
  var mEmpAbs2 = mEmpAbs1*1000;
  var mEmpAbs3 = Math.round(mEmpAbs2);
  var mEmpAbs = mEmpAbs3/1000;
  return mEmpAbs;
}

function calcAbsEmax() //berechnet Empmax absolut
{
  var uN0 = window.document.forms.alterungswert.nennleistung0.value.replace(/,/,"."); //Komma in Punkt
  var uN = parseFloat(uN0); //ursprüngliche Nennleistung
  var uNp = uN/100; //Prozent ursprüngliche Nennleistung
  var anEmax0 = window.document.forms.alterungswert.empmax.value.replace(/,/,"."); //Komma in Punkt
  var anEmax = parseFloat (anEmax0);//holt annuales Empirie-Maximum
  var EmpAbs1 = uNp*anEmax; //maximales Empirieabsolut
  var EmpAbs2 = 1000*EmpAbs1;
  var EmpAbs3 = Math.round(EmpAbs2);
  var EmpAbs = EmpAbs3/1000;
  return EmpAbs;
}

function calcAbs() //übergibt Garantie und Empirie in absoluten Zahlen 
{
  //numbers();
  window.document.forms.alterungswert.garantabs.value = calcAbsG();
  window.document.forms.alterungswert.empminabs.value = calcAbsEmin();
  window.document.forms.alterungswert.empmaxabs.value = calcAbsEmax();
  ev();
}


function fillValue() //liest einen String, wandelt ihn in einen Array und füllt zwei Input-Felder 
{
	var w = splitValue(window.document.forms.alterungswert.alter.value);
	window.document.forms.alterungswert.empmax.value = w[0]; //Erfahrungsminimum
	window.document.forms.alterungswert.empmin.value = w[1]; //Erfahrungsmaximum
  window.document.forms.alterungswert.garantperc.value = calcAge(); //Herstellergarantie
  window.document.forms.alterungswert.andegrad.value = calcDegRate();
  calcAbs(); 
}

