/* -*- tab-width: 3 -*- */



function siegerehrung(ids, idv) {
  debugger;
  document.getElementById(ids).style.fontWeight = 'bold';
  verlierer = document.getElementById(idv).style.fontWeight = 'normal';
}

/*
rating calculation:
rating difference D=88.154046
match length      N=7
Experience: Hexenbrenner 4716 - Moorhexe 15410
Probability that underdog wins: Pu=1/(10^(D*sqrt(N)/2000)+1)=0.433270
P=0.433270 is 1-Pu if underdog wins and Pu if favorite wins
K=max(1 , -Experience/100+5) for Hexenbrenner: 1.000000
change for Hexenbrenner: 4*K*sqrt(N)*P=4.585303
K=max(1 , -Experience/100+5) for Moorhexe: 1.000000
change for Moorhexe: -4*K*sqrt(N)*P=-4.585303
*/

function ELOberechnen( formular ){
  formular.ausgabe.value="rating calculation\n";
  var D;
  var N;
  var Pu,P;
  var rating = new Array();
  var ratingp = new Array();
  var nomdeguerre = new Array();
  var experience  = new Array();
  var K = new Array();
  var underdog = "SPIELER1";
  var winner   = "SPIELER1";
  var spieler;
  var i;
  var vorzeichen;
  var change;
 
  experience["SPIELER1"]  = parseInt(formular.expvorher1.value);
  experience["SPIELER2"]  = parseInt(formular.expvorher2.value);
  nomdeguerre["SPIELER1"] = formular.spieler1.value;
  nomdeguerre["SPIELER2"] = formular.spieler2.value;
  rating["SPIELER1"] = parseFloat(formular.elovorher1.value);
  rating["SPIELER2"] = parseFloat(formular.elovorher2.value);
  ratingp["SPIELER1"] = formular.elonachher1;
  ratingp["SPIELER2"] = formular.elonachher2;
  if (  rating["SPIELER1"]  > rating["SPIELER2"] ) {
	 underdog = "SPIELER2";
  }
  if ( formular.winner[1].checked ){
	 winner = "SPIELER2";
  }
  
  D = (Math.abs( rating["SPIELER1"] - rating["SPIELER2"])).toFixed(2);
  N = parseInt(formular.ml.value);

  formular.ausgabe.value += "rating difference D=" + ( D ) + "\n";
  formular.ausgabe.value += "match length      N=" + ( N ) + "\n";
  formular.ausgabe.value += "Experience: " + nomdeguerre["SPIELER1"] + 
	 " " + experience["SPIELER1"] + " -   ";
  formular.ausgabe.value += nomdeguerre["SPIELER2"] + " " + 
	 experience["SPIELER2"] + "\n";
  Pu = (1/(  Math.pow(10, D*Math.sqrt(N)/2000) + 1)).toFixed(3);
  formular.ausgabe.value += "Probability that underdog wins: Pu=1/(10^(D*sqrt(N)/2000)+1)=" + ( Pu ) + "\n";
  if ( winner == underdog ) {
	 P = (1 - Pu).toFixed(3);
  }else{
	 P = Pu;
  }
  formular.ausgabe.value += "P=" + ( P ) + " is 1-Pu if underdog wins and Pu if favorite wins\n";
  for (i = 1; i <=2; i++ ) {
	 spieler= "SPIELER" + ( i );
	 K[spieler] = Math.max(1, 5 - experience[spieler]/100);
	 formular.ausgabe.value += "K=max(1 , 5 - Experience/100 ) for " + nomdeguerre["SPIELER" + ( i ) ] + " : " + ( K[spieler] ) + "\n";
	 vorzeichen = 4;
	 if ( spieler != winner){
		vorzeichen = -4;
	 }
	 formular.ausgabe.value += "change for " + nomdeguerre[spieler] + " ";
	 change = vorzeichen * K[spieler] * Math.sqrt(N) * P;
	 formular.ausgabe.value += ( vorzeichen ) + "*K*sqrt(N)*P=" + (change).toFixed(3) + "\n";
	 ratingp[spieler].value = (rating[spieler] + change).toFixed(2);
  }
  
  

  return false;
}


function ELOreset( formular ) {
  debugger;
  formular.form.ausgabe.value="**************";
  formular.form.elonachher1.value="****";
  formular.form.elonachher2.value="****";
}

function ELOexpcheck(exp){
 
  var spieler;
  if ( parseInt(exp.value) == 0 ) {
	 spieler = exp.name.regexp(/(\d+)/);
	 debugger; 
	 
  }
}

