/***********************************************************************************************************
 * com.calcumental.javascript.CalcumentalClass
 * Location: http://www.calcumental.com/library/com/calcumental/javascript/CalcumentalClass.js
 * Version Location: http://www.calcumental.com/library/com/calcumental/javascript/siewpage/builds/20080208/CalcumentalClass.js
 * Index Version Location: http://www.calcumental.com/library/com/calcumental/javascript/siewpage/index.html
 * Â© calcumental.com (http://www.calcumental.com/)
***********************************************************************************************************/

if (typeof com == "undefined") {com = {};};
if (typeof com.calcumental == "undefined") {com.calcumental = {};};
if (typeof com.calcumental.javascript == "undefined") {com.calcumental.javascript = {};};

if (typeof com.calcumental.javascript.CalcumentalClass == "undefined") {
 com.calcumental.javascript.CalcumentalClass = function() {};
 com.calcumental.javascript.CalcumentalClass.prototype = new com.oclib.javascript.lang.Root();  

 com.calcumental.javascript.CalcumentalClass.prototype.classCreated = "20080208"; 
 com.calcumental.javascript.CalcumentalClass.prototype.classCreator = "http://www.calcumental.com/"; 
 com.calcumental.javascript.CalcumentalClass.prototype.classIndexLocation = "http://www.calcumental.com/library/com/calcumental/"; 
 com.calcumental.javascript.CalcumentalClass.prototype.classLocation = "http://www.calcumental.com/library/com/calcumental/javascript/CalcumentalClass.js"; 
 com.calcumental.javascript.CalcumentalClass.prototype.className = "CalcumentalClass"; 
 com.calcumental.javascript.CalcumentalClass.prototype.classNamespace = "com.calcumental.javascript.CalcumentalClass"; 
 com.calcumental.javascript.CalcumentalClass.prototype.classVersion = "20080208"; 
 com.calcumental.javascript.CalcumentalClass.prototype.classVersionIndexLocation = "http://www.calcumental.com/library/com/calcumental/javascript/calcumental/builds/20080208/index.html";
 com.calcumental.javascript.CalcumentalClass.prototype.classVersionLocation = "http://www.calcumental.com/library/com/calcumental/javascript/calcumental/builds/20080208/CalcumentalClass.js";  

 com.calcumental.javascript.CalcumentalClass.prototype.dom = null;  
  com.calcumental.javascript.CalcumentalClass.prototype.getDom = function () {return this.dom;};
  com.calcumental.javascript.CalcumentalClass.prototype.setDom = function (dom) {this.dom = dom;};
 com.calcumental.javascript.CalcumentalClass.prototype.events = null;   
  com.calcumental.javascript.CalcumentalClass.prototype.getEvents = function () {return this.events;};
  com.calcumental.javascript.CalcumentalClass.prototype.setEvents = function (events) {this.events = events;};
  
 com.calcumental.javascript.CalcumentalClass.prototype.activeAdd = 1;
 com.calcumental.javascript.CalcumentalClass.prototype.activeDivision = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.activeMultiplicatio = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.activeSubtraction = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.addDefaultFirstArgument  = 4;
 com.calcumental.javascript.CalcumentalClass.prototype.addDefaultSecondArgument  = 4;
 com.calcumental.javascript.CalcumentalClass.prototype.addDefaultGrowth  = 1.03;
 com.calcumental.javascript.CalcumentalClass.prototype.addDisplacement  = 1/5;
 com.calcumental.javascript.CalcumentalClass.prototype.addGrowth  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.addLevel  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.addMaxFirstArgument  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.addMaxSecondArgument  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.currentTaskLevel = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.defaultMaxErrors  = 4;
 com.calcumental.javascript.CalcumentalClass.prototype.divisionDefaultAnswer  = 5;
 com.calcumental.javascript.CalcumentalClass.prototype.divisionDefaultSecondArgument  = 5;
 com.calcumental.javascript.CalcumentalClass.prototype.divisionDefaultGrowth  = 1.01;
 com.calcumental.javascript.CalcumentalClass.prototype.divisionDisplacement  = 1/6;
 com.calcumental.javascript.CalcumentalClass.prototype.divisionGrowth  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.divisionLevel  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.divisionMaxAnswer  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.divisionMaxSecondArgument  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.errors  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.gameTime = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.lastAnswer = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.lastError  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.maxErrors  = 4;
 com.calcumental.javascript.CalcumentalClass.prototype.maxTaskLevel = 3; 
 com.calcumental.javascript.CalcumentalClass.prototype.multiplicationDefaultFirstArgument  = 5;
 com.calcumental.javascript.CalcumentalClass.prototype.multiplicationDefaultSecondArgument  = 5;
 com.calcumental.javascript.CalcumentalClass.prototype.multiplicationDefaultGrowth  = 1.01;
 com.calcumental.javascript.CalcumentalClass.prototype.multiplicationDisplacement  = 1/6; 
 com.calcumental.javascript.CalcumentalClass.prototype.multiplicationGrowth  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.multiplicationLevel  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.multiplicationMaxFirstArgument  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.multiplicationMaxSecondArgument  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.number  = 1;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionDefaultBase  = 3;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionDefaultFirstArgument  = 4;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionDefaultSecondArgument  = 4;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionDefaultGrowth  = 1.03;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionDisplacement  = 1/5;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionBase  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionGrowth  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionLevel  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionMaxFirstArgument  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.subtractionMaxSecondArgument  = 0;
 com.calcumental.javascript.CalcumentalClass.prototype.timeBegin;
 com.calcumental.javascript.CalcumentalClass.prototype.timeAll = 0; 
 com.calcumental.javascript.CalcumentalClass.prototype.timeMaxOne = 5000;
 com.calcumental.javascript.CalcumentalClass.prototype.timeOne = 0;
 
 
 com.calcumental.javascript.CalcumentalClass.prototype.enterProcessing = function(e) {
  //if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.enterProcessing is runing...");};
  var code;
  if (e.keyCode) {
   code = e.keyCode;
  } else if (e.which) {
   code = e.which;
  };
  var character = String.fromCharCode(code);
  //if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.virtualKeyboard:: "+"character="+character+"; code="+code);};
  if(code == 13) {
   if(this.gameTime == 1) {
    this.testAnswer();
   } else {
    this.getTask();
   };
  };
 };

 com.calcumental.javascript.CalcumentalClass.prototype.getTask = function() {
  if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask is runing...");};
  this.dom.doHidden("responseRight");
  this.dom.doHidden("responseRightSub");
  this.dom.doHidden("responseBad");
  this.dom.doHidden("responseBadDatails");
  this.dom.doHidden("responseBadSub");
  this.number++;
  this.dom.changeTextContent("taskNumber", this.number);
  if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.currentTaskLevel="+this.currentTaskLevel);};
  if(this.number > 1) {
   if(this.lastError == 1) {
    this.lastError = 0;
   } else {
    if(this.currentTaskLevel == 0) {
     this.addMaxFirstArgument *= this.addGrowth;
     this.addMaxSecondArgument *= this.addGrowth;
    } else if(this.currentTaskLevel == 1) {
     this.subtractionMaxFirstArgument *= this.subtractionGrowth;
     this.subtractionMaxSecondArgument *= this.subtractionGrowth;
    } else if(this.currentTaskLevel == 2) {
     this.multiplicationMaxFirstArgument *= this.multiplicationGrowth;
     this.multiplicationMaxSecondArgument *= this.multiplicationGrowth; 
    } else if(this.currentTaskLevel == 3) {
     this.divisionMaxAnswer *= this.divisionGrowth;
     this.divisionnMaxSecondArgument *= this.divisionGrowth;
    };
    if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.currentTaskLevel="+this.currentTaskLevel);};
    this.currentTaskLevel++;
    if(this.currentTaskLevel > this.maxTaskLevel) {this.currentTaskLevel = 0;};
   };
  };
  if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.currentTaskLevel="+this.currentTaskLevel);};
  var firstArgument;
  var secondArgument;
  if(this.currentTaskLevel == 0) {
   if(this.activeAdd == 1) {
    if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask add finded...");};
    this.dom.changeTextContent("taskLevel", this.dom.getTextContent("taskLevel0"));
	var Dis = (this.addMaxFirstArgument*this.addDisplacement < 1) ? 0 : this.addMaxFirstArgument*this.addDisplacement;
    if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"Dis="+Dis);};
    firstArgument = Math.round(Math.random()*this.addMaxFirstArgument + Dis);
    secondArgument = Math.round(Math.random()*this.addMaxSecondArgument + Dis);
	this.lastAnswer = firstArgument + secondArgument;
	this.addLevel = Math.max(this.addLevel, this.lastAnswer);
    this.dom.changeTextContent("mathematicalCharacter", "+");
    this.dom.changeTextContent("mathematicalCharacterDatails", "+");
	this.dom.changeTextContent("level", this.addLevel);
    if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.addMaxFirstArgument="+this.addMaxFirstArgument+"; this.addMaxSecondArgument="+this.addMaxSecondArgument);};
   } else {
    this.currentTaskLevel++; 
   };  
  };
  if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.currentTaskLevel="+this.currentTaskLevel);};
  if(this.currentTaskLevel == 1) {
   if(this.activeSubtraction == 1) {
    if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask subtraction finded...");};
    this.dom.changeTextContent("taskLevel", this.dom.getTextContent("taskLevel1"));
	var Dis = (this.subtractionMaxFirstArgument*this.subtractionDisplacement < 1) ? 0 : this.subtractionMaxFirstArgument*this.subtractionDisplacement;
    if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"Dis="+Dis);};
    firstArgument = Math.round(Math.random()*(this.subtractionMaxFirstArgument-Dis)+Dis)+this.subtractionBase;
    secondArgument = Math.round(Math.random()*firstArgument);
	this.lastAnswer = firstArgument - secondArgument;
	this.subtractionLevel = Math.max(this.subtractionLevel, firstArgument);
    this.dom.changeTextContent("mathematicalCharacter", "-");
    this.dom.changeTextContent("mathematicalCharacterDatails", "-");
	this.dom.changeTextContent("level", this.subtractionLevel);
    if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.subtractionMaxFirstArgument="+this.subtractionMaxFirstArgument+"; this.subtractionMaxSecondArgument="+this.subtractionMaxSecondArgument);};
   } else {
    this.currentTaskLevel++; 
   };  
  };
  if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.currentTaskLevel="+this.currentTaskLevel);};
  if(this.currentTaskLevel == 2) {
   if(this.activeMultiplication == 1) {
    if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask multiplication finded...");};
    this.dom.changeTextContent("taskLevel", this.dom.getTextContent("taskLevel2"));
	var Dis = (this.multiplicationMaxFirstArgument*this.multiplicationDisplacement < 1) ? 0 : this.multiplicationMaxFirstArgument*this.multiplicationDisplacement;
    if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"Dis="+Dis);};
    firstArgument = Math.round(Math.random()*this.multiplicationMaxFirstArgument + Dis);
    secondArgument = Math.round(Math.random()*this.multiplicationMaxSecondArgument + Dis);
	this.lastAnswer = firstArgument * secondArgument;
	this.multiplicationLevel = Math.max(this.multiplicationLevel, this.lastAnswer);
    this.dom.changeTextContent("mathematicalCharacter", "*");
    this.dom.changeTextContent("mathematicalCharacterDatails", "*");
	this.dom.changeTextContent("level", this.multiplicationLevel);
    if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.multiplicationMaxFirstArgument="+this.multiplicationMaxFirstArgument+"; this.multiplicationMaxSecondArgument="+this.multiplicationMaxSecondArgument);};
   } else {
    this.currentTaskLevel++; 
   };  
  };
  if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.currentTaskLevel="+this.currentTaskLevel);};
  if(this.currentTaskLevel == 3) {
   if(this.activeDivision == 1) {
    if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask division finded...");};
    this.dom.changeTextContent("taskLevel", this.dom.getTextContent("taskLevel3"));
	var Dis = (this.divisionnMaxSecondArgument*this.divisionDisplacement < 1) ? 1 : this.divisionMaxSecondArgument*this.divisionDisplacement;
    if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"Dis="+Dis);};
    secondArgument = Math.round(Math.random()*this.divisionMaxSecondArgument + Dis);
	this.lastAnswer = Math.round(Math.random()*this.divisionMaxAnswer + 1); 
    firstArgument = secondArgument*this.lastAnswer;
	this.divisionLevel = Math.max(this.divisionLevel, firstArgument);
    this.dom.changeTextContent("mathematicalCharacter", ":");
    this.dom.changeTextContent("mathematicalCharacterDatails", ":");
	this.dom.changeTextContent("level", this.divisionLevel);
    if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.divisionMaxSecondArgument="+this.divisionMaxSecondArgument+"; this.divisionMaxAnswer="+this.divisionMaxAnswer+"; this.lastAnswer="+this.lastAnswer);};
   } else {
    this.currentTaskLevel++; 
   };  
  };
  if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.currentTaskLevel="+this.currentTaskLevel);};
  if(this.currentTaskLevel > this.maxTaskLevel) {
   this.currentTaskLevel = -1;
   this.number--;
   this.getTask();
  } else {
   this.dom.changeTextContent("firstArgument", firstArgument);
   this.dom.changeTextContent("firstArgumentDatails", firstArgument);
   this.dom.changeTextContent("secondArgument", secondArgument);
   this.dom.changeTextContent("secondArgumentDatails", secondArgument);
   this.dom.changeTextContent("answerDatails", this.lastAnswer);
   if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.currentTaskLevel="+this.currentTaskLevel+"; firstArgument="+firstArgument+"; secondArgument="+secondArgument+"; this.lastAnswer="+this.lastAnswer);};
   document.getElementById("answerInput").value = "";
   document.getElementById("answerInput").focus();
   this.timeBegin = (new Date()).getTime(); 
   this.gameTime = 1;
  };
 };

 com.calcumental.javascript.CalcumentalClass.prototype.init = function() {
  if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.init is runing...");};
  var the = this;
  this.events.addEventListener("answerInput", "keypress", function(e) {the.enterProcessing(e);}, false);
  this.events.addEventListener("preferencesButton", "click", function() {the.preferences();}, false);
  this.events.addEventListener("repeatButton", "click", function() {the.repeat();}, false);
  this.events.addEventListener("saveButton", "click", function() {the.save();}, false);
  this.events.addEventListener("startButton", "click", function() {the.start();}, false);
  this.events.addEventListener("stopButton", "click", function() {the.stops();}, false);
  this.events.addEventListener("toMainButton", "click", function() {the.toMain();}, false);
  document.getElementById("answerInput").value = "";
  this.dom.doHidden("welcomeMessage");
  this.dom.doVisible("startButtons");
 };

 com.calcumental.javascript.CalcumentalClass.prototype.preferences = function() {
  if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.preferences is runing...");};
  this.dom.doHidden("frameCenterMain");
  this.dom.doVisible("frameCenterPreferences");
 };

 com.calcumental.javascript.CalcumentalClass.prototype.repeat = function() {
  if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.repeat is runing...");};
  this.dom.doHidden("frameCenterResult");
  this.start();
 };

 com.calcumental.javascript.CalcumentalClass.prototype.save = function() {
  if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.save is runing...");};
  this.dom.doHidden("frameCenterPreferences");
  this.dom.doVisible("frameCenterMain");
 };

 com.calcumental.javascript.CalcumentalClass.prototype.start = function() {
  if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.start is runing...");};
  this.dom.doHidden("responseRight");
  this.dom.doHidden("responseRightSub");
  this.dom.doHidden("responseBad");
  this.dom.doHidden("responseBadDatails");
  this.dom.doHidden("responseBadSub");
  this.dom.doHidden("frameCenterMain");
  if(document.getElementById("addingCheckbox").checked) {this.activeAdd = 1;} else {this.activeAdd = 0;};
  if(document.getElementById("divisionCheckbox").checked) {this.activeDivision = 1;} else {this.activeDivision = 0;};
  if(document.getElementById("multiplicationCheckbox").checked) {this.activeMultiplication = 1;} else {this.activeMultiplication = 0;};
  if(document.getElementById("subtractionCheckbox").checked) {this.activeSubtraction = 1;} else {this.activeSubtraction = 0;};
  if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.getTask:: "+"this.activeAdd="+this.activeAdd+"; this.activeDivision="+this.activeDivision+"; this.activeMultiplication="+this.activeMultiplication+"; this.activeSubtraction="+this.activeSubtraction);};
																	   
  this.currentTaskLevel = 0;
  this.errors  = 0;
  this.firstTask = 1;
  this.gameTime = 0;
  this.lastAnswer = 0;
  this.lastError  = 0;
  this.number  = 0;
  this.timeAll = 0;
  this.timeBegin = 0;
  this.timeOne = 0;
  this.addGrowth  = this.addDefaultGrowth;
  this.addLevel  = 0;
  this.addMaxFirstArgument  = this.addDefaultFirstArgument;
  this.addMaxSecondArgument  = this.addDefaultSecondArgument;
  this.divisionGrowth  = this.divisionDefaultGrowth;
  this.divisionLevel  = 0;
  this.divisionBase = this.divisionDefaultBase;
  this.divisionMaxAnswer  = this.divisionDefaultAnswer;
  this.divisionMaxSecondArgument  = this.divisionDefaultSecondArgument;
  this.multiplicationGrowth  = this.multiplicationDefaultGrowth;
  this.multiplicationLevel  = 0;
  this.multiplicationBase = this.multiplicationDefaultBase;
  this.multiplicationMaxFirstArgument  = this.multiplicationDefaultFirstArgument;
  this.multiplicationMaxSecondArgument  = this.multiplicationDefaultSecondArgument;
  this.subtractionGrowth  = this.subtractionDefaultGrowth;
  this.subtractionLevel  = 0;
  this.subtractionBase = this.subtractionDefaultBase;
  this.subtractionMaxFirstArgument  = this.subtractionDefaultFirstArgument;
  this.subtractionMaxSecondArgument  = this.subtractionDefaultSecondArgument;
  this.dom.changeTextContent("firstArgument", "");
  this.dom.changeTextContent("firstArgumentDatails", "");
  this.dom.changeTextContent("secondArgument", "");
  this.dom.changeTextContent("secondArgumentDatails", "");
  this.dom.changeTextContent("answerDatails", "");
  this.dom.changeTextContent("taskNumber", "0");
  this.dom.changeTextContent("errors", "0");
  document.getElementById("answerInput").value = "";
  this.dom.doVisible("frameCenterGame");
  this.dom.doVisible("answerInput");
  document.getElementById("answerInput").focus();
  this.getTask();
 };

 com.calcumental.javascript.CalcumentalClass.prototype.stops = function() {
  if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.stops is runing...");};
  this.dom.doHidden("responseRight");
  this.dom.doHidden("responseRightSub");
  this.dom.doHidden("responseBad");
  this.dom.doHidden("responseBadDatails");
  this.dom.doHidden("responseBadSub");
  this.dom.doHidden("frameCenterGame");
  this.dom.changeTextContent("level0Result", this.addLevel);
  this.dom.changeTextContent("level1Result", this.subtractionLevel);
  this.dom.changeTextContent("level2Result", this.multiplicationLevel);
  this.dom.changeTextContent("level3Result", this.divisionLevel);
  this.dom.changeTextContent("taskNumberResult", this.number);
  this.dom.changeTextContent("errorsResult", this.errors);
  this.dom.changeTextContent("timeAllResult", this.timeAll + " ms");
  this.dom.changeTextContent("timeOneResult", this.timeOne + " ms");  
  this.dom.doVisible("frameCenterResult");
 };

 com.calcumental.javascript.CalcumentalClass.prototype.testAnswer = function() {
  if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.testAnswer is runing...");};
  var answer = document.getElementById("answerInput").value;
  if(answer == "") {return;};
  if(this.lastError == 0) {
   var time = (new Date()).getTime() - this.timeBegin;
   this.timeAll += time;
   this.timeOne = Math.round(this.timeAll/this.number);
   this.dom.changeTextContent("timeAll", this.timeAll + " ms");
   this.dom.changeTextContent("timeOne", this.timeOne + " ms");
  };
  this.dom.doHidden("responseRight");
  this.dom.doHidden("responseRightSub");
  this.dom.doHidden("responseBad");
  this.dom.doHidden("responseBadDatails");
  this.dom.doHidden("responseBadSub");
  if(answer == this.lastAnswer) {
  if(this.mustDebug()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.testAnswer:: Right! "+"this.timeOne="+this.timeOne+"; this.timeMaxOne ="+this.timeMaxOne+"; this.errors="+this.errors+"; this.maxErrors="+this.maxErrors);};
   this.dom.doVisible("responseRight");
   this.dom.doVisible("responseRightSub");
   this.gameTime = 0;
   if(this.timeOne > this.timeMaxOne || this.errors > this.maxErrors) {
    this.stops();
   };
  } else {
   if(this.lastError == 0) {
    this.lastError = 1;
    this.errors++;
   };
   this.dom.changeTextContent("errors", this.errors);
   this.dom.doVisible("responseBad");
   this.dom.doVisible("responseBadDatails");
   this.dom.doVisible("responseBadSub");
   document.getElementById("answerInput").focus();
  };
 };

 com.calcumental.javascript.CalcumentalClass.prototype.toMain = function() {
  if(this.mustTrace()) {this.getLog().println("com.calcumental.javascript.CalcumentalClass.toMain is runing...");};
  this.dom.doHidden("frameCenterResult");
  this.dom.doVisible("frameCenterMain");
 };
};
