  var cumulativeValue = 0;
  var decimalUsed = false;
  var newNumber = false;
  var nextOperation = "";

  function updateData(myValue) {
    if (newNumber) {
      document.f1.theData.value = myValue;
      newNumber = false;
    }
    else {
      if (document.f1.theData.value == "0") {
        document.f1.theData.value = myValue;
      }
      else {
        document.f1.theData.value += myValue;
      }
    }
  }

  function updateDecimal() {
    if (newNumber) {
      document.f1.theData.value = "0.";
      newNumber = false;
    }
    else {
      if (!decimalUsed) {
        document.f1.theData.value += ".";
      }
    }
    decimalUsed = true;
  }

  function clearEntry() {
    document.f1.theData.value = 0;
    newNumber = true;
    decimalUsed = false;
  }

  function Clear() {
    cumulativeValue = 0;
    nextOperation = "";
    clearEntry();
  }

  function doComputation(myOperation) {
    if (newNumber && nextOperation != "=");
    else {
      newNumber = true;
      if      (nextOperation == '+') cumulativeValue += parseFloat(document.f1.theData.value);
      else if (nextOperation == '-') cumulativeValue -= parseFloat(document.f1.theData.value);
      else if (nextOperation == '*') cumulativeValue *= parseFloat(document.f1.theData.value);
      else if (nextOperation == '/') cumulativeValue /= parseFloat(document.f1.theData.value);
      else cumulativeValue = parseFloat(document.f1.theData.value);
    }
    document.f1.theData.value = cumulativeValue;
    nextOperation = myOperation;
    decimalUsed = false;
  }
