/****************************************************/
/*  Title      : JavaScript Calculator              */
/*  Course     : CPAN542 Client Server              */
/*  Date       : Oct 5, 2002                        */
/*                                                  */
/*  Programmer : In Chul Koo                        */
/*  E-mail     : ickoo@rogers.com                   */
/*  Web Address: members.rogers.com/ickoo           */
/*               sparcy.humber.org/~knch0013        */
/*                                                  */
/*  Purpose : to demonstrate the use of calculator  */
/****************************************************/
var timeID;
var testNum;
var stopTest = true;

/*****************************/
/*      checkTesting         */
/*****************************/
function checkTesting()
{ if(!stopTest)
  { stopTest=true
    testButt.value = "Start Testing";
    testButt.style.color = "#FFFFFF";
    testButt.style.background = "#999999";
    document.calculatorForm.inputWindow.focus();
  }
}

/*****************************/
/*     startnStopTest        */
/*****************************/
function startnStopTest()
{ if(stopTest)
  { timeID = 0;
    testNum = 0;
    stopTest = false;
    testButt.value = "Stop Testing";
    testButt.style.color = "#00FFFF";
    sampleTest();
  }
  else
  { stopTest=true
    testButt.value = "Start Testing";
    testButt.style.color = "#FFFFFF";
    testButt.style.background = "#999999";
    document.calculatorForm.inputWindow.focus();
  }
}

/*****************************/
/*        sampleTest         */
/*****************************/
function sampleTest()
{ timeID = setTimeout("sampleTest()", 400);
  if(stopTest)
  { clearTimeout(timeID);
    init(document.calculatorForm);
  }
  else
  { var cur = document.calculatorForm;
    switch(testNum)
    { case  0: init(cur); break;
      case  1: inputValue(cur, "1"); break;
      case  2: inputValue(cur, "2"); break;
      case  3: inputValue(cur, "pi"); break;
      case  4: inputValue(cur, "*"); break;
      case  5: inputValue(cur, "sin("); break;
      case  6: inputValue(cur, "5"); break;
      case  7: inputValue(cur, "+"); break;
      case  8: inputValue(cur, "3"); break;
      case  9: inputValue(cur, "^"); break;
      case 10: inputValue(cur, "4"); break;
      case 11: inputValue(cur, "*"); break;
      case 12: inputValue(cur, "tan("); break;
      case 13: inputValue(cur, "35"); break;
      case 14: inputValue(cur, "/"); break;
      case 15: inputValue(cur, "6"); break;
      case 16: inputValue(cur, ")"); break;
      case 17: inputValue(cur, "+"); break;
      case 18: inputValue(cur, "log("); break;
      case 19: inputValue(cur, "4"); break;
      case 20: inputValue(cur, "0"); break;
      case 21: inputValue(cur, ")"); break;
      case 22: inputValue(cur, ")"); break;
      case 23: inputValue(cur, "+"); break;
      case 24: inputValue(cur, "sqrt("); break;
      case 25: inputValue(cur, "3"); break;
      case 26: inputValue(cur, "4"); break;
      case 27: inputValue(cur, "5"); break;
      case 28: inputValue(cur, "BS"); break;
      case 29: inputValue(cur, "BS"); break;
      case 30: inputValue(cur, "6"); break;
      case 31: inputValue(cur, ")"); break;
      case 32: inputValue(cur, "+"); break;
      case 33: inputValue(cur, "e"); break;
      case 34: inputValue(cur, "^"); break;
      case 35: inputValue(cur, "3"); break;
      case 36: inputValue(cur, "-"); break;
      case 37: inputValue(cur, "2"); break;
      case 38: inputValue(cur, "4"); break;
      case 39: executeForm(cur); break;
      case 40: break;
      case 41: inputValue(cur, "Ans"); break;
      case 42: inputValue(cur, "-"); break;
      case 43: inputValue(cur, "1"); break;
      case 44: inputValue(cur, "5"); break;
      case 45: inputValue(cur, "/"); break;
      case 46: inputValue(cur, "Ans"); break;
      case 47: inputValue(cur, "*"); break;
      case 48: inputValue(cur, "2"); break;
      case 49: inputValue(cur, "3"); break;
      case 50: executeForm(cur); break;
      case 51: break;

      case 52: selectMode(cur, "hex"); break;
      case 53: break;
      case 54: inputValue(cur, "A"); break;
      case 55: inputValue(cur, "F"); break;
      case 56: inputValue(cur, "F"); break;
      case 57: inputValue(cur, "+"); break;
      case 58: inputValue(cur, "C"); break;
      case 59: inputValue(cur, "6"); break;
      case 60: inputValue(cur, "*"); break;
      case 61: inputValue(cur, "("); break;
      case 62: inputValue(cur, "F"); break;
      case 63: inputValue(cur, "D"); break;
      case 64: inputValue(cur, "-"); break;
      case 65: inputValue(cur, "2"); break;
      case 66: inputValue(cur, "3"); break;
      case 67: inputValue(cur, ")"); break;
      case 68: executeForm(cur); break;
      case 69: break;

      case 70: inputValue(cur, "Ans"); break;
      case 71: selectMode(cur, "dec"); break;
      case 72: break;

      case 73: inputValue(cur, "Ans"); break;
      case 74: selectMode(cur, "oct"); break;
      case 75: break;

      case 76: inputValue(cur, "6"); break;
      case 77: inputValue(cur, "4"); break;
      case 78: inputValue(cur, "2"); break;
      case 79: selectMode(cur, "bin"); break;
      case 80: break;

      case 81: inputValue(cur, "1"); break;
      case 82: inputValue(cur, "0"); break;
      case 83: inputValue(cur, "1"); break;
      case 84: inputValue(cur, "1"); break;
      case 85: inputValue(cur, "+"); break;
      case 86: inputValue(cur, "1"); break;
      case 87: inputValue(cur, "0"); break;
      case 88: inputValue(cur, "0"); break;
      case 89: inputValue(cur, "1"); break;
      case 90: selectMode(cur, "dec"); break;
      case 91: break;
    }
    // blink button while demo
    if(testNum%3 == 0)
      testButt.style.background = "#999999";
    else
      testButt.style.background = "#666666";
   
    testNum++;
    if(testNum > 92)
      startnStopTest();
  }
}
