// gleichungvar1.js
// erstellt am 07. August 2007
// geändert am 07. August 2007
// Autor: Andreas Meier, Weiden i.d.OPf.
// alle Rechte liegen beim Autor

var Score = 0; // Startkapital
var Item = 1;
var Aufggleich = 0;
var kAufggleich = 0;
var k=0;
var start=0;
var aufgabenr=0;
var fehler =0;
var point =0;
var xlos =0;
var geloest =0;
var loesung = 0;

function zufall(min, max, ohne) {
  var zufallszahl;
  do {
  zufallszahl = Math.round(min + Math.random() * (max - min));
  } while (zufallszahl == ohne);
  return zufallszahl;
}

function reset()  {
document.Parameter.summe.value =  "";
Schreibez1();
}


function Schreibez1()  {

document.Parameter.z1.value =  "";
document.Parameter.z3.value =  "";
document.Parameter.z4.value =  "";
document.Parameter.z5.value =  "";
document.Parameter.z2.value =  "";
document.Parameter.z2w.value =  "";
document.Parameter.z3w.value =  "";
document.Parameter.z4w.value =  "";
document.Parameter.z5w.value =  "";
document.Parameter.Zahl.value = "";
document.Parameter.Pruefergebnis.value = "";
document.Parameter.kommentar.value = "";
document.Parameter.Punkte.value=Score;
document.Parameter.Aufgaben.value=Item;
document.Parameter.Aufgaben2.value=geloest;
Aufggleich=Item-1;
kAufggleich=Item-1;

fehler = 0;
points = 30;
var dummy = 0;
var index = 1;
k = 0;
Item++;
aufgabenr++;


     loesung = zufall(-5,5);
     if (loesung ==5) loesung =0.5;
     if (loesung ==-5) loesung =-0.5;

     a = zufall(-5,11,0);
     if (a == 11) a = 0.5;
     b = a*zufall(-6,6,0);
     faktor = zufall(-4,4,0);
     if (faktor == 1) faktor = 0.5
     if (faktor == -1) faktor = -0.5
     do {
     cx = zufall(-5,5,0)*faktor;
     if (cx == 11) cx = 0.5;
     } while (cx == faktor*a);
     c = faktor *((a-cx/faktor)*loesung + b);
     c = Math.round(c*100)/100;


if (a>=0) {
texta = String(a).replace(".",",")+"x";
textahint = " + "+String(a).replace(".",",")+"x";
if (a == 1) {texta ="x"; textahint = " + x";}
}

else {
if (a<0) {
texta = String(a).replace(".",",")+"x";
textahint = " - "+String(Math.abs(a)).replace(".",",")+"x";
if (a == -1) {texta ="-x"; textahint = " - x";}
}
}

if (b>0) {
textb10 = " + ";
textb11 = String(Math.abs(b)).replace(".",",");
textbvorn = String(Math.abs(b)).replace(".",",");
}
else {
textb10 = " - ";
textb11 = String(Math.abs(b)).replace(".",",");
textbvorn = " - "+String(Math.abs(b)).replace(".",",");
}


if (cx>=0) {
textcx = String(cx).replace(".",",")+"x";
textcxhint = " + "+String(cx).replace(".",",")+"x";
if (cx == 1) {textcx ="x"; textcxhint = " + x";}
}

else {
if (cx<0) {
textcx = String(cx).replace(".",",")+"x";
textcxhint = " - "+String(Math.abs(cx)).replace(".",",")+"x";;
if (cx == -1) {textcx ="-x";textcxhint = " - x";}
}
}

if (c>0) {
textc10 = " + ";
textc11 = String(Math.abs(c)).replace(".",",");
textcvorn = String(Math.abs(c)).replace(".",",");
}
else {
textc10 = " - ";
textc11 = String(Math.abs(c)).replace(".",",");
textcvorn = " - "+String(Math.abs(c)).replace(".",",");
}

if (c ==0) {textc10 = ""; textc11=""; textcvorn ="";}
textist = " = ";
if (faktor<0) hintenan = "*("+ String(faktor).replace(".",",")+")";
else hintenan = "*"+ String(faktor).replace(".",",");
art = zufall(1,4);

if (art == 1) aufgabentext = String(faktor).replace (".",",")+"*("+texta + textb10 + textb11 +")"+ textist + textcx + textc10 + textc11;
if (art == 2) aufgabentext = "("+textbvorn +  textahint+")"+hintenan+ textist + textcx + textc10 + textc11;
if (art == 3) aufgabentext = String(faktor).replace (".",",")+"*("+texta + textb10 + textb11 + ")"+textist + textcvorn + textcxhint ;
if (art == 4) aufgabentext = "("+textbvorn + textahint+")" +hintenan+ textist + textcvorn + textcxhint ;

document.Parameter.z1.value = aufgabentext;
document.Parameter.z2.focus();

}

function zeilelesen(eingabezeile)

{
zae2 = String(eingabezeile).replace(/,/g,".").replace(/ /g,"").replace(/²/g,"^2").replace(/³/g,"^3");

do{
i=zae2.search(/\dx/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/\d\(/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/x\d/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/\)\d/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/\)\(/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/x\(/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

}



function ergproof()
{

zf2=0;
zf3=0;
zf4=0;
zf5=0;

loes = String(loesung); xloes = loesung;

if (document.Parameter.z2.value != "")
{
zeilelesen(document.Parameter.z2.value);
  if (zae2.substr(0,2) == "-x") zae2 = "-1*x"+zae2;

var istgleich = zae2.indexOf("=");
if (istgleich != -1)
{
ls2 = zae2.slice(0,istgleich);
rs2 = zae2.slice(istgleich+1);

do
{i=ls2.search("x");
if(i==-1)break;
ls2 = ls2.replace("x",loes)
}
while(true);
do
{i=rs2.search("x");
if(i==-1)break;
rs2 = rs2.replace("x",loes)
}
while(true);

wl2 = eval(ls2);
wr2 = eval(rs2);
}

else
{
wl2 = 0;
wr2 = -1;
alert("Das '=' - Zeichen fehlt!");
}
}
else
{
wl2 = 0;
wr2 = -1;
document.Parameter.kommentar.value = "Du hast noch keine Eingabe gemacht!";
zf2 =1;
}


if (document.Parameter.z3.value != "")
{
zeilelesen(document.Parameter.z3.value);

var istgleich = zae2.indexOf("=");
if (istgleich != -1)
{
ls3 = zae2.slice(0,istgleich);
rs3 = zae2.slice(istgleich+1);

do
{i=ls3.search("x");
if(i==-1)break;
ls3 = ls3.replace("x",loes)
}
while(true);
do
{i=rs3.search("x");
if(i==-1)break;
rs3 = rs3.replace("x",loes)
}
while(true);

wl3 = eval(ls3);
wr3 = eval(rs3);
}


else{
wl3 = 0;
wr3 = -1;
alert("Das '=' - Zeichen fehlt!");
}
}

else
{
document.Parameter.kommentar.value = "";
wl3 = 0;
wr3 = -1;
zf3 =1;
}



if (document.Parameter.z4.value != "")
{
zeilelesen(document.Parameter.z4.value);

var istgleich = zae2.indexOf("=");
if (istgleich != -1)
{
ls4 = zae2.slice(0,istgleich);
rs4 = zae2.slice(istgleich+1);

do
{i=ls4.search("x");
if(i==-1)break;
ls4 = ls4.replace("x",loes)
}
while(true);
do
{i=rs4.search("x");
if(i==-1)break;
rs4 = rs4.replace("x",loes)
}
while(true);

wl4 = eval(ls4);
wr4 = eval(rs4);
}


else{
wl4 = 0;
wr4 = -1;
alert("Das '=' - Zeichen fehlt!");
}
}
else
{
wl4 = 0;
wr4 = -1;
document.Parameter.kommentar.value = "";
zf4 =1;
}



if (document.Parameter.z5.value != "")
{
zeilelesen(document.Parameter.z5.value);

var istgleich = zae2.indexOf("=");
if (istgleich != -1)
{
ls5 = zae2.slice(0,istgleich);
rs5 = zae2.slice(istgleich+1);

do
{i=ls5.search("x");
if(i==-1)break;
ls5 = ls5.replace("x",loes)
}
while(true);
do
{i=rs5.search("x");
if(i==-1)break;
rs5 = rs5.replace("x",loes)
}
while(true);

wl5 = eval(ls5);
wr5 = eval(rs5);
}


else{
wl5 = 0;
wr5 = -1;
alert("Das '=' - Zeichen fehlt!");
}

}
else
{
wl5 = 0;
wr5 = -1;
zf5 =1;
document.Parameter.kommentar.value = "";
}


// tabelle einlesen Ende
// auswertung

if (Item != Aufggleich)
  {
  if (wl2 == wr2 && wl3 == wr3 && wl4 == wr4 && wl5 == wr5)
   {
    text1 ="\n";
    text2 ="Hervorragend!! \n";
    text3 ="Alle Umformungen sind richtig. \n";
    text4="Gib noch die Lösungsmenge an und ";
    text5 ="\n klicke auf >>Neue Gleichung erstellen<<";
    document.Parameter.Punkte.value=Score;
    document.Parameter.Aufgaben2.value=geloest;
    Aufggleich=Item ;
    document.Parameter.z2w.value="(r)";
    document.Parameter.z3w.value="(r)";
    document.Parameter.z4w.value="(r)";
    document.Parameter.z5w.value="(r)";


   }
   else
   {


    if (wl2 == wr2)
    {
    text2="Aufgabenzeile 2 (richtig)\n";
    document.Parameter.z2w.value="(r)";
     document.Parameter.Punkte.value=Score;}
    else
    {
     Score++;
      text2="Aufgabenzeile 2 (falsch)\n";
      document.Parameter.z2w.value="(f)";
      fehler++;
 if (zf2 ==1){Score = Score--;fehler--;
  document.Parameter.z2w.value="";
  text2 = "";
  }

    }
 if (wl3 == wr3)
 {
 text3="Aufgabenzeile 3 (richtig)\n";
 document.Parameter.Punkte.value=Score;
    document.Parameter.z3w.value="(r)";
 }
 else
 {
  Score++;fehler++;
 text3="Aufgabenzeile 3 (falsch)\n";
    document.Parameter.z3w.value="(f)";
 if (zf3 ==1){
  Score--;fehler--;
  document.Parameter.z3w.value="";
  text3 = "";
  }
 }

 if (wl4 == wr4)
 {
 text4="Aufgabenzeile 4 (richtig)\n";
    document.Parameter.z4w.value="(r)";
    }
 else
 {
Score++;fehler++;

 text4="Aufgabenzeile 4 (falsch)\n";
    document.Parameter.z4w.value="(f)";
 if (zf4 ==1){Score--;fehler--;
  document.Parameter.z4w.value="";
  text4 = "";
  }

  }
 if (wl5 == wr5)
 {
 text5="Aufgabenzeile 5 (richtig)\n";
    document.Parameter.z5w.value="(r)";
    }
    else
 {
Score++;fehler++;
 text5="Aufgabenzeile 5 (falsch)\n";
    document.Parameter.z5w.value="(f)";
 if (zf5 ==1){Score--;fehler--;
  document.Parameter.z5w.value="";
  text5 = "";
  }
  }
 }
 }
 else
{

text2 ="\nNicht schummeln!! \n";
text3 ="Du hast doch diese Aufgabe bereits gelöst.\n";
text4="Sonst zähle ich dies als Fehler!";
text5 ="\n";

}
text = text2+text3+text4+text5;
document.Parameter.kommentar.value = text;
document.Parameter.Punkte.value=Score;
}



function kproof() {

xlos = loesung;

if (document.Parameter.Zahl.value != "")
{
var zah = document.Parameter.Zahl.value.replace(",",".");
zah =eval(zah);
}
else zah=10000;

  if (zah == xlos & Item != kAufggleich)
  {
   geloest++;
   document.Parameter.Pruefergebnis.value = "Ausgezeichnet!";
   document.Parameter.Punkte.value=Score;
   document.Parameter.Aufgaben2.value=geloest;
   point = point+ points - fehler*12; if (point <0) point =0;
   document.Parameter.summe.value="Punktestand: "+point+ " Punkte";

   kAufggleich=Item;
     }
  else
  {
   Score++;
   document.Parameter.Pruefergebnis.value = "Leider falsch!";

   if (zah == xlos)
   {

   document.Parameter.Pruefergebnis.value ="Nicht schummeln!";
   }
      Score--;
      point = point-10;
      document.Parameter.Punkte.value=Score;
      document.Parameter.summe.value="Punktestand: "+point+ " Punkte";
  }

  }

function auswerten() {


var punkte = point;

// Zurücksetzen der Punkte auf Ausgangswert

Score = 10; // Startkapital
Item = 1;
Aufggleich = 0;
point = 0;
document.Parameter.Punkte.value=Score;
document.Parameter.Aufgaben.value=Item;
document.Parameter.summe.value="Die Punkte werden übertragen ...";

/* Achtung muss für jede Datei manuell angepasst werden */
/*                     Anfang                           */
var aufgabenart="Gleichungen Level -2-";
var datnam= "highsqlpost84ww.php";
uebertrag = "<form name = 'eingabe' action ='../../../Mathematik/"+datnam+"' method ='post'>";
auswertung(aufgabenart,punkte,uebertrag);
/*                     Ende                           */
}


