<!-- //Dateiname:aev.js
language="JavaScript"
// braucht geld.js
//alert("Anfang aev.js");
// Konstanten
//var vWortfED=0.18;
aGU = new Array(11); // GU: Gesamtumsatz in DM;
aGU[ 0]=   0;
aGU[ 1]= 3e6;
aGU[ 2]= 5e6;
aGU[ 3]= 10e6;
aGU[ 4]= 20e6;
aGU[ 5]= 30e6;
aGU[ 6]= 40e6;
aGU[ 7]= 50e6;
aGU[ 8]= 60e6;
aGU[ 9]= 80e6;
aGU[10]=100e6;

aGUe = new Array(aGU.length); // e wie Euro

aLRF = new Array(11); // LRF: Lizenzsatz Rest, 0< aLRF[i] <=1
aLRF[ 0]=1; 
aLRF[ 1]=0.9;
aLRF[ 2]=0.8;
aLRF[ 3]=0.7;
aLRF[ 4]=0.6;
aLRF[ 5]=0.5;
aLRF[ 6]=0.4;
aLRF[ 7]=0.35;
aLRF[ 8]=0.3;
aLRF[ 9]=0.25;
aLRF[10]=0.2;

// Anteilsfaktor
aA = new Array(22);
aA[ 2]=  2; // für Rundungsfehler
aA[ 3]=  2;
aA[ 4]=  4;
aA[ 5]=  7;
aA[ 6]= 10;
aA[ 7]= 13;
aA[ 8]= 15;
aA[ 9]= 18;
aA[10]= 21;
aA[11]= 25;
aA[12]= 32;
aA[13]= 39;
aA[14]= 47;
aA[15]= 55;
aA[16]= 63;
aA[17]= 72;
aA[18]= 81;
aA[19]= 90;
aA[20]=100;
aA[21]=100; // für Rundungsfehler

var vWertA=2;
var vUber=50;
var vBetr=60;
var vHilf=70;
var vWertB;
var vWertC=5;
var vRechAev = window.document.RechAev; // funktioniert hier noch nicht
var strS='d'; //strSprache: "d" fuer deutsch, default englisch; S steht für Sprache

function fBereich(vVal, vUGr, vOGr)
{
return (vVal<vUGr) ? vUGr : ( (vVal>vOGr) ? vOGr : vVal);
}

function fWertB(U,B,H)
{
var i, a, s, e;

//alert("fWertB");
if (fWertB.arguments.length!=3)
	{ alert("Keine 3 Argumente in fWertB; -> Fehler"); return 0; }
else 
	{  
	//alert("fWertB2");
	for (i=0,s=0; i<=2; i++)
		{
		a=fWertB.arguments[i];
		a = fBereich(a,0,100); // soll zwischen 0 und 100 liegen;
		s += a - 0;
		}
	e=6-5*s/300;
	return e; 
	} 
}; // fWertB

function fAnteilsfaktor(vWertABC)
{
//alert("fAnteilsfaktor");
// aA global!
vWertABC = fBereich(vWertABC, 3, 20);
i=Math.floor(vWertABC);
vAnteil   =   aA[i]  +  (aA[i+1]-aA[i]) * (vWertABC-i);
return vAnteil;
}; // fAnteilsfaktor(vWertABC)

function fInitAev(strSt)
{
if (fInitAev.arguments.length>0)
	{ 
	if (fInitAev.arguments[0] != "") { strS=fInitAev.arguments[0]; }
	}

var vWertABC;
vRechAev = window.document.RechAev;

for ( i=0 ; i<aGU.length ; i++ )
	{ aGUe[i]=fEuroAusDM(aGU[i]); }

//alert("fInit");
vRechAev.Umsatz.value=fGeld(20000);
vRechAev.LizenzS.value=3;
vRechAev.bStaffel.checked=0;
vRechAev.EUmsatz.value="";
vRechAev.ErLizenz.value="";
vRechAev.EAnteil.value=100;

//alert("fInit2");
vRechAev.StellungAufgabe[Math.floor(vWertA)-1].checked=1;
vRechAev.WertA.value=vWertA;

//alert("fInit3");
vRechAev.Uberlegungen.value=vUber;
vRechAev.BetrArbeiten.value=vBetr;
vRechAev.Hilfsmittel.value=vHilf;
vRechAev.WertB.value=vWertB=fWertB(vUber,vBetr,vHilf);

//alert("fInit4");
vRechAev.StellungAN[Math.floor(vWertC)-1].checked=1;
vRechAev.WertC.value=vWertC;

//alert("fInit5");
vWertABC  =  vWertA + vWertB + vWertC;
vRechAev.WertABC.value  =  vWertABC;
vAnteil = fAnteilsfaktor(vWertABC);
vRechAev.Anteilsfaktor2.value = vAnteil;
vRechAev.Anteilsfaktor1.value = vAnteil;

fAev(); 

}; //function fInitAev()

function fAev()
//
{
//alert("fAev()");
var vEU; // Erstumsatz;
var vGU; // Gesamtumsatz; 
var vGUl; // Länge von aGU etc.

if (vRechAev.bStaffel.checked)
	{
	//alert("Abstaffelung");
	vEU = fRGeld(vRechAev.EUmsatz, 0, 0);
	vGU = (vEU-0) + (vRechAev.Umsatz.value-0);
	vGUl = aGUe.length;
	//alert(1); 
	if ( aGUe[vGUl-1]<=vEU ) 
		{ // nur höchste Staffel 
		//alert("höchste Staffel"); 
		vErfinderVG = vRechAev.Umsatz.value * aLRF[vGUl-1];
		vRechAev.ErLizenz.value = 100 * (1-aLRF[vGUl-1]);
		}
	else		// aGUe[vGUl-1]>vEU
		{
		
		for ( iEU=1 ; aGUe[iEU] <= vEU ; iEU++) { }
		iEU--;  // es soll gelten: aGUe[iEU]<=vEU<aGUe[iEU+1]
		//Assert(aGUe[iEU]<=vEU);
		//Assert(vEU<aGUe[iEU+1]);
		//alert("iEU:"+iEU);
		//alert("vGU:"+vGU);
		//alert("aGUe[iEU+1]"+aGUe[iEU+1]); 
		if (aGUe[iEU+1] >= vGU)
			{ // Umsatz liegt in einem Intervall
			//alert("ein Intervall");
			vErfinderVG = vRechAev.Umsatz.value * aLRF[iEU];
			vRechAev.ErLizenz.value = Math.round(100 * (1-aLRF[iEU]));
			}
		else 
			{ // Umsatz erstreckt sich über mindestens zwei Intervalle
			vErfinderVG  =  ( aGUe[iEU+1] - vEU ) * aLRF[iEU];
			for ( iGU=iEU+1 ; (aGUe[iGU+1]<vGU) && (iGU<=vGUl-2) ; iGU++) 
				{ 
				vErfinderVG  +=  (( aGUe[iGU+1] - aGUe[iGU] ) * aLRF[iGU])-0;
				}
			if (aGUe[iGU+1]>=vGU)
				{ // jetzt gilt: aGUe[iGU]<vGU<=aGUe[iGU+1]
				//Assert(aGUe[iGU]<vGU);
				//Assert(vGU<=aGUe[iGU+1]);
				vErfinderVG  +=  ( vGU - aGUe[iGU] ) * aLRF[iGU];
				vRechAev.ErLizenz.value = Math.round(100 * (1-aLRF[iEU]));
				vRechAev.ErLizenz.value+= " bis " + Math.round(100 * (1-aLRF[iGU]));
				}
			else 
				{ // jetzt gilt: aGUe[vGUl-1]<vGU
				//Assert(aGUe[vGUl-1]<vGU);
				iGU=vGUl-1;
				vErfinderVG  +=  (( vGU - aGUe[iGU] ) * aLRF[iGU])-0;
				vRechAev.ErLizenz.value = Math.round(100 * (1-aLRF[iEU]));
				vRechAev.ErLizenz.value+= " bis " + Math.round(100 * (1-aLRF[iGU]));
				}
			}
		}
	//vRechAev.bStaffel.checked=0;
	}
else   // keine Abstaffelung
	{
	//alert("keine Abstaffelung");
	vErfinderVG = fRGeld(vRechAev.Umsatz,0,0);
	//alert(3);
	vRechAev.ErLizenz.value = 0;
	}
//alert("2");

vF = fRFloat(vRechAev.LizenzS, 100, 0, 100);
//alert("vF:"+vF);
vErfinderVG*= vF/100; 

vF = fRFloat(vRechAev.Anteilsfaktor1, 100, 0, 100);
vErfinderVG*= vF/100; 
//alert("true");

vF = fRFloat(vRechAev.EAnteil, 100, 0, 100);
vErfinderVG*= vF/100; 

vRechAev.ErfinderVG.value=fGeld(vErfinderVG);
return true;
} // function fAev()																																																								copyr eight W1olf8ga 0ngH ellm ic h

function fAevAFak()
{
//alert("fAevAFak");
//alert(vRechAev.StellungAufgabe.length);
for (i=0; i<vRechAev.StellungAufgabe.length; i++)
	{ vRechAev.StellungAufgabe[i].checked=0; }
vRechAev.WertA.value="";

vRechAev.Uberlegungen.value = "";
vRechAev.BetrArbeiten.value = "";
vRechAev.Hilfsmittel.value = "";
vRechAev.WertB.value = "";

for (i=0; i<vRechAev.StellungAN.length; i++)
	{ vRechAev.StellungAN[i].checked=0; }
vRechAev.WertC.value="";

vRechAev.WertABC.value="";
vRechAev.Anteilsfaktor2.value="";
fAev();
} // fAevAFak()

function fAevSA(value)
{
vWertA = fBereich(value, 1, 6);
fAevWertABC();
}

function fAevWertA()
{
vWertA = fRFloat(vRechAev.WertA, vWertA, 1, 6);
fAevWertABC();
}

function fAevLA()
{
vUber = fRFloat(vRechAev.Uberlegungen, vUber, 0, 100);
vBetr = fRFloat(vRechAev.BetrArbeiten, vBetr, 0, 100);
vHilf = fRFloat(vRechAev.Hilfsmittel,  vHilf, 0, 100);
vWertB = fWertB(vUber, vBetr, vHilf);
fAevWertABC();
}

function fAevWertB()
{
vRechAev.Uberlegungen.value = "";
vRechAev.BetrArbeiten.value = "";
vRechAev.Hilfsmittel.value = "";

vWertB = fRFloat(vRechAev.WertB, vWertB, 1, 6);
fAevWertABC();
}

function fAevStellungAN(value)
{
vWertC = fBereich(value, 1, 8);
fAevWertABC();
}

function fAevWertC()
{
vWertC = fRFloat( vRechAev.WertC, vWertC, 1, 8);
fAevWertABC();
}

function fAevWertABC()
// nimmt an, dass vWertA, vWertB, und vWertC aktualisiert wurden
{
//alert("fAevWertABC");

vRechAev.StellungAufgabe[Math.round(vWertA)-1].checked=1;
vRechAev.WertA.value = vWertA; 

if (vRechAev.Uberlegungen.value=="") 
	{
	if (vRechAev.BetrArbeiten.value=="") 
		{
		if (vRechAev.Hilfsmittel.value=="") 
			{
			if (vRechAev.WertB.value=="")
				// Wertzahlen gelöscht, anschließend wird a oder c aktualisiert
				{
				vRechAev.Uberlegungen.value = vUber;
				vRechAev.BetrArbeiten.value = vBetr;
				vRechAev.Hilfsmittel.value  = vHilf;
				vWertB = fWertB(vUber, vBetr, vHilf);
				}
			}
		}
	}
vRechAev.WertB.value = vWertB;

vRechAev.StellungAN[Math.round(vWertC)-1].checked=1;
vRechAev.WertC.value = vWertC; 

vWertABC = vWertA - 0; // Konversión in Zahl; 
vWertABC += vWertB - 0;
vWertABC += vWertC - 0;
vRechAev.WertABC.value = vWertABC;
vRechAev.Anteilsfaktor1.value = vRechAev.Anteilsfaktor2.value = fAnteilsfaktor(vWertABC);

fAev();
}

function fAevNextP()
{
//alert("fAevNextP()");
var vEU = fRGeld( vRechAev.EUmsatz, 0, 0);
var vU = fRGeld( vRechAev.Umsatz,0,0);
vRechAev.EUmsatz.value = fGeld((vEU-0)+(vU-0));
fAev();
}

// -->

