/*##################*\
## Scriptfunktionen ##
##  zur Berechnung  ##
##  der Folge-DWZ   ##
##  Copyright 2004  ##
## by Jens Gramenz  ##
\*##################*/

function schneide(abfrage) //berechnet den Gegnerschnitt und die Anzahl der Partien
{
dummy = 0;
summe = 0;
i = 1;

while (i<10&&eval('document.dwz.F'+i+'.value')!="")
 {
 gegner = i;
 dummy = eval('document.dwz.F'+i+'.value');
 if (dummy < 100 || dummy > 3000)
    {
    alert('Wer hat denn eine DWZ von '+dummy+'???');
    }
 summe = parseInt(dummy) + parseInt(summe);
 i++;
 }
schnitt = Math.round(summe / gegner);

document.dwz.dwzschnitt.value = schnitt;

if (document.dwz.Ro.value != '') erwarte()
if (abfrage==1) return gegner;
punkte();
}

function punkte(abfrage) //berechnet die erzielten Punkte
{
summe = 0;
for (i=1;i<=9;i++)
 {
 summe += parseFloat(eval('document.dwz.E'+i+'.value'));
 }
j=1;
while (j<10&&eval('document.dwz.F'+j+'.value')!="")
{
gegner = j;
j++;
}
document.dwz.W.value = summe + " / " + gegner;
if (abfrage == 1) return summe;
}

function erwarte(abfrage) //berechnet die derzeitige Gewinnerwartung
{
i=1;
We = new Array;
We[0]=0;
while (i<10&&eval('document.dwz.F'+i+'.value')!="")
 {
 D = parseInt(document.dwz.Ro.value - eval('document.dwz.F'+i+'.value'));
 if (D > 0 && D < 736)
 {
 j=1;
 while (a[j] > D)
       {
       We[i] = 100 - j;
       j++;
       }
 }
 else if (D < 0 && D > -736)
 {
 j=1;
 while (a[j] > -D)
       {
       We[i] = j;
       j++;
       }
 }
 else if (D == 0)
 {
 We[i] = 50;
 }
 else if (D < -735) We[i]=0;
 else if (D > 735) We[i]=100;
 else
 {
 alert('Komisch...')
 }

 We[0]+=We[i];
 i++;
 }
We = We[0]/100;
document.dwz.We.value = We;
if (abfrage==1) return We;
}

function checkEingabe() //prüft ob alle Eingaben korrekt sind...
{
if (document.dwz.Ro.value == "")
   {
   alert ('Bitte geben Sie eine Ausgangs-DWZ ein...');
   return false;
   }

if (document.dwz.F1.value == "")
   {
   alert ('Bitte geben Sie mindestens einen Gegner ein...');
   return false;
   }

for (i=1;i<=9;i++)
    {
    if (eval('document.dwz.E'+i+'.value') != 0)
       {
       if (eval('document.dwz.F'+i+'.value') == "")
          {
          alert('Es wurden mehr Ergebnisse eingetragen, als Gegner vorhanden sind...');
          return false;
          }
       }
    }
}

function berechne() { // berechnet die neue DWZ und die Turnierleistung
  if (checkEingabe() == false) return false;
  Ro = parseFloat(document.dwz.Ro.value);
  W = parseFloat(punkte(1));
  We = parseFloat(erwarte(1));
  n = parseFloat(schneide(1));
  J = parseFloat(document.dwz.J.value);
  
  if (J == 5 && W >= We && Ro < 2000) { // Beschleunigungsfaktor fuer Jugendliche U2000
    fB = Math.max(Ro, 1000) / 2000;
  } else fB = 1;

  if (W <= We && Ro < 1300) { // Bremszuschlag fuer Spieler U1300
    SBr = Math.pow(Math.E, ((1300-Ro)/150)) - 1;
  } else SBr = 0;

  E = Math.round((Math.pow((Ro / 1000), 4) + J) * fB + SBr);
  if (E > 30 && SBr == 0) E = 30;
  if (E > 150) E = 150;
  if (E < 5) E = 5;
  
  Rp = Ro + 800 * (W-We) / n;
  Rn = (Ro * E + Rp * n) / (E + n);
  document.dwz.Rp.value = Rp;
  document.dwz.Rn.value = Rn;
}


function togglehelp() //schaltet die Anleitung ein und aus
{
displayType = ( document.getElementById('hilfe').style.display == 'none' ) ? 'inline' : 'none';
document.getElementById('hilfe').style.display = displayType;
}
