// fractionadding.js
// designed 09/09/06
// changed 09/09/06
// author: Andreas Meier, Weiden i.d.OPf.
// all rights reserved

var hn = 0;
var hn1 = 0;
var ausgtext2="";
var ausgtext1="";
var nenn1=0;
var nenn2=0;
var score =0;
var geloest = 0;
function reset()
{
document.Parameter.n1.value =  "";
document.Parameter.n2.value =  "";
document.Parameter.z1.value =  "";
document.Parameter.z2.value =  "";
document.Parameter.nn1.value =  "";
document.Parameter.nn2.value =  "";
document.Parameter.zz1.value =  "";
document.Parameter.zz2.value =  "";
document.Parameter.Pruefergebnis2.value = "";
document.Parameter.zzz1.value =  "";
document.Parameter.nnn1.value =  "";
document.Parameter.ganze.value =  "";
document.Parameter.Pruefergebnis3.value = "";
document.Parameter.punktestand.value = "";
}

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


function ggT(a,b) {
 while (a!=b){
  if (a>b)a=a-b;
  else b = b-a;
 }
 return a;
}


function Schreibez1()
     {
geloest = 0;
document.Parameter.nn1.value =  "";
document.Parameter.nn2.value =  "";
document.Parameter.zz1.value =  "";
document.Parameter.zz2.value =  "";
document.Parameter.Pruefergebnis2.value = "";
document.Parameter.zzz1.value =  "";
document.Parameter.nnn1.value =  "";
document.Parameter.ganze.value =  "";
document.Parameter.Pruefergebnis3.value = "";

applet = document.applets[0];
applet.evalCommand("L_2 = (1,7)");
applet.evalCommand("Zähler_{Bruch1} = 1");
applet.evalCommand("Nenner_{Bruch1} = 3");
applet.evalCommand("Nenner_{Bruch2} = 4");
applet.evalCommand("Zähler_{Bruch2} = 1");

var dummy = 0;
wert = new Array();
for (i = 1; i<5 ; i++) wert[i] = 0;
for (i = 1; i<5 ;i ++) wert[i] = zufall();
if (wert[2] < wert[1])
 {
  dummy=wert[1];
  wert[1]=wert[2];
  wert[2]=dummy;
  }
if (wert[1]==wert[2])
{
wert[2]++;
}

if (wert[4] < wert[3])
 {
  dummy=wert[3];
  wert[3]=wert[4];
  wert[4]=dummy;
}


a = ggT(wert[1],wert[2]);
wert[1]=wert[1]/a;
wert[2]=wert[2]/a;
a = ggT(wert[3],wert[4]);
wert[3]=wert[3]/a;
wert[4]=wert[4]/a;
if (wert[3]==wert[4])
{
wert[4]++;
}
if (wert[2]==wert[4])
{
wert[4]++;
}
if (wert[2]== wert[1]+wert[3])
{
wert[4]=wert[2]+2;
}

if (ggT(wert[1],wert[2])>1)
{
wert[1] = wert[1]/ggT(wert[1],wert[2]);
}

if (ggT(wert[3],wert[4])>1)
{
wert[3] = wert[3]/ggT(wert[3],wert[4]);
}

if (ggT(wert[2],wert[4])>1)
{
wert[2] = 2;
wert[4] = 5;
wert[1] = 1;
wert[3] = 3;
}


        document.Parameter.z1.value = wert[1];

        document.Parameter.n1.value = wert[2];

        document.Parameter.z2.value = wert[3];

        document.Parameter.n2.value = wert[4];


     }



function zproof()
{
zaehler1 = 0;
zaehler2 = 0;

hn1=ggT(wert[2],wert[4]);
hn= wert[2]*wert[4]/hn1;

zaehler1 = wert[1]*hn/wert[2];
zaeh1lang = wert[1]*wert[4];
zaehler2 = wert[3]*hn/wert[4];
zaeh2lang = wert[3]*wert[2];
vergleich = wert[2]*wert[4];
if (document.Parameter.zz1.value !="")
{
var zaeh1 = eval(document.Parameter.zz1.value);
}
else zaeh1 =0;

if (document.Parameter.zz2.value !="")
{
var zaeh2 = eval(document.Parameter.zz2.value);
}
else zaeh2 =0;

if (document.Parameter.nn1.value !="")
{
nenn1 = eval(document.Parameter.nn1.value);
}
else nenn1 =0;

if (document.Parameter.nn2.value !="")
{
nenn2 = eval(document.Parameter.nn2.value);
}
else nenn2 =0;

  if (nenn1 !=nenn2)
     ausgtext1 = "You got different denominators!";
  else
      {
      if (nenn1 == vergleich)
        {
         if (zaeh1 == zaeh1lang && zaeh2 == zaeh2lang)
          {
            ausgtext1= "Excellent! You have renamed correctly."; fehler =0;
          }
         if (zaeh1 == zaeh1lang && zaeh2 != zaeh2lang)
          {
           ausgtext1 = "Numerator2 has been renamed wrongly"; fehler =1;
          }
         if (zaeh1 != zaeh1lang && zaeh2 == zaeh2lang)
          {
           ausgtext1 = "Numerator1 has been renamed wrongly.";fehler =1;
          }
         if (zaeh1 != zaeh1lang && zaeh2 != zaeh2lang)
          {
           ausgtext1= "Both numerators have been renamed wrongly.";fehler =1;
          }
        }
      else ausgtext1= "Denominators have been renamed wrongly.";fehler =1;
      }


if (nenn1 != nenn2){
   ausgtext1 = "You have renamed to different denominators!";fehler =1;}
else
  {
   if (nenn1 == hn && nenn2 == hn)
  {
   if (zaehler1 == zaeh1 && zaehler2 == zaeh2)
   {
     ausgtext1= "Excellent! You have renamed correctly."; fehler =0;
   }
   if (zaehler1 == zaeh1 && zaehler2 != zaeh2)
   {
    ausgtext1 = "Numerator2 has been renamed wrongly";fehler =1;
   }
   if (zaehler1 != zaeh1 && zaehler2 == zaeh2)
   {
    ausgtext1 = "Numerator1 has been renamed wrongly.";fehler =1;
   }
   if (zaehler1 != zaeh1 && zaehler2 != zaeh2)
   {
    ausgtext1 = "Both numerators have been renamed wrongly.";fehler =1;
   }
  }

}
}
function ergproof()
{
ausgtext2="";
ausgtext1="";
if (geloest == 0){
zproof();
if (fehler == 0){
ausgtext2 ="Give the result!";
hn1=ggT(wert[2],wert[4]);
hn= wert[2]*wert[4]/hn1;

if (document.Parameter.zzz1.value !="")
{
var zze1 = eval(document.Parameter.zzz1.value);
}
else zze1 =0;

if (document.Parameter.nnn1.value !="")
{
var nne1 = eval(document.Parameter.nnn1.value);
}
else nne1 =0;


if (document.Parameter.ganze.value !="")
{
var ganze1 = eval(document.Parameter.ganze.value);
}
else ganze1 =0;


var ganzeZahl = 0;
var ergzaehler = 0;
var zaehler1 = 0;
var zaehler2 = 0;
var a = 0;
zaehler1 = wert[1]*hn/wert[2];
zaehler2 = wert[3]*hn/wert[4];
zaeh1lang = wert[1]*wert[4];
zaeh2lang = wert[3]*wert[2];
vergleich2= zaeh1lang+zaeh2lang;

if ((zaehler1+zaehler2)/hn > 1)
{
ganzeZahl = 1;
ergzaehler = zaehler1+zaehler2-hn;
}
else
{
ergzaehler = zaehler1+zaehler2;
ganzeZahl = 0;
}

a= ggT(ergzaehler,hn);
ergzaehlerkurz=ergzaehler/a;
hnkurz=hn/a;
if (nne1 != nenn1 || nne1 != nenn2) {
ausgtext2 = "The numerator of your answer is wrong.";
score = score -10; if (score<0 ) score =0;
}
if (nne1 == hn)
{

if (a >= 2 && (Math.floor(zze1/ergzaehlerkurz) == Math.floor(nne1/hnkurz)) && ganze1 == ganzeZahl)
{
 ausgtext2 = "Your answer is correct, but you still can simplify!";
}

if (zze1 == ergzaehlerkurz && nne1 == hnkurz && ganze1 == ganzeZahl)
{
ausgtext2 = "Congratulation! Entirely correct!";geloest = 1;score = score +25;
}
if (zze1 >= nne1 && ganze1 == 0)
{

ausgtext2 = "Your answer is correct, but integers are possible.";
}

if (zze1 != ergzaehlerkurz && nne1 == hnkurz && ganze1 == ganzeZahl)
{
 ausgtext2 ="The numerator of your answer is wrong.";score = score -10; if (score<0 ) score =0;
}

if (zze1 == ergzaehlerkurz && nne1 != hnkurz && ganze1 == ganzeZahl)
{
ausgtext2 = "The denominator of your answer is wrong.";score = score -10; if (score<0 ) score =0;
}

if (zze1 == ergzaehlerkurz && nne1 == hnkurz && ganze1 != ganzeZahl)
{
ausgtext2 = "Integer is either missing or wrong.";score = score -10; if (score<0 ) score =0;
}
}
else
{
if (nne1 == wert[2]*wert[4])
{
ab=ggT(vergleich2,nne1);

if (ab >= 2 && (Math.floor(zze1/ergzaehlerkurz) == Math.floor(nne1/hnkurz)) && ganze1 == ganzeZahl)
{
 ausgtext2 = "Your answer is correct, but you still can simplify!";
}

if (zze1 == ergzaehlerkurz && nne1 == hnkurz && ganze1 == ganzeZahl)
{
ausgtext2 = "Congratulation! Entirely correct!";score = score +25;geloest = 1;
}
if (zze1 >= nne1 && ganze1 == 0)
{

document.Parameter.Pruefergebnis3.value = "Integer possible!";
}

if ((ganze1 == ganzeZahl) && (zze1 =! vergleich2))
{
 ausgtext2 ="The numerator of your answer is wrong.";score = score -10; if (score<0 ) score =0;
}

if ((ganze1 == ganzeZahl) && (nne1 =! wert[2]*wert[4]))
{
ausgtext2 = "The denominator of your answer is wrong.";score = score -10; if (score<0 ) score =0;
}


if ((zze1 == zaeh1lang + zaeh2lang) && nne1 == vergleich && ganze1 != ganzeZahl)
{
ausgtext2 = "Integer is either missing or wrong.";score = score -10; if (score<0 ) score =0;
}


}
}
}
else ausgtext2 ="Correct the renamed fractions first!";
document.Parameter.Pruefergebnis3.value = ausgtext2;
document.Parameter.Pruefergebnis2.value = ausgtext1;
document.Parameter.punktestand.value = String(score)+ " points";

}

else{
ausgtext1 ="The problem has already been solved!";
ausgtext2 ="20 points less for cheating!";
score = score -20; if (score <0) score =0;
document.Parameter.Pruefergebnis3.value = ausgtext2;
document.Parameter.Pruefergebnis2.value = ausgtext1;
document.Parameter.punktestand.value = String(score)+ " points";

}
}


/*     Highscore Eintrag vornehmen                                           */
/*                                                                           */
/*     Ausgabe-Fenster definieren und ausgeben                               */
/*                                                                           */
function messagewindow(message, title){
    msgWindow= open("rangliste.htm","msgwin","scrollbars=yes,toolbar=no,directories=no,menubar=no,width=800,height=620,location=no,status=no,resizable=yes");
     msgWindow.document.clear();
     msgWindow.document.open();

     msgWindow.document.writeln('<HTML><HEAD><TITLE>'+title+'</TITLE></HEAD><BODY TEXT="#000000" LINK="#0000FF" VLINK="#FF0000" ALINK="#0080FF" BGCOLOR="EFECA5">');
     msgWindow.document.writeln(message);
     msgWindow.document.writeln('</BODY></HTML>');
}


function auswerten() {

/* Achtung muss für jede Datei manuell angepasst werden */
/*                     Anfang                           */
var aufgabenart="unlike Denominators intro";
var punkte = score;

// Zurücksetzen der Punkte auf Ausgangswert

score = 0; // Startkapital

document.Parameter.Pruefergebnis2.value = "Your score has been transmitted.";
document.Parameter.Pruefergebnis3.value = "Your current points are reduced to 0 again.";
document.Parameter.punktestand.value = String(score) + " points";

/* Achtung muss für jede Datei manuell angepasst werden */
/*                        Ende                          */

   /* Hier wird das Ausgabe-fenster gefüllt und der HTML-Code geschrieben */
   /*                                                                    */
   ergebnisse = "<form name = 'eingabe' action ='../../../Mathematik/ehighsqlpost62w.php' method ='post'>";

werbestring1="&nbsp;<img src='../../../bilder/anzeige1.gif' width='15' height='60' border='0' alt=''>";
werbestring2 = "<!-- ValueClick Media 468x60 and 728x90 Banner CODE for realmath.de -->"+
"<script language='javascript' src='http://media.fastclick.net/w/get.media?sid=41862&m=1&tp=5&d=j&t=s'></script>"+
"<noscript><a href='http://media.fastclick.net/w/click.here?sid=41862&m=1&c=1' target='_top'>"+
"<img src='http://media.fastclick.net/w/get.media?sid=41862&m=1&tp=5&d=s&c=1'"+
"width=728 height=90 border=1></a></noscript><!-- ValueClick Media 468x60 and 728x90 Banner CODE for realmath.de -->";



   ergebnisse += "<font face = 'arial, helvetica' size = 2>";
   ergebnisse += "<CENTER><H2><font color=#FF0000>Highscore</font></H2><P><H3><font color=#0000EC>Enter your score</font></H3> <P>"

ergebnisse += "Lesson:";
ergebnisse += "<input type= text size=35 maxlength=35 name='xx_aufgabenart' value ='"+ aufgabenart+"' style=' border: none; color: #dd0000; text-align: center; font-weight: bold; font-family: arial, helvetica; font-size: 15pt; background: #EFECA5' readonly> ";
ergebnisse += "<br>You have scored <input type='text' size=6 maxlength=6 name=xx_punkte value = "+punkte+" style=' border: none; color: #dd0000; text-align: center; font-weight: bold; font-family: arial, helvetica; font-size: 15pt; background: #EFECA5' readonly> ";
ergebnisse += " points.<br><br>";


   ergebnisse += "It's up to you to write a nickname.<br>";
   ergebnisse += "Then you can send your highscore.<br>";
   ergebnisse += "<br>";
   ergebnisse += "<font color= #0000cc>Example: &nbsp;&nbsp;&nbsp;<b>Sandra from Florida</b>&nbsp;<br></font>";
   ergebnisse += "<font color= #0000cc>Name:&nbsp;</font>";
   ergebnisse += "<input type= text  size= 35  maxlength= 38  name=xx_spieler style='border: 1px solid; border-color: #0000cc; color: #000095; text-align: left; font-weight: bold; font-family: arial, helvetica; font-size: 11pt; background: #ffffff'><br>";
   ergebnisse += "<br><table width = 60%><tr>";
   ergebnisse += "<td align = center><font color= #0000cc><b>country</b></font></td>";
   ergebnisse += "<td align = center><font color= #0000cc><b>school</b></font></td>";
   ergebnisse += "<td align = center><font color= #0000cc><b>grade</b></font></td>";
   ergebnisse += "</tr><tr>";

ergebnisse += "<td><select name= xx_land size=1 style='color: #000095; text-align: center; font-weight: bold; font-size: 10pt'>";
   ergebnisse += "<option value =0 > select ...";
ergebnisse += "<option value =1> Africa";
ergebnisse += "<option value =2> Argentina";
ergebnisse += "<option value =3> Australia";
ergebnisse += "<option value =4> Austria";
ergebnisse += "<option value =5> Belgium";
ergebnisse += "<option value =6> Bolivia";
ergebnisse += "<option value =7> Brazil";
ergebnisse += "<option value =8> Bulgaria";
ergebnisse += "<option value =9> Canada";
ergebnisse += "<option value =10> Central America";

ergebnisse += "<option value =11> Chile";
ergebnisse += "<option value =12> China";
ergebnisse += "<option value =13> Colombia";
ergebnisse += "<option value =14> Croatia";
ergebnisse += "<option value =15> Czech Republic";
ergebnisse += "<option value =16> Denmark";
ergebnisse += "<option value =17> Ecuador";
ergebnisse += "<option value =18> Estonia";
ergebnisse += "<option value =19> Finland";
ergebnisse += "<option value =20> France";

ergebnisse += "<option value =21> Germany";
ergebnisse += "<option value =22> Greece";
ergebnisse += "<option value =23> Hungary";
ergebnisse += "<option value =24> India";
ergebnisse += "<option value =25> Indonesia";
ergebnisse += "<option value =26> Ireland";
ergebnisse += "<option value =27> Israel";
ergebnisse += "<option value =28> Italy";
ergebnisse += "<option value =29> Finland";
ergebnisse += "<option value =30> Japan";

ergebnisse += "<option value =31> Korea";
ergebnisse += "<option value =32> Luxembourg";
ergebnisse += "<option value =33> Malaysia";
ergebnisse += "<option value =34> Mexico";
ergebnisse += "<option value =35> Middle East";
ergebnisse += "<option value =36> Netherlands";
ergebnisse += "<option value =37> New Zealand";
ergebnisse += "<option value =38> Norway";
ergebnisse += "<option value =39> Paraguay";
ergebnisse += "<option value =40> Peru";

ergebnisse += "<option value =41> Philippines";
ergebnisse += "<option value =42> Poland";
ergebnisse += "<option value =43> Portugal";
ergebnisse += "<option value =44> Puerto Rico";
ergebnisse += "<option value =45> Romania";
ergebnisse += "<option value =46> Russia";
ergebnisse += "<option value =47> Singapore";
ergebnisse += "<option value =48> Slovak Republic";
ergebnisse += "<option value =49> Spain";
ergebnisse += "<option value =50> Sweden";

ergebnisse += "<option value =51> Taiwan";
ergebnisse += "<option value =52> Thailand";
ergebnisse += "<option value =53> Turkey";
ergebnisse += "<option value =54> Ukraine";
ergebnisse += "<option value =55> United Kingdom";
ergebnisse += "<option value =56> United States";
ergebnisse += "<option value =57> Uruguay";
ergebnisse += "<option value =58> Venezuela";
ergebnisse += "<option value =59> Other Country";
ergebnisse += "</select></td>";


   ergebnisse += "<td><select name= xx_schulart size=1 style='color: #000095; text-align: center; font-weight: bold; font-size: 10pt'>";
ergebnisse += "<option value =0 > select ...";
   ergebnisse += "<option value =1> Middle School";
   ergebnisse += "<option value =2> Junior High";
   ergebnisse += "<option value =3> Senior High";
   ergebnisse += "<option value =4> Comprehensive";
   ergebnisse += "<option value =5> -----";
   ergebnisse += "</select></td>";

   ergebnisse += "<td><select name= xx_klasse size= 1 style= 'color: #000095; text-align: center; font-weight: bold; font-size: 10pt'>";
   ergebnisse += "<option value =0 > select ...";
   ergebnisse += "<option value =1>5th";
   ergebnisse += "<option value =2>6th";
   ergebnisse += "<option value =3>7th";
   ergebnisse += "<option value =4>8th";
   ergebnisse += "<option value =5>9th";
   ergebnisse += "<option value =6>10th";
   ergebnisse += "<option value =7> --";
   ergebnisse += "</select></td></tr></table><br>";


   ergebnisse += "<br> <input type =submit value ='send your highscore'></form>";

   ergebnisse += werbestring1+werbestring2;

   messagewindow(ergebnisse,"Send to database"); /* überträgt den formatierten String */
                                           /*  in ein seperates Fenster        */

}
