// parabelablesen.js
// (c) Andreas Meier
// Sophie-Scholl-Realschule Weiden
// erstellt am 30.10. 2005
// geändert am 30.10. 2005
// alle Rechte liegen beim Autor

var m = 0;
var t = 0;
var hilfe = 0;
var fehler = 0;
var gan = 0;
var aufgabe = 0;
var geloest= 0;
var loesung= 0;
var score = 0;
var ungerade = 0;

function zufall()
{
// Ermittelt eine Zufallszahl
   var zufallszahl = 0;
 zufallszahl=Math.floor(3*Math.random()+1);  // zwischen 1 und 3
return zufallszahl;
}
function zufall2()
{
// Ermittelt eine Zufallszahl
   var zufallszahl = 0;
 zufallszahl=Math.floor(5*Math.random()+1);  // zwischen 1 und 5
return zufallszahl;
}

function zufall3()
{
// Ermittelt eine Zufallszahl
   var zufallszahl3 = 0;
 zufallszahl3=Math.floor(4*Math.random()+1);  // zwischen 1 und 4
return zufallszahl3;
}


function finden(zae2,i,r)
{
var laenge=zae2.length;
var k=0;
var j=0;
for(j=i+r;(j<laenge)&&(j>=0);j+=r){
   var u=zae2.substr(j,1);
   if(u=="(")k++; else if(u==")")k--;
   if(k*r<0)return j;
   if((k==0)&&((u=="+")||(u=="-")||(u=="*")||(u=="/")||
    (u==";")||(u==",")||(u=="=")||(u=="\"")||(u=="'")||
    (u=="|")||(j+r==laenge+1)||(j+r==-1))) return j;}
return j;}

function aufgabeneu()
{

hilfe = 0;
geloest = 0;
aufgabe++;
document.Para.gleichung.value = "";


//a aus  y = a*(x-xs)² festlegen.
ap = zufall();
if (ap ==3)ap = 0.5;
apv = zufall3();
if (apv < 3) ap =(-1)*ap;
if (ap !=1) aptext =String(ap)+"*";
else aptext = ""
if (ap ==-1) aptext ="- ";

aptext = aptext.replace(".",",")
//x-koordinate des Scheitelpunktes mit Vorzeichen festlegen.
sx = zufall2();
sxv = zufall3();

if (sxv < 3)
   {sxvtext = "+ "+String(sx);
    sx =(-1)*sx;
   }
else {
     sxvtext = "- "+String(sx);
     }
sxvtext = sxvtext.replace(".",",")
//y-koordinate des Scheitelpunktes mit Vorzeichen festlegen.
sy = zufall2();
syv = zufall3();
if (syv < 3)
   {
   syvtext = "- "+String(sy);
    sy =(-1)*sy;
   }
else {
     syvtext = "+ "+String(sy);
     }
syvtext = syvtext.replace(".",",")
//
// Parabel zeichnen
applet = document.applets[0];
applet.evalCommand("S=("+String(sx)+","+String(sy)+")");
applet.evalCommand("a="+String(ap));
applet.setVisible("p", true);
applet.setVisible("B", true);
applet.setVisible("T1", true);
applet.setVisible("a", false);
applet.setVisible("S", false);

document.Para.parabelein.value ="";
document.Para.parabelein.focus();
}


function zeilelesen(eingabezeile)

{

zae2 = String(eingabezeile).replace(/,/g,".").replace(/ /g,"").replace(/²/g,"^2");
if (zae2.substr(0,2) == "x^") zae2 = "1*"+zae2;
if (zae2.substr(0,1) == "(") zae2 = "1*"+zae2;
var Erg=new Array(/\dx/,/\d\(/,/\)\(/,/x\(/);
 for(j=0;j<Erg.length;j++){

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

  var n=0;
  var d=0;
  var j=0;
  var k=0;
  var i=0;



   if(zae2.indexOf("^")>-1)
   {
    for(i=0;i<zae2.length;i++)
   {
   if (zae2.substr(i,1)=="^")
   {
   j=finden(zae2,i,-1); k=finden(zae2,i,1);
   zae2=zae2.substring(0,j+1)+
   "Math.pow("+zae2.substring(j+1,i)+","+zae2.substring(i+1,k)+")"+
   zae2.substring(k,zae2.length);
   n++;
   if(n>15)break;
 }
 }
 }


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 pruefe() {
loes = "18";
if (document.Para.parabelein.value != "")
{
zeilelesen(document.Para.parabelein.value);
do
{i=zae2.search("x");
if(i==-1)break;
zae2 = zae2.replace("x",loes)
}
while(true);

ywert = eval(zae2);


angabentext=aptext+ "(x "+sxvtext+")² "+syvtext;

zeilelesen(angabentext);

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

yw = eval(zae2);


if (yw == ywert)
{
if (geloest ==0){

text1 = "Ausgezeichnet!\n";
text2 ="Die Gleichung ist richtig!";
text3 ="";
geloest = 1;
if (hilfe == 0) score = score + 15;
else text3 ="\n Du hast dir aber p zeichnen lassen.";
}
else
{
text1 = "Willst du mich betrügen?\n";
text2 ="Die Aufgabe wurde bereits gelöst!\n";
text3 = "";
score = score - 5;
}

}

else {

text1 = "Leider falsch!\n";
text2 = "Die Gleichung lautet:\n";
text3 = "y = "+angabentext.replace("²","\u00b2");
score = score - 7;
geloest = 1;
if (score <0) score = 0;
}

text = text1+ text2 + text3;
document.Para.gleichung.value = text;
ausgabe = document.Para.gleichung.value;
ausgabe = ausgabe +"\n Punktestand: "+score+ " bei "+aufgabe+" Aufgaben";
document.Para.gleichung.value = ausgabe;
}
}



function auswerten() {

var punkte = score;
if (punkte < 1) punkte = 1;
// Zurücksetzen der Punkte auf Ausgangswert

m = 0;
t = 0;
hilfe = 0;
fehler = 0;
aufgabe = 0;
geloest= 0;
loesung= 0;
score = 0;

document.Para.gleichung.value = "Deine Punkte werden übertragen.\n Du beginnst wieder bei 0 Punkten.";


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

