window.onunload = function() {};
window.onload = basicLoad;



function basicLoad() {

  document.getElementById("mathForm").onsubmit = calculateForm;
  document.getElementById("formResetButton").onclick = resetForm;

  for(i=1;i<21; i++) {

    document.getElementById("number1").options[i] = new Option(i);
    document.getElementById("number1").options[i].value = i;
    document.getElementById("number2").options[i] = new Option(i);
    document.getElementById("number2").options[i].value = i;

  }

  document.getElementById("number1").onchange = doTheMath;
  document.getElementById("number2").onchange = doTheMath;
  document.getElementById("sign").onchange = doTheMath;

  mainLoad();

}



function calculateForm() {

  trimAllInputs();

  var numOne = document.getElementById("numOne").value;
  var multiplier = document.getElementById("multiplier").value;
  var numTwo = document.getElementById("numTwo").value;
  var goodToGo = true;



  if(!isNum(numOne)) {

    //numOne is not a number

    document.getElementById("numOne").className = "invalid";
    document.getElementById("numOne").parentNode.className = "invalid";

    if(goodToGo) {

      document.getElementById("numOne").focus();
      document.getElementById("numOne").select();

    }

    goodToGo = false;



  } else {

    document.getElementById("numOne").className = "";
    document.getElementById("numOne").parentNode.className = "";

  }

  var valChars = "+-*/";
  var isGood = false;

  for(i=0;i<valChars.length; i++) {

    var charCheck = valChars.charAt(i);

    if(multiplier == charCheck) {

      isGood = true;

    }

  }

  if(!isGood) {

    //multiplier not valid

    document.getElementById("multiplier").className = "invalid";
    document.getElementById("multiplier").parentNode.className = "invalid";

    if(goodToGo) {

      document.getElementById("multiplier").focus();
      document.getElementById("multiplier").select();

    }

    goodToGo = false;



  } else {

    document.getElementById("multiplier").className = "";
    document.getElementById("multiplier").parentNode.className = "";

  }

  if(!isNum(numTwo)) {

    //numTwo is not a number

    document.getElementById("numTwo").className = "invalid";
    document.getElementById("numTwo").parentNode.className = "invalid";

    if(goodToGo) {

      document.getElementById("numTwo").focus();
      document.getElementById("numTwo").select();

    }

    goodToGo = false;



  } else {

    document.getElementById("numTwo").className = "";
    document.getElementById("numTwo").parentNode.className = "";

  }



  if(goodToGo) {

    //let's calculate!

    var theAnswer = doCalculation(numOne,numTwo,multiplier);

    document.getElementById("answer").value = theAnswer;

  } else {

    document.getElementById("answer").value = "";

  }



  return false;

}



function doTheMath() {

  var numOne = document.getElementById("number1").value;
  var numTwo = document.getElementById("number2").value;
  var multiplier = document.getElementById("sign").value;

  if(numOne != "" && numTwo != "" && multiplier != "") {

    document.getElementById("answer2").value = doCalculation(numOne,numTwo,multiplier);

  } else {

    document.getElementById("answer2").value = "";

  }

}



function doCalculation(numOne,numTwo,multiplier) {

    numOne = parseInt(numOne);
    numTwo = parseInt(numTwo);
    var stringVal = "";

    switch(multiplier) {

      case "+":
	stringVal = numOne + numTwo;
	break;

      case "-":
	stringVal = numOne - numTwo;
	break;

      case "*":
	stringVal = numOne * numTwo;
	break;

      case "/":
	stringVal = numOne / numTwo;
	break;

      default:
	stringVal = "An unknown error has occured";
	break;

    } 

    return stringVal

}



function resetForm() {

  document.getElementById("numOne").className = "";
  document.getElementById("numOne").parentNode.className = "";

  document.getElementById("numTwo").className = "";
  document.getElementById("numTwo").parentNode.className = "";

  document.getElementById("multiplier").className = "";
  document.getElementById("multiplier").parentNode.className = "";

}
