function checkNumber(input, min, max, msg)
{
    msg = msg + " field has invalid data: " + input.value;
    var str = input.value;
    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1)
        if ((ch < "0" || "9" < ch) && ch != '.') {
            alert(msg);
            return false;
        }
    }
    var num = 0 + str
    if (num < min || max < num) {
        alert(msg + " not in range [" + min + ".." + max + "]");
        return false;
    }
    input.value = str;
    return true;
}

function computeGradenum2(input)
{
	   var gradenum=0;
    var thegrade=input;
   if (thegrade=="A+" || thegrade=="a+" ) gradenum=4;
   if (thegrade=="A"  || thegrade=="a") gradenum=4;
  if (thegrade=="A-" || thegrade=="a-") gradenum=3.7;
  if (thegrade=="B+"  || thegrade=="b+") gradenum=3.3;
  if (thegrade=="B" || thegrade=="b") gradenum=3;
  if (thegrade=="B-" || thegrade=="b-") gradenum=2.7;
  if (thegrade=="C+"  || thegrade=="c+") gradenum=2.3;
  if (thegrade=="C"  || thegrade=="c") gradenum=2;
  if (thegrade=="C-"  || thegrade=="c-") gradenum=1.7;
  if (thegrade=="D+"  || thegrade=="d+") gradenum=1.3;
  if (thegrade=="D" || thegrade=="d") gradenum=1;
  if (thegrade=="D-"  || thegrade=="d-") gradenum=.7;
  if (thegrade=="F+" || thegrade=="f+" ) gradenum=0;
  if (thegrade=="F" || thegrade=="f" ) gradenum=0;
  if (thegrade=="F-" || thegrade=="f-") gradenum=0;
 
  if (input>=0 && input<=4) gradenum=input;
   return gradenum;
     }

function computeField(input)
{
    if (input.value != null && input.value.length != 0)
        input.value = "" + eval(input.value);
        computeForm(input.form);
}


function computeFormGPA(form)
{

    if ((form.units.value == null || form.units.value.length == 0)) {
        return;
    }
    
    if ((form.gradepoints.value == null || form.gradepoints.value.length == 0)) {
        return;
    }
   form.grade.value = form.gradepoints.value/ form.units.value;
}


function computeFormGPA1(form)
{
	//  document.forms[3].gradepoints.value=1;
   // document.forms[3].units.value=1;
    //  document.forms[3].grade.value=1;
	var numGP=parseFloat(document.current1.gradepoints.value) + parseFloat(document.forms[6].gradepoints.value);
	var numU=parseFloat(document.current1.units.value) + parseFloat(document.forms[6].units.value);
	
	form.units.value=numU ;
	form.gradepoints.value=numGP;
	form.grade.value = (numGP/numU)+.000000001;
	  
}



function computeForm(form)
{

    if ((form.units.value == null || form.units.value.length == 0)) {
        return;
    }
    if (!checkNumber(form.units, .5, 160, "Units")) {
        form.gradepoints.value = "Invalid";
        return;
    }
//	if (!checkNumber(form.grade, 0, 4, "GPA")) {
   //   form.grade.value = "Invalid";
   //    return;
  //  }
    if ((form.grade.value == null || form.grade.value.length == 0)) {
        return;
    }
    form.gradepoints.value = ((computeGradenum2(form.grade.value)) *
form.units.value);
}

function computesumForm(form)
{
      document.forms[6].gradepoints.value=0;
      document.forms[6].units.value=0;
      document.forms[6].grade.value=0;

     for(var i=0; i<6; i++) {
        if (!(document.forms[i].units.value == null || document.forms[i].units.value.length == 0)) {
           if (!(document.forms[i].units.value == null || document.forms[i].units.value.length == 0)) {
                var temp=computeField(document.forms[i].gradepoints);
                var temp=computeField(document.forms[i].units);
                var temp=computeForm(document.forms[i]);
           if (!(document.forms[i].gradepoints.value == 0))
           document.forms[6].gradepoints.value = eval(document.forms[6].gradepoints.value)+(eval(document.forms[i].gradepoints.value));    

           if (!(document.forms[i].units.value == 0))
           document.forms[6].units.value = eval(document.forms[6].units.value)+(eval(document.forms[i].units.value));    
           }
      }
   }
if (!(document.forms[6].units.value == 0))
document.forms[6].grade.value=(((eval(document.forms[6].gradepoints.value)/(eval(document.forms[6].units.value))+.000000001)));
  
}
function clearForm(form)
{
    form.units.value = "";
    form.grade.value = "";
    form.gradepoints.value = "";
}

function clearFormT(form)
{
for (var i = 0; i <= 6; i++)
      {
        document.forms[i].units.value = "";
        document.forms[i].grade.value = "";
        document.forms[i].gradepoints.value = "";
      }

    document.current1.units.value = "";
    document.current1.grade.value = "";
    document.current1.gradepoints.value = "";
    document.current2.units.value = "";
    document.current2.grade.value = "";
    document.current2.gradepoints.value = "";
}

