// Autor: Michael Johann, www.schulabakus.de
// Das Programm darf zu nicht-kommerziellen Zwecken frei verwendet werden.
// Der Verweis auf meine Urheberschaft muss erhalten bleiben. (3. April 2008) 
// Grundlegend überarbeitet: 7. April 2009
// if(purpose==non-commercial){use=free}else{contact(me)}

  var Enter=13;
  var vorw=37; // Pfeiltaste <-
  var rueckw=39; // Pfeiltaste ->
  var Tab=9;
  var ersterTab=100; // Index
  TabFolge = new Array();
  var level=0;
  var opnd1 = new Object(); // Wert, Ziffern, Laenge
  opnd1["ziffer"] = new Array();
  var opnd2 = new Object();
  opnd2["ziffer"] = new Array();
  var opnd3 = new Object();
  opnd2["ziffer"] = new Array();
  var result = new Object();
  result["ziffer"] = new Array();
  var carry = new Array();
  var ok = new Array(false, false, false, false, false, false);
  fehler = new Array();
  ambiente = new Array();
  var tiktak=0;
  var tiktak_alt=0;
  var pause = new Boolean(false);
  zeit = new Array(6);
  var n = 0;
  var aktiveStelle="";
  var plusZeichen='<img src="plus.ico" border=0 alt="+" width="10" height="10">';
  var abakus;
  var abakus_opened= new Boolean (false);
  var solving= new Boolean (false);
  Lsg = new Array();
  stopzeit = new Array();
  var step=0;
  var MovieIndex=0;
  var MoviePause= new Boolean(false);
  var MovieStop= new Boolean(false);
  var MovieNormspeed= 1250;
  var MovieSpeed= 1250;
  var MoviePlaying = new Boolean(false);
  var MovieTrigger;
  var MoviePausetrigger;


function gerade (zahl) {
  var status = new Boolean(false)
  status= (zahl%2==0)? true : false;
  return status;
}

function Zaehlen () {
  tiktak++;
  var min = Math.floor(tiktak/60);
  var sec = tiktak - min * 60;
  var t = sec > 9? min + "&nbsp;:&nbsp;" + sec : min + "&nbsp;:&nbsp;" + "0" + sec;
  document.getElementById("dauer").innerHTML='<b>'+t+'<\/b>';
  aktiv = window.setTimeout("Zaehlen()", 1000);
}

//Attributknoten einfügen (id, class, etc.)
function addAttribute(tObj, aType, aValue) {
 var tAtt=document.createAttribute(aType);
 tAtt.nodeValue=aValue;
 tObj.setAttributeNode(tAtt);
}

function eintragen(ziffer){
  if(aktiveStelle!=""){document.getElementById(aktiveStelle).value=ziffer;}
}

//erzeugt bei id="ort" Tastatur 0..9 und "weiterbutton"
function makeZfrTasten(ort) {
var objekt=document.getElementById(ort);
  addAttribute(objekt, "align", "center");
  objekt.innerHTML='<table bgcolor=#E0E0E0 border=0 cellpadding=0 cellspacing=2><\/table>';
  objekt=objekt.firstChild;
  var reihe=objekt.insertRow(0);
  for(var k=0; k<=4; k++){
    var zelle=reihe.insertCell(k);
//    addAttribute(zelle, "align", "center");
    zelle.innerHTML='<input type="button" width="20" class="zfrButton" value="'+k+'" onclick="eintragen('+k+')">';}
  var reihe=objekt.insertRow(1);
  for(var k=5; k<=9; k++){
    var zelle=reihe.insertCell(k-5);
    zelle.innerHTML='<input type="button" width="15" class="zfrButton" value="'+k+'" onclick="eintragen('+k+')">';}
  var reihe=objekt.insertRow(2);
  var zelle=reihe.insertCell(0);
  addAttribute(zelle, "colspan", 5);
  addAttribute(zelle, "align", "center");
  addAttribute(zelle, "id", "weiterbutton");
//  reihe.innerHTML='<td colspan="5" align="center" id="weiterbutton"><\/td>';//
}

//erzeugt Tabellenform für +/-Aufgabe bei id=ort>
function makeTbl (ort, zeilen, spalten) {
  var tObj = document.getElementById(ort);
  tObj.innerHTML="";
  tObj=tObj.appendChild(document.createElement("table"));
  for (var i=0; i<zeilen; i++) {
   var tRow=tObj.insertRow(i); //neue Zeile nach der letzten
   addAttribute(tRow, "align", "center"); // Inhalte zentrieren
   for (var k=0; k<spalten; k++) {
    var tCell=tRow.insertCell(k); //neue Zelle
    addAttribute(tCell, "id", i+"_"+(spalten-1-k)); // "i_(spalten-1-k)" als Id
    if (i==0) {addAttribute(tCell, "width", 15);}}} // Spaltenbreite: 15, 15, 15, ...
  tRow=tObj.insertRow(zeilen-1); // Zeile für Summenstrich
  addAttribute(tRow, "align", "center"); // Inhalte zentrieren
  tCell=tRow.insertCell(0);
  addAttribute(tCell, "colspan", spalten);
  addAttribute(tCell, "height", 2);
  addAttribute(tCell, "bgcolor", "black");
//  tCell.innerHTML='<hr noshade size="2" color="black">';
//  tRow.innerHTML='<td colspan='+spalten+' height=1 bgColor=0><\/td>'; // Spalten zusammenziehen, Hintergrund: schwarz
}

// <INPUT TYPE="text" SIZE=1 maxlength=1 class=ziffer id=label>
function zfrBox (ort, label){
  document.getElementById(ort).innerHTML='<input type="text" size="1" maxlength="1" class="ziffer" id="'+label+'" onfocus="javascript: this.select(); aktiveStelle=this.id;" onclick="this.select()">'
}

function carryBox (ort, label){
  document.getElementById(ort).innerHTML='<input type="text" size="1" maxlength="1" class="uebertrag" id="'+label+'" onfocus="javascript: this.select(); aktiveStelle=this.id;" onclick="this.select()">'
}

function ganzZahl(x){
  return Math.floor(Math.round(Math.pow(10,10)*Math.log(x)/Math.LN10)/Math.pow(10,10)); //runde auf zehn Dezimale und bestimme nächst niedrigere ganze Zahl
}

function erzPlusaufg(typ){
  var w=0;
  var x=0;
  var y=0;
  var l1=2+Math.floor(4*Math.random()); // Höchste Stelle des ersten Summanden 0...5
  var l2=2+Math.floor(4*Math.random()); // Höchste Stelle des zweiten Summanden 0...5
  opnd1["ziffer"]= new Array();
  opnd2["ziffer"]= new Array();
  opnd3["ziffer"]= new Array();
  switch(typ){
  case 0:
  case 2:
  case 3:
  case 4:
    while (Math.floor(x/Math.pow(10,l1))==0) {x = Math.round((Math.pow(10, l1+1)-1)*Math.random());}
    y=x;
    if(typ>2){w=x;}
  break;
  case 1: // nur Ziffern <5, um Überträge zu vermeiden
    x=Math.floor(4*Math.random()+1); // höchste Stelle >0, 
    for(var k=0; k<l1; k++){x=10*x+Math.floor(5*Math.random());} 
    y=x; 
  break;
  case 5:
    while (sonicht==true || x*y==0){
    var sonicht= new Boolean(true);
    x = Math.round((Math.pow(10, l1+1)-1)*Math.random());
    y = Math.round((Math.pow(10, l2+1)-1)*Math.random()); // beliebig
    sonicht= (x+y<1000000) && (x%100000 + y%100000 < 100000) && (x%10000 + y%10000 < 10000) && (x%1000 + y%1000 < 1000) && (x%100 + y%100 < 100) && (x%10 + y%10 < 10);
    }
  break;}
  var z=w+x+y;
  opnd1["wert"]=x;
  opnd2["wert"]=y;
  opnd3["wert"]=w;  
  result["wert"]=z;
  opnd1["laenge"] = ganzZahl(x)+1; // Laenge
  opnd2["laenge"] = ganzZahl(y)+1;
  opnd3["laenge"] = ganzZahl(w)+1;
  result["laenge"] = ganzZahl(z)+1;
  var m= 1 + Math.max(Math.max(opnd1["laenge"],opnd2["laenge"]),opnd3["laenge"]); // eine Stelle mehr als die Summanden
  for (var k=0; k<m; k++){opnd1["ziffer"][k]=x % 10; x = Math.floor(x/10);} // zerlege in Stellen
  for (var k=0; k<m; k++){opnd2["ziffer"][k]=y % 10; y = Math.floor(y/10);}
  for (var k=0; k<m; k++){opnd3["ziffer"][k]=w % 10; w = Math.floor(w/10);}
  for (var k=0; k<m; k++){result["ziffer"][k]=z % 10; z = Math.floor(z/10);}
  carry[0]=0;
  for (var k=1; k<m; k++){carry[k]= Math.floor((opnd1["ziffer"][k-1]+opnd2["ziffer"][k-1]+opnd3["ziffer"][k-1]+carry[k-1])/10)}
}

function addition(L) {
  if(abakus.closed==false){abakus.close();}
  level=L;
  n++; // Aufgaben-Nummer erhöhen
  erzPlusaufg(level);
  TabFolge.splice(0, TabFolge.length-1) // alte TabFolge löschen
  switch(level){
  case 0:
    document.getElementById("LevelAngabe").innerHTML="Verdoppeln"
    document.getElementById("SolveButton").innerHTML='<button type="button" value="=!" title="" onclick="StartSolve(1);"><img src="teacher.ico" width="32" height="32" alt="Lösung"><br><small>Lösung<\/small><\/button>'
    var m= 1 + Math.max(opnd1["laenge"],opnd2["laenge"]); // einen Platzhalter mehr als die Summanden Stellen haben
    makeTbl("aufgabe", 4, m+1)
    document.getElementById("1_"+m).innerHTML=plusZeichen; // Plus-Zeichen
    for(var k=0; k<opnd1["laenge"]; k++){document.getElementById("0_"+k).innerHTML=opnd1["ziffer"][k]}
    for(var k=0; k<opnd2["laenge"]; k++){document.getElementById("1_"+k).innerHTML=opnd2["ziffer"][k]}
    for(var k=1; k<m; k++){carryBox("2_"+k, "carry"+k);}
    for(var k=0; k<m; k++){zfrBox("3_"+k, "erg"+k);}
    var i=0;
    addAttribute(document.getElementById("erg"+0), "tabindex", ersterTab); // Tab-Index beginnt mit ersterTab
    TabFolge[i]="erg"+0; i++;
    for(var k=1; k<m; k++){
      addAttribute(document.getElementById("carry"+k), "tabindex", ersterTab+i); 
      TabFolge[i]="carry"+k;
      i++;
      addAttribute(document.getElementById("erg"+k), "tabindex", ersterTab+i);
      TabFolge[i]="erg"+k;
      i++;}
    document.getElementById("erg"+0).focus();
  break;
  case 1:
  case 2:
    document.getElementById("LevelAngabe").innerHTML= (level==1)? "Halbieren I" : "Halbieren II";
    document.getElementById('level2').innerHTML="Teile&nbsp;die Zahl&nbsp;in&nbsp;zwei gleiche Summanden."
    document.getElementById("SolveButton").innerHTML='<button type="button" value="=!" title="" onclick="StartSolve(3);"><img src="teacher.ico" width="32" height="32" alt="Lösung"><br><small>Lösung<\/small><\/button>'
    var m= result["laenge"];
    makeTbl("aufgabe", 4, m+1)
    document.getElementById("1_"+m).innerHTML=plusZeichen; // Plus-Zeichen
    for(var k=0; k<m; k++){zfrBox("0_"+k, "sumnd1"+k);}
    for(var k=0; k<m; k++){zfrBox("1_"+k, "sumnd2"+k);}
    if (level==2) {for(var k=1; k<m; k++){carryBox("2_"+k, "carry"+k);}}
    for(var k=0; k<result["laenge"]; k++){document.getElementById("3_"+k).innerHTML=result["ziffer"][k]}
    var i=0;
    addAttribute(document.getElementById("sumnd2"+0), "tabindex", ersterTab); // Tab-Index beginnt mit 100
    TabFolge[i]="sumnd2"+0;
    i++;
    addAttribute(document.getElementById("sumnd1"+0), "tabindex", ersterTab+i); // Tab-Index beginnt mit 100
    TabFolge[i]="sumnd1"+0;
    i++;
    for(var k=1; k<m; k++){
      if (level==2){
      addAttribute(document.getElementById("carry"+k), "tabindex", ersterTab+i); 
      TabFolge[i]="carry"+k;
      i++;}
      addAttribute(document.getElementById("sumnd2"+k), "tabindex", ersterTab+i);
      TabFolge[i]="sumnd2"+k;
      i++;
      addAttribute(document.getElementById("sumnd1"+k), "tabindex", ersterTab+i);
      TabFolge[i]="sumnd1"+k;
      i++;      }
    document.getElementById("sumnd1"+(m-1)).focus();
  break;
  case 3:
    document.getElementById("LevelAngabe").innerHTML="Verdreifachen";
    var m= 1 + opnd1["laenge"]; // einen Platzhalter mehr als die Summanden Stellen haben
    makeTbl("aufgabe", 5, m+1)
    document.getElementById("1_"+m).innerHTML=plusZeichen; // Plus-Zeichen
    document.getElementById("2_"+m).innerHTML=plusZeichen; // Plus-Zeichen
    for(var k=0; k<opnd1["laenge"]; k++){document.getElementById("0_"+k).innerHTML=opnd1["ziffer"][k]}
    for(var k=0; k<opnd2["laenge"]; k++){document.getElementById("1_"+k).innerHTML=opnd2["ziffer"][k]}
    for(var k=0; k<opnd3["laenge"]; k++){document.getElementById("2_"+k).innerHTML=opnd3["ziffer"][k]}
    for(var k=1; k<m; k++){carryBox("3_"+k, "carry"+k);}
    for(var k=0; k<m; k++){zfrBox("4_"+k, "erg"+k);}
    var i=0;
    addAttribute(document.getElementById("erg"+0), "tabindex", ersterTab); // Tab-Index beginnt mit ersterTab
    TabFolge[i]="erg"+0; i++;
    for(var k=1; k<m; k++){
      addAttribute(document.getElementById("carry"+k), "tabindex", ersterTab+i); 
      TabFolge[i]="carry"+k;
      i++;
      addAttribute(document.getElementById("erg"+k), "tabindex", ersterTab+i);
      TabFolge[i]="erg"+k;
      i++;}
    document.getElementById("erg"+0).focus();
  break;
  case 4:
    document.getElementById("LevelAngabe").innerHTML="Dritteln";
    document.getElementById('level2').innerHTML="Teile die Zahl&nbsp;in&nbsp;drei gleiche Summanden."
    var m= result["laenge"];
    makeTbl("aufgabe", 5, m+1)
    document.getElementById("1_"+m).innerHTML=plusZeichen; // Plus-Zeichen
    document.getElementById("2_"+m).innerHTML=plusZeichen; // Plus-Zeichen
    for(var k=0; k<m; k++){zfrBox("0_"+k, "sumnd1"+k);}
    for(var k=0; k<m; k++){zfrBox("1_"+k, "sumnd2"+k);}
    for(var k=0; k<m; k++){zfrBox("2_"+k, "sumnd3"+k);}
    for(var k=1; k<m; k++){carryBox("3_"+k, "carry"+k);}
    for(var k=0; k<result["laenge"]; k++){document.getElementById("4_"+k).innerHTML=result["ziffer"][k]}
    var i=0;
    addAttribute(document.getElementById("sumnd3"+0), "tabindex", ersterTab); // Tab-Index beginnt mit 100
    TabFolge[i]="sumnd3"+0;
    i++;
    addAttribute(document.getElementById("sumnd2"+0), "tabindex", ersterTab);
    TabFolge[i]="sumnd2"+0;
    i++;
    addAttribute(document.getElementById("sumnd1"+0), "tabindex", ersterTab);
    TabFolge[i]="sumnd1"+0;
    i++;
    for(var k=1; k<m; k++){
      addAttribute(document.getElementById("carry"+k), "tabindex", ersterTab+i); 
      TabFolge[i]="carry"+k;
      i++;
      addAttribute(document.getElementById("sumnd3"+k), "tabindex", ersterTab+i);
      TabFolge[i]="sumnd3"+k;
      i++;
      addAttribute(document.getElementById("sumnd2"+k), "tabindex", ersterTab+i);
      TabFolge[i]="sumnd2"+k;
      i++;
      addAttribute(document.getElementById("sumnd1"+k), "tabindex", ersterTab+i);
      TabFolge[i]="sumnd1"+k;
      i++;}
    document.getElementById("sumnd1"+(m-1)).focus();
  break;
  }
  document.getElementById("weiterbutton").innerHTML='<input type="button" value="&crarr;" title="Enter" width=100% height=30px style="font-size:large; font-weight:bold; width:100%; height:30px;" onclick="addition_check('+level+')">' // Weiter-Button
  var tab_id=(level==0 || level==3)? TabFolge[0] : TabFolge[TabFolge.length-1]
  document.getElementById(tab_id).focus();
}

function addition_check (L) {
  level=L;
  var wertung = new Boolean(true);
  switch(level){
  case 0:
    var i=0; // Fehler-Zähler
    fehler = new Array();
    var m= 1 + Math.max(opnd1["laenge"],opnd2["laenge"]); // einen Platzhalter mehr als die Summanden Stellen haben
    for(var k=0; k<m; k++){
      var z=(document.getElementById("erg"+k).value=="")? 0 : document.getElementById("erg"+k).value;
      if(result["ziffer"][k]!=z){fehler[i]="erg"+k; i++; wertung=false;}}
    for(var k=1; k<m; k++){
      var z= (document.getElementById("carry"+k).value=="")? 0 : document.getElementById("carry"+k).value;
      if(carry[k]!=z){fehler[i]="carry"+k; i++; wertung=false;}}
    for(var k=0; k<result["laenge"]; k++){
      if(document.getElementById("erg"+k).value==""){wertung=false; fehler[i]="erg"+k; i++;}}
  break;
  case 1:
  case 2:
    var i=0; // Fehler-Zähler
    fehler = new Array();
    var m= result["laenge"];
    for(var k=0; k<m; k++){
      var z=(document.getElementById("sumnd1"+k).value=="")? 0 : document.getElementById("sumnd1"+k).value;
      if(opnd1["ziffer"][k]!=z){wertung=false; fehler[i]="sumnd1"+k; i++;}}
    for(var k=0; k<m; k++){
      var z=(document.getElementById("sumnd2"+k).value=="")? 0 : document.getElementById("sumnd2"+k).value;
      if(opnd1["ziffer"][k]!=z){wertung=false; fehler[i]="sumnd2"+k; i++;}}
    if(level==2){
      for(var k=1; k<m; k++){
      var z= (document.getElementById("carry"+k).value=="")? 0 : document.getElementById("carry"+k).value;
      if(carry[k]!=z){wertung=false; fehler[i]="carry"+k; i++;}}}
    for(var k=0; k<opnd1["laenge"]; k++){
      if(document.getElementById("sumnd1"+k).value==""){wertung=false; fehler[i]="sumnd1"+k; i++;}}
  break; 
  case 3:
    var i=0; // Fehler-Zähler
    fehler = new Array();
    var m= 1 + Math.max(opnd1["laenge"],opnd2["laenge"]); // einen Platzhalter mehr als die Summanden Stellen haben
    for(var k=0; k<m; k++){
      var z=(document.getElementById("erg"+k).value=="")? 0 : document.getElementById("erg"+k).value;
      if(result["ziffer"][k]!=z){fehler[i]="erg"+k; i++; wertung=false;}}
    for(var k=1; k<m; k++){
      var z= (document.getElementById("carry"+k).value=="")? 0 : document.getElementById("carry"+k).value;
      if(carry[k]!=z){fehler[i]="carry"+k; i++; wertung=false;}}
    for(var k=0; k<result["laenge"]; k++){
      if(document.getElementById("erg"+k).value==""){wertung=false; fehler[i]="erg"+k; i++;}}
  break;
    var i=0; // Fehler-Zähler
    fehler = new Array();
    var m= result["laenge"];
    for(var k=0; k<m; k++){
      var z=(document.getElementById("sumnd2"+k).value=="")? 0 : document.getElementById("sumnd2"+k).value;
      if(opnd2["ziffer"][k]!=z){wertung=false; fehler[i]="sumnd2"+k; i++;}}
    for(var k=1; k<m; k++){
      var z= (document.getElementById("carry"+k).value=="")? 0 : document.getElementById("carry"+k).value;
      if(carry[k]!=z){wertung=false; fehler[i]="carry"+k; i++;}}
    for(var k=0; k<opnd2["laenge"]; k++){
      if(document.getElementById("sumnd2"+k).value==""){wertung=false; fehler[i]="sumnd2"+k; i++;}}
  break;
  case 4:
    var i=0; // Fehler-Zähler
    fehler = new Array();
    var m= result["laenge"];
    for(var k=0; k<m; k++){
      var z=(document.getElementById("sumnd1"+k).value=="")? 0 : document.getElementById("sumnd1"+k).value;
      if(opnd1["ziffer"][k]!=z){wertung=false; fehler[i]="sumnd1"+k; i++;}}
    for(var k=0; k<m; k++){
      var z=(document.getElementById("sumnd2"+k).value=="")? 0 : document.getElementById("sumnd2"+k).value;
      if(opnd2["ziffer"][k]!=z){wertung=false; fehler[i]="sumnd2"+k; i++;}}
    for(var k=0; k<m; k++){
      var z=(document.getElementById("sumnd3"+k).value=="")? 0 : document.getElementById("sumnd3"+k).value;
      if(opnd3["ziffer"][k]!=z){wertung=false; fehler[i]="sumnd3"+k; i++;}}
    for(var k=1; k<m; k++){
      var z= (document.getElementById("carry"+k).value=="")? 0 : document.getElementById("carry"+k).value;
      if(carry[k]!=z){wertung=false; fehler[i]="carry"+k; i++;}}
    for(var k=0; k<opnd1["laenge"]; k++){
      if(document.getElementById("sumnd1"+k).value==""){wertung=false; fehler[i]="sumnd1"+k; i++;}}
  break;
}
  if(wertung==false){
    document.getElementById("smilie"+n).innerHTML='<img src="unhappy.gif" border=0 alt="f" width="20" height="20" >';
    document.getElementById("HinweisButton").innerHTML='<button type="button" value="?" title="Tipp" onclick="Fehlerhinweis();"><img src="hint.gif" width="32" height="32" alt="Hinweis?"><br><small>Hinweis<\/small><\/button>'//'<input type="button" value="  ?  " width=40px height=40px style="width:40px; height:40px; font-size:x-large" onclick="Fehlerhinweis()">' // HinweisButton
    }
  else {
    document.getElementById("HinweisButton").innerHTML=' ' // Lösche HinweisButton
    document.getElementById("SolveButton").innerHTML='' // Lösche LösungsButton
    if(n==5){
       ok[level]=true; // Aufgaben des Levels sind gelöst
       document.getElementById("weiterbutton").innerHTML='<input type="button" value="&crarr;" title="Enter" width=100% height=30px style="font-size:large; font-weight:bold; width:100%; height:30px;">' // Weiter-Button
       document.getElementById("smilie"+n).innerHTML='<img src="happy.gif" border=0 alt="r" width="20" height="20">';
       n = 0;
       window.clearTimeout(aktiv); // Zeit anhalten
       var t = tiktak - tiktak_alt; // Zeitdauer des Levels
       tiktak_alt = tiktak;
       var min = Math.floor(t/60);
       var sec = t - min * 60;
       zeit[level] = sec > 9? min + " : " + sec : min + " : " + "0" + sec;
       for(var k=1; k<=6; k++){
         if(k!=0){document.getElementById('level'+k).innerHTML=ambiente[k];}} // "Ambiente" wieder anzeigen
       switch(level){
       case 0:
         document.getElementById("level"+(level+1)).innerHTML=zeit[level]+'<br><img src="gratulation1.gif" border=0 alt="Gratulation!" width="33" height="51"><br>Level 1';
       break;
       case 1:
         document.getElementById("level"+(level+1)).innerHTML=zeit[level]+'<br><img src="gratulation2.gif" border=0 alt="Gratulation!" width="50" height="30"><br>Level 2';
       break;
       case 2:
         document.getElementById("level"+(level+1)).innerHTML=zeit[level]+'<br><img src="gratulation3.gif" border=0 alt="Gratulation!" width="50" height="50"><br>Level 3';
       break; 
       case 3:
         document.getElementById("level"+(level+1)).innerHTML=zeit[level]+'<br><img src="gratulation4.gif" border=0 alt="Gratulation!" width="50" height="50"><br>Level 3';
       break;
       case 4:
         document.getElementById("level"+(level+1)).innerHTML=zeit[level]+'<br><img src="gratulation5.gif" border=0 alt="Gratulation!" width="48" height="32"><br>Level 4';
       break;
       case 5:
         document.getElementById("level"+(level+1)).innerHTML=zeit[level]+'<br><img src="gratulation6.gif" border=0 alt="Gratulation!" width="61" height="49"><br>Level 5';
       break;}
       var fertig = new Boolean(true);
       ok[5]=true; // hier gibt es nur 5 Stufen
       for(var k=0; k<=5; k++){ fertig = fertig && ok[k];} // sind alle Levels gelöst?
       if(fertig==true){
         window.clearTimeout(aktiv);
         tiktak = 0;
         document.getElementById("tastatur").innerHTML="";
         document.getElementById("aufgabe").innerHTML='<img src="pokal.gif" border=0 alt="Gratulation!" width="115" height="115">';}
       }
    else {
       document.getElementById("smilie"+n).innerHTML='<img src="happy.gif" border=0 alt="r" width="20" height="20" >';
       addition(level);}}}

function Fehlerhinweis(){
  for(var k=0; k<fehler.length; k++){document.getElementById(fehler[k]).value="?";}
  document.getElementById("HinweisButton").innerHTML=' ' // HinweisButton löschen
  alert('Dieser Hinweis kostet 15 Sekunden!');
  tiktak += 15;
}

function StartSolve(mod){
  if(abakus.closed==false){abakus.focus(); return;}
  window.clearTimeout(MovieTrigger);
  solving=false; 
  abakus_opened=false;
  if (mod==1){Solve();}
  if (mod==3){Halb();}
}

function addAttributeAbak(tObj, aType, aValue) {
 var tAtt=abakus.document.createAttribute(aType);
 tAtt.nodeValue=aValue;
 tObj.setAttributeNode(tAtt);
}

function click(t){
  Lsg[step]=abakus.document.getElementById("rechenfelder").innerHTML;
  stopzeit[step]= (t=="k")? "k" : "n";
  step++;
}

function Solve(){
  var zeiger='<img src="point.ico" border=0 alt="V" title="" width="32" height="32" >';
  var calculus_v='<img src="o.gif" border=0 alt="o" title="" width="15" height="15">';
  var calculus_t='<img src="o_t.gif" border=0 alt="o" title="" width="15" height="15">';
  if(solving==false){ // open() nur beim ersten Aufruf
    solving=true; 
    abakus= window.open("Addition_am_Abakus.html", "Lösung", "width=800, height=450");
//    document.getElementById("SolveButton").innerHTML=''
    }
  if(abakus_opened==false){window.setTimeout("Solve()",100); return;} // Warte auf Rückmeldung von geöffnetem Fenster
  Lsg=new Array();
  step=0; // Zähler
//
// Rechenfelder:
  var zeilen=6; var spalten=result["laenge"]; //1 + Math.max(opnd1["laenge"],opnd2["laenge"]);
  var tab= abakus.document.getElementById("rechenfelder")
  tab.innerHTML="";
  tab=tab.appendChild(abakus.document.createElement("table"));
  addAttributeAbak(tab, "cellspacing", 10);
  addAttributeAbak(tab, "cellpadding", 2);
  for (var i=0; i<zeilen; i++) {
    var tRow=tab.insertRow(i); //neue Zeile nach der letzten
    for (var k=0; k<=spalten; k++) {
      var tCell=tRow.insertCell(k); //neue Zelle
      switch(i){
      case 0:
        if(k==0){addAttributeAbak(tCell, "height", 40);}
        addAttributeAbak(tCell, "align", "center"); 
        addAttributeAbak(tCell, "id", "pointer"+(spalten-k)); // Zeiger-Stellen
      break;
      case 1:
        if(k==0){ // Spalte für's Rechenzeichen
          addAttributeAbak(tCell, "height", 70);
          addAttributeAbak(tCell, "width", 30);
          addAttributeAbak(tCell, "align", "right");
          }
        else{     // die Abakusfelder
          addAttributeAbak(tCell, "align", "center"); 
          addAttributeAbak(tCell, "id", "F"+(spalten-k)); // id= F0, F1, ...
          addAttributeAbak(tCell, "width", 90);
          addAttributeAbak(tCell, "bgcolor", "#00B600"); // grün
          }
        var ttab=tCell.appendChild(abakus.document.createElement("table")); // die Stellen der Calculi
        addAttributeAbak(ttab, "cellspacing", "2");
        addAttributeAbak(ttab, "cellpadding", "0");
        var j=0;
        for(var s=0; s<4; s++){
          var ttRow=ttab.insertRow(s)
          for(var t=0; t<5; t++){
            ttCell=ttRow.insertCell(t)
            addAttributeAbak(ttCell, "id", (spalten-k)+"p"+j); // id= 0p0, 0p1, ..., 0p19; 1p0, 1p1, ...
            j++;
            if(s==0){addAttributeAbak(ttCell, "width", 15);}
            if(t==0){addAttributeAbak(ttCell, "height", 15);}
            } }
      break;
      case 2:
        if(k!=0){addAttributeAbak(tCell, "id", "op1_"+(spalten-k));} // id= op1_0, op1_1, ...
      break;
      case 3:
        if(k==0){addAttributeAbak(tCell, "id", "rz");} // Rechenzeichen
        else{addAttributeAbak(tCell, "id", "op2_"+(spalten-k));} // id= op2_0, op2_1, ...
      break;
      case 4:
        if(k!=0){addAttributeAbak(tCell, "id", "carry"+(spalten-k));} // id= carry0, carry1, ...
      break;
      case 5:
        if(k!=0){addAttributeAbak(tCell, "id", "res"+(spalten-k));} // id= res0, res1, ...
      break;
      }}}
  click();
//
// Aufgabenstellung:
  for(var k=0; k<opnd1["laenge"]; k++){
    abakus.document.getElementById("op1_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">'+opnd1["ziffer"][k]+'<\/div>';
  }
  for(var k=0; k<opnd2["laenge"]; k++){
    abakus.document.getElementById("op2_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">'+opnd2["ziffer"][k]+'<\/div>';
  }
    abakus.document.getElementById("rz").innerHTML='<div align=center style="font-size:xx-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">+<\/div>';
// Summenstrich:
  abakus.document.getElementById("carry0").innerHTML='<div align=center style="font-size:xx-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">&nbsp;<\/div>';
  abakus.document.getElementById("res0").innerHTML='<div align=center style="font-size:xx-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">&nbsp;<\/div>';
  tRow=tab.insertRow(zeilen-1); // Zeile für Summenstrich
  addAttributeAbak(tRow, "align", "center"); // Inhalte zentrieren
  tCell=tRow.insertCell(0);
  addAttributeAbak(tCell, "colspan", spalten+1);
  addAttributeAbak(tCell, "height", 2);
  addAttributeAbak(tCell, "bgcolor", "black");
  click();
//
// erster Summand:
  for(var k=0; k<opnd1["laenge"]; k++){
    abakus.document.getElementById("op1_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">>'+opnd1["ziffer"][k]+'<<\/div>';
    click();
    abakus.document.getElementById("pointer"+k).innerHTML=zeiger;
    click();
    for(var t=0; t<opnd1["ziffer"][k]; t++){abakus.document.getElementById(k+"p"+t).innerHTML=calculus_t;}
    if(opnd1["ziffer"][k]!=0){click("k");}
    for(var t=0; t<opnd1["ziffer"][k]; t++){abakus.document.getElementById(k+"p"+t).innerHTML=calculus_v;}
    click();
    // Pfeil und Markierung der Ziffer weg
    abakus.document.getElementById("pointer"+k).innerHTML='';
    abakus.document.getElementById("op1_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">'+opnd1["ziffer"][k]+'<\/div>';
  }
  click();
//
// zweiter Summand:  
  for(var k=0; k<opnd2["laenge"]; k++){
    abakus.document.getElementById("op2_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">>'+opnd2["ziffer"][k]+'<<\/div>';
    click();
    abakus.document.getElementById("pointer"+k).innerHTML=zeiger;
    click();
    for(var t=0; t<opnd2["ziffer"][k]; t++){
      var z=opnd1["ziffer"][k]; // <- das liegt bereits im Rechenfeld
      abakus.document.getElementById(k+"p"+(t+z)).innerHTML=calculus_t;
    }
    if(opnd2["ziffer"][k]!=0){click("k");}
    for(var t=0; t<opnd2["ziffer"][k]; t++){
      var z=opnd1["ziffer"][k]; // <- das liegt bereits im Rechenfeld
      abakus.document.getElementById(k+"p"+(t+z)).innerHTML=calculus_v;
    }
    click();
    // Pfeil und Markierung der Ziffer weg
    abakus.document.getElementById("pointer"+k).innerHTML='';
    abakus.document.getElementById("op2_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">'+opnd2["ziffer"][k]+'<\/div>';
  }
  click();
//
// Bündeln:
  for(var k=1; k<result["laenge"]; k++){
  if(carry[k]==1){
    abakus.document.getElementById("pointer"+(k-1)).innerHTML=zeiger;
    click();
    for(var t=0; t<10; t++){abakus.document.getElementById((k-1)+"p"+t).innerHTML=calculus_t;}    
    click("k");
    for(var t=0; t<10; t++){abakus.document.getElementById((k-1)+"p"+t).innerHTML='';}    
    click();
    abakus.document.getElementById("pointer"+(k-1)).innerHTML='';
    abakus.document.getElementById("pointer"+k).innerHTML=zeiger;
    click();
    var t= opnd1["ziffer"][k]+opnd2["ziffer"][k];
    abakus.document.getElementById(k+"p"+t).innerHTML=calculus_t;
    click("k");
    abakus.document.getElementById(k+"p"+t).innerHTML=calculus_v;    
    click();
    abakus.document.getElementById("carry"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">>1<<\/div>';    
    click();
    abakus.document.getElementById("carry"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">1<\/div>';
    abakus.document.getElementById("pointer"+k).innerHTML='';
    click();
    }
  }
//
// Ergebnis:
  for(var k=0; k<result["laenge"]; k++){
    abakus.document.getElementById("pointer"+k).innerHTML=zeiger;
    click();
    abakus.document.getElementById("res"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">'+result["ziffer"][k]+'<\/div>';
    click();
    abakus.document.getElementById("pointer"+k).innerHTML='';
    if(k+1==result["laenge"]){click()}
  }
//
  abakus.document.getElementById("Nachricht").innerHTML="... los geht's:";
  setTimeout("abakus.document.getElementById('Nachricht').innerHTML='';", 1000);
  abakus.stop();
//  abakus.play();
  setTimeout("abakus.play();", 1000);
}
//
function Halb(){
  var zeiger='<img src="point.ico" border=0 alt="V" title="" width="32" height="32" >';
  var calculus_v='<img src="o.gif" border=0 alt="o" title="" width="15" height="15">';
  var calculus_t='<img src="o_t.gif" border=0 alt="o" title="" width="15" height="15">';
  if(solving==false){ // open() nur beim ersten Aufruf
    solving=true; 
    abakus= window.open("Addition_am_Abakus.html", "Lösung", "width=800, height=500");
//    document.getElementById("SolveButton").innerHTML=''
    }
  if(abakus_opened==false){window.setTimeout("Halb()",100); return;} // Warte auf Rückmeldung von geöffnetem Fenster
  Lsg=new Array();
  step=0; // Zähler
//
// Rechenfelder:
  var zeilen=6; var spalten= result["laenge"]; //1+Math.max(opnd1["laenge"],opnd2["laenge"]);
  var tab= abakus.document.getElementById("rechenfelder")
  tab.innerHTML="";
  tab=tab.appendChild(abakus.document.createElement("table"));
  addAttributeAbak(tab, "cellspacing", 10);
  addAttributeAbak(tab, "cellpadding", 2);
  for (var i=0; i<zeilen; i++) {
    var tRow=tab.insertRow(i); //neue Zeile nach der letzten
    for (var k=0; k<=spalten; k++) {
      var tCell=tRow.insertCell(k); //neue Zelle
      switch(i){
      case 0:
        if(k==0){addAttributeAbak(tCell, "height", 40);}
        addAttributeAbak(tCell, "align", "center"); 
        addAttributeAbak(tCell, "id", "pointer"+(spalten-k)); // Zeiger-Stellen
      break;
      case 1:
        if(k==0){ // Spalte für's Rechenzeichen
          addAttributeAbak(tCell, "height", 110);
          addAttributeAbak(tCell, "width", 30);
          addAttributeAbak(tCell, "align", "right");
          }
        else{     // die Abakusfelder
          addAttributeAbak(tCell, "align", "center"); 
          addAttributeAbak(tCell, "id", "F"+(spalten-k)); // id= F0, F1, ...
          addAttributeAbak(tCell, "width", 90);
          addAttributeAbak(tCell, "bgcolor", "#00B600"); // grün
          }
        var ttab=tCell.appendChild(abakus.document.createElement("table")); // die Stellen der Calculi
        addAttributeAbak(ttab, "cellspacing", "2");
        addAttributeAbak(ttab, "cellpadding", "0");
        var j=0;
        for(var s=0; s<6; s++){
          var ttRow=ttab.insertRow(s)
          for(var t=0; t<5; t++){
            ttCell=ttRow.insertCell(t)
            addAttributeAbak(ttCell, "id", (spalten-k)+"p"+j); // id= 0p0, 0p1, ..., 0p19; 1p0, 1p1, ...
            j++;
            if(s==0){addAttributeAbak(ttCell, "width", 15);}
            if(t==0){addAttributeAbak(ttCell, "height", 15);}
            } }
      break;
      case 2:
        if(k!=0){addAttributeAbak(tCell, "id", "op1_"+(spalten-k));} // id= op1_0, op1_1, ...
      break;
      case 3:
        if(k==0){addAttributeAbak(tCell, "id", "rz");} // Rechenzeichen
        else{addAttributeAbak(tCell, "id", "op2_"+(spalten-k));} // id= op2_0, op2_1, ...
      break;
      case 4:
        if(k!=0){addAttributeAbak(tCell, "id", "carry"+(spalten-k));} // id= carry0, carry1, ...
      break;
      case 5:
        if(k!=0){addAttributeAbak(tCell, "id", "res"+(spalten-k));} // id= res0, res1, ...
      break;
      }}}
  click();
//
// Summanden:
  for(var k=0; k<opnd1["laenge"]; k++){abakus.document.getElementById("op1_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">&nbsp;<\/div>';}
  for(var k=0; k<opnd2["laenge"]; k++){abakus.document.getElementById("op2_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">&nbsp;<\/div>';}
  abakus.document.getElementById("rz").innerHTML='<div align=center style="font-size:xx-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">+<\/div>';
// Summenstrich:
  abakus.document.getElementById("carry0").innerHTML=''; //<div align=center style="font-size:xx-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">&nbsp;<\/div>
  abakus.document.getElementById("res0").innerHTML='<div align=center style="font-size:xx-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">&nbsp;<\/div>';
  tRow=tab.insertRow(zeilen-1); // Zeile für Summenstrich
  addAttributeAbak(tRow, "align", "center"); // Inhalte zentrieren
  tCell=tRow.insertCell(0);
  addAttributeAbak(tCell, "colspan", spalten+1);
  addAttributeAbak(tCell, "height", 2);
  addAttributeAbak(tCell, "bgcolor", "black");
  click();
//
// Ausgangszahl
  for(var k=0; k<result["laenge"]; k++){
    abakus.document.getElementById("res"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">>'+result["ziffer"][k]+'<<\/div>';
    click();
    abakus.document.getElementById("pointer"+k).innerHTML=zeiger;
    click();
    for(var t=0; t<result["ziffer"][k]; t++){abakus.document.getElementById(k+"p"+(10+t)).innerHTML=calculus_t;}
    if(result["ziffer"][k]!=0){click("k");}
    for(var t=0; t<result["ziffer"][k]; t++){abakus.document.getElementById(k+"p"+(10+t)).innerHTML=calculus_v;}
    click();
    abakus.document.getElementById("res"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">'+result["ziffer"][k]+'<\/div>';
    abakus.document.getElementById("pointer"+k).innerHTML='';
    click();
  }
// Halbieren
  var g=0;
  for(var k=result["laenge"]-1; k>=0; k--){
    abakus.document.getElementById("pointer"+k).innerHTML=zeiger;
    if(g==0){click();} // wenn g==1, ist Zeiger schon da
    g=(gerade(result["ziffer"][k]))? 0 : 1;
    for(var t=0; t<(result["ziffer"][k]-g); t++){abakus.document.getElementById(k+"p"+(10+t)).innerHTML=calculus_t;}
    if(result["ziffer"][k]>1){click("k");}
    for(var t=0; t<(result["ziffer"][k]-g); t++){abakus.document.getElementById(k+"p"+(10+t)).innerHTML='';}
    if(result["ziffer"][k]>1){click();}
    for(var t=0; t<(result["ziffer"][k]-g)/2; t++){
      abakus.document.getElementById(k+"p"+(0+t)).innerHTML=calculus_t;
      abakus.document.getElementById(k+"p"+(25+t)).innerHTML=calculus_t;}
    if(result["ziffer"][k]>1){click("k");}
    for(var t=0; t<(result["ziffer"][k]-g)/2; t++){
      abakus.document.getElementById(k+"p"+(0+t)).innerHTML=calculus_v;
      abakus.document.getElementById(k+"p"+(25+t)).innerHTML=calculus_v;}
    if(result["ziffer"][k]>1){click();}
    if (g==1){  // Entbündeln des Restes
      abakus.document.getElementById(k+"p"+(10+result["ziffer"][k]-1)).innerHTML=calculus_t;
      click("k");
      abakus.document.getElementById(k+"p"+(10+result["ziffer"][k]-1)).innerHTML='';
      click();
      abakus.document.getElementById("pointer"+k).innerHTML='';
      abakus.document.getElementById("pointer"+(k-1)).innerHTML=zeiger;
      click();
      for (var t=0; t<5; t++){
        abakus.document.getElementById((k-1)+"p"+(5+t)).innerHTML=calculus_t;
        abakus.document.getElementById((k-1)+"p"+(20+t)).innerHTML=calculus_t;}
      click("k");
      for (var t=0; t<5; t++){
        abakus.document.getElementById((k-1)+"p"+(5+t)).innerHTML=calculus_v;
        abakus.document.getElementById((k-1)+"p"+(20+t)).innerHTML=calculus_v;}
      click();
    }     
    abakus.document.getElementById("pointer"+k).innerHTML='';
    if(g==0){click();}
  }
// Ergebnis
  for(var k=0; k<opnd1["laenge"]; k++){
    abakus.document.getElementById("pointer"+k).innerHTML=zeiger;
    click();
    abakus.document.getElementById("op1_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">'+opnd1["ziffer"][k]+'<\/div>';
    abakus.document.getElementById("op2_"+k).innerHTML='<div align=center style="font-size:x-large; font-family:'+"'"+'Comic Sans MS'+"'"+'">'+opnd2["ziffer"][k]+'<\/div>';
    click();
    abakus.document.getElementById("pointer"+k).innerHTML='';
    click();
  }
//  click();
//
  abakus.document.getElementById("Nachricht").innerHTML="... los geht's:";
  setTimeout("abakus.document.getElementById('Nachricht').innerHTML='';", 1000);
  abakus.stop();
//  abakus.play();
  setTimeout("abakus.play();", 1000);
}


function ShowLsg(){
  if(abakus.closed==true){
    MoviePlaying=false;
    MovieIndex=0;
    MoviePause= false;
    return;}
  if(MoviePause==true){MovieTrigger=setTimeout("ShowLsg()", 200); return;}
  abakus.document.getElementById("rechenfelder").innerHTML=Lsg[MovieIndex];
  abakus.document.getElementById("BildNr").innerHTML=MovieIndex+" / "+(Lsg.length-1)
  var delay= (stopzeit[MovieIndex]=="k")? 250 : MovieSpeed;
  MovieIndex++;
  if(MovieIndex<Lsg.length){MovieTrigger=setTimeout("ShowLsg()", delay); MoviePlaying=true;}
  else{MoviePlaying=false; MovieIndex--;}
}

function TasteGedrueckt (Ereignis) {
  var entf=46;
  var del=8;
  if(n!=0){
    if (!Ereignis)
      Ereignis = window.event;
    if (Ereignis.which) {
      Tastencode = Ereignis.which;
    } else if (Ereignis.keyCode) {
      Tastencode = Ereignis.keyCode;
    }
    switch(Tastencode){
    case entf:
      var tab_id='xxx'
      for(var k=0; k<TabFolge.length; k++){if(TabFolge[k]==aktiveStelle){tab_id= TabFolge[k];}}
      if(tab_id=='xxx'){return false;}
      document.getElementById(tab_id).value="";
    break;
    case del:
      var tab_id='xxx'
      for(var k=0; k<TabFolge.length; k++){if(TabFolge[k]==aktiveStelle){tab_id= TabFolge[k];}}
      if(tab_id=='xxx'){return false;}
      document.getElementById(tab_id).value="";
      break;    
    case Enter:
      addition_check(level)
      return false; // Damit sonst nichts ausgelöst wird, worauf gerade der Focus ist.
    break;
    case vorw: // <-
      var tab_id='xxx'
      if(aktiveStelle==TabFolge[TabFolge.length-1]){tab_id=TabFolge[0];}
      else {for(var k=0; k<TabFolge.length-1; k++){if(TabFolge[k]==aktiveStelle){tab_id= TabFolge[k+1];}}}
      if(tab_id=='xxx'){tab_id=TabFolge[0];}
      document.getElementById(tab_id).focus();
    break;
    case rueckw: // ->
      var tab_id='xxx'
      if(aktiveStelle==TabFolge[0]){var tab_id=TabFolge[TabFolge.length-1]}
      else{for(var k=0; k<TabFolge.length; k++){if(TabFolge[k]==aktiveStelle){var tab_id= TabFolge[k-1]}}}
      if(tab_id=='xxx'){tab_id=TabFolge[TabFolge.length-1];}
      document.getElementById(tab_id).focus();
    break; 
    case Tab:
      if(aktiveStelle==TabFolge[TabFolge.length-1]){
        addAttribute(document.getElementById("level"+(level+1)), "tabindex", ersterTab-1);
        document.getElementById("level"+(level+1)).focus();}
    break;}}}

function start(L){
  if(n==0){
    abakus= window.open("about:blank", "_blank", "width=1, height=1");
    abakus.close();
//    document.getElementById("LevelAngabe").innerHTML='Level '+ (L+1) //((L<2)? (L+1) : L);
    for(var k=1; k<=5; k++){document.getElementById("smilie"+k).innerHTML='\*';}
    makeZfrTasten("tastatur");
    if(tiktak==0){
      document.getElementById("uhr").innerHTML='<img src="clock.gif" border=0 alt="Zeit:" width="23" height="39">  ';
      document.getElementById("dauer").innerHTML='<b>0&nbsp;:&nbsp;00<\/b>';}
    for(var k=1; k<=6; k++){ // Ambiente merken und von Anzeige löschen
      if(k!=0){ambiente[k]=document.getElementById('level'+k).innerHTML; document.getElementById('level'+k).innerHTML=' ';}}
    addition(L);
    aktiv=window.setTimeout("Zaehlen()", 1000);} // starte Uhr
}

document.onkeydown = TasteGedrueckt;
