///////////////////////////////////////////////////////////
// Für Multiple-Choice:
// den Submit-Button aktivieren (sobald eine Antwort gewählt wurde)
///////////////////////////////////////////////////////////
function activateSubmit() {
  document.getElementById("submitMC").disabled=false;
}


///////////////////////////////////////////////////////////
// 10/2008:
// Logarithmisches Scoring mit Toleranzparameter (Holmes)
// Eingabe:
//   val: [0...1]
//   t:   Toleranzparameter (z.B. 0.16666 / 0.04470 / 0.01340 / 0.00430)
//   k:   Anzahl Fragen (z.B. 2 / 3)
// Ausgabe:
//   Score: [-3...+1]   (Min/Max kann variieren)
///////////////////////////////////////////////////////////
function logscore(val,t,k) {
  return (Math.log((1-t*k)*val+t)+Math.log(k)) / (Math.log(1-t*k+t)+Math.log(k));
}


///////////////////////////////////////////////////////////
// Scoring-Funktion
// Eingabe:
//    modell: [1...4]	Scoringmodell
//    proz:   [0...100]	Prozentwert
// Ausgabe:
//    Score: (integer): [-300 ... +100]  (Wertebereich min/max je nach Scoringmodell!)
//
// Scr  Werte  t(k=2)  t(k=3)
//  0   (MC)   [Funktion nur für Scr>=1]
//  1   0/100 
//  2   -50    n/a      0.333
//  3   -100   0.4999   0.16666
//  -   -200   0.1910   ?
//  4   -300   0.0804   0.0134
//  -   -400   0.0362   ?
//  5   sphärisch (benötigt alle 3 prozentwerte!) - bisher nur für k=3 implementiert!
//
// Achtung, Funktion unterscheidet bisher nur bei Scoring 4 zwischen k=2/3 !
//
///////////////////////////////////////////////////////////
//function score(modell,proz) {
// Modell:0-5; proz_c=Prozent richtig, proz_w=Prozent falsch (1/2)
function score(modell,proz_c, proz_w1, proz_w2) {

  var val=proz_c/100;
  
  if (modell==1) {		// 1: linear [0..+100]
    s=val;  
  } else if (modell==2) {    		// 2: Holmes [ -50..+100]
    s=logscore(val, 0.333, 3);
    if (proz_c==33) s=0;	// wg. Rundungsfehler: bei 33% (eigentlich 33.33%) soll der Score=0 sein    
  } else if (modell==3) {    	// 3: Holmes [-100..+100]
    s=logscore(val, 0.16666, 3);
    if (proz_c==33) s=0;	// wg. Rundungsfehler: bei 33% (eigentlich 33.33%) soll der Score=0 sein    
  } else if (modell==4) {	// 4: Holmes [-300..+100]
    s=logscore(val, 0.0134, 3);   // Scoring 4 mit k=3
    if (proz_c==33) s=0;		// wg. Rundungsfehler: bei 33% (eigentlich 33.33%) soll der Score=0 sein    
  } else if (modell==5) {	// 5: sphärisch
    s=proz_c/Math.sqrt(proz_c*proz_c + proz_w1*proz_w1 + proz_w2*proz_w2);
  } else {
    alert('Falscher Parameter! (Modell='+modell);
    s=-9999;		// Fehler: dieser Zweig dürfte eigentlich nie erreicht werden
  }
  
  s=Math.round(100*s);		// Score = Val * 100 ([-100;100])
 
  return s;  
}

///////////////////////////////////////////////////////////
// Score als HTML aufbereiten
//  (für mod_beschreibung_Slider.html)
///////////////////////////////////////////////////////////
function score_html(modell,proz_c, proz_w1, proz_w2) {
  var sc=score(modell,proz_c, proz_w1, proz_w2);
  if (sc==0) {
    document.write('<font color="blue">'+sc+'</font>');	// Null: Score in blau
  } else if (sc<0) {
    document.write('<font color="red">'+sc+'</font>');	// Neg.: Score in rot
  } else {
    document.write('<font color="blue">'+sc+'</font>');	// Pos.: Score in blau
  }
}

///////////////////////////////////////////////////////////
// Score ausgeben: -100 .. 100 
///////////////////////////////////////////////////////////
function formatScore(wert) {

  var score=wert;		// nicht ändern
  //score="<font size=+2>"+score+"</font> Punkte"    
  score=score+" Punkte"      
  if (wert==0) {
    score="<font color=blue><nobr>"+score+"</nobr></font>";		// Null: blau
  } else if (wert<0) {
    score="<font color=red><nobr>"+score+"</nobr></font>";		// negativ: rot
  } else {
    score="<font color=green><nobr>"+score+"</nobr></font>";  	// positiv: grün
  }
  
  return score;
}


///////////////////////////////////////////////////////////
// Score in hidden-elementen speichern und in tabelle ausgeben:
///////////////////////////////////////////////////////////
function score_out(modell,a,b,c) {
  // Scoring für A/B/C berechnen:
  // Achtung, IE-Bug: Variablen dürfen nicht "pkt_a" heißen (vermutlich, da ein Element der HTMl-Seite so heißt...)
  xpkt_a = score(modell,a,b,c);
  xpkt_b = score(modell,b,a,c);
  xpkt_c = score(modell,c,a,b); 

  // PROZENTE:

  // Die Prozentwerte A/B/C im Formular speichern (hidden):
  document.getElementById("h_val_a").value = a;
  document.getElementById("h_val_b").value = b;
  document.getElementById("h_val_c").value = c;

  // SCORE:

  // Den Score für A/B/C im Formular speichern:
  // ... hidden, wird in PHP ausgelesen und einer der drei fürs Scoring verwendet:
  document.getElementById("h_pkt_a").value = xpkt_a;
  document.getElementById("h_pkt_b").value = xpkt_b;
  document.getElementById("h_pkt_c").value = xpkt_c;

  score_a = formatScore(xpkt_a);
  score_b = formatScore(xpkt_b);
  score_c = formatScore(xpkt_c);


  if (fb=="y") {
    // Prozente und Punkte ausgeben:
    document.getElementById("text_proz_a").innerHTML = "<span title='Bei dieser Auswahl bekommen Sie "+xpkt_a+" Punkte, falls Antwort A richtig ist'>("+a+"%) &nbsp;<b>"+score_a+"</b> falls A richtig</span>";
    document.getElementById("text_proz_b").innerHTML = "<span title='Bei dieser Auswahl bekommen Sie "+xpkt_b+" Punkte, falls Antwort B richtig ist'>("+b+"%) &nbsp;<b>"+score_b+"</b> falls B richtig</span>";
    document.getElementById("text_proz_c").innerHTML = "<span title='Bei dieser Auswahl bekommen Sie "+xpkt_c+" Punkte, falls Antwort C richtig ist'>("+c+"%) &nbsp;<b>"+score_c+"</b> falls C richtig</span>";
//    document.getElementById("text_proz_a").innerHTML = "<span title='Bei dieser Auswahl bekommen Sie "+xpkt_a+" Punkte, falls Antwort A richtig ist'>( <b>"+score_a+"</b> falls A richtig )</span>";
//    document.getElementById("text_proz_b").innerHTML = "<span title='Bei dieser Auswahl bekommen Sie "+xpkt_b+" Punkte, falls Antwort B richtig ist'>( <b>"+score_b+"</b> falls B richtig )</span>";
//    document.getElementById("text_proz_c").innerHTML = "<span title='Bei dieser Auswahl bekommen Sie "+xpkt_c+" Punkte, falls Antwort C richtig ist'>( <b>"+score_c+"</b> falls C richtig )</span>";
  } else {
    // nur Prozent ausgeben:
    document.getElementById("text_proz_a").innerHTML = "<b>"+a+"%</b>";
    document.getElementById("text_proz_b").innerHTML = "<b>"+b+"%</b>";
    document.getElementById("text_proz_c").innerHTML = "<b>"+c+"%</b>";
  }
}
