<!--
// Cost of College Calculation Spreadsheet v1.1
// Author: Brian O'Keefe
// Email: okeefeb@canisius.edu
// This code may be used or modified freely as long as the appropriate credit is given.
// This is the second release, version 1.0 was unknowingly incompatible with anything but Netscape 4
// MODIFIED: 05.15.2000 By: Eric Padilla
// The calculator now rounds off to two decimal places.
// Email: padillae@iit.edu
// Thank you Netscape for the next two lines
var userAgent = navigator.appName + " " + navigator.appVersion;
var agentInfo = userAgent.substring(0, 12);
// ----- Decimal Function by Eric Padilla ----------------------------------------------------------------
function twoDecimal()
{
amt = ((document.tcalc.tuitionSpring.value*1 + document.tcalc.roomboardSpring.value*1 + document.tcalc.insuranceSpring.value*1 + document.tcalc.activfeeSpring.value*1 + document.tcalc.planfeeSpring.value*1 + document.tcalc.miscSpring.value*1) - (document.tcalc.prevpaySpring.value*1 + document.tcalc.finaidSpring.value*1));
document.tcalc.amtp.value = amt/3;
document.tcalc.amtowe.value = amt;

        if (document.tcalc.amtp.value.indexOf(".") != -1)
            {
            dotpos = eval(document.tcalc.amtp.value.indexOf("."));
            dec = document.tcalc.amtp.value.substring(dotpos+1,dotpos+4);
            document.tcalc.decv.value = dec;
            intgr = document.tcalc.amtp.value.substring(0,dotpos);
            document.tcalc.intgrv.value = intgr;
            declen = dec.length;
            at0v = document.tcalc.decv.value.charAt(0);
            at1v = document.tcalc.decv.value.charAt(1);
            at2v = document.tcalc.decv.value.charAt(2);
            if (declen*1 >= 2)
                {
                if (at2v*1 >= 5)
                    {
                    atOne = at1v;
                    atOneup = atOne*1+1*1;
                    newdec = at0v+atOneup;
                    fullamt = intgr+"."+newdec;
                    return document.tcalc.monthly.value = fullamt;
                    return putValues();
                    }
                else
                    {
                    fullamt = intgr+"."+at0v+at1v;
                    return document.tcalc.monthly.value = fullamt;
                    }
                }
            else if (declen*1 <= 2)
                {
                document.tcalc.monthly.value = amt/3;
                }
            }
        else
            {
            document.tcalc.monthly.value = amt/3;
            }
}
// ------------------------------------------------------------------
function validateData(theNum)
{
    var str=theNum;
    if (agentInfo == "Netscape 4.0")
        {
        if (document.tcalc.planfeeSpring.value != 35.00)
            {
            alert("The $35.00 fee to start the plan is mandatory!");
            return document.tcalc.planfeeSpring.value = 35.00;
            }
        var correctedNum = 0;
        var decimalPlace = 0;
        var addOn = "0";
        var isDecimal = false;
        for (var i=0; i < str.length; i++)
            {
            var ch=str.substring(i, i+1);
            if (((ch >= "0") && (ch <= "9")) && (!isDecimal))
                {
                correctedNum *= 10;
                correctedNum += ch * 1;
                }
            else if (((ch >= "0") && (ch <= "9")) && (isDecimal))
                {
                addOn += ch;
                ++decimalPlace;
                }
            else if (ch == ".") {isDecimal = true;}
            else if ((ch != ",") && (ch != "$")) {alert("The invalid character " + ch + " was detected "+"and ignored.");}
            }
        if (decimalPlace > 0)
            {
            correctedNum += addOn / pow(decimalPlace);
            return correctedNum;
            }
        }
    else
        {
        if (document.tcalc.planfeeSpring.value != 35.00)
            {
            alert("The $35.00 fee to start the plan is mandatory!");
            return document.tcalc.planfeeSpring.value = 35.00;
            }
        for (var z=0; z < str.length; z++)
            {
            var ch=str.substring(z, z+1);
            if (((ch < "0") || (ch > "9")) && (ch != "."))
            return false;
            }
        return true;
        }
}
function calc(input)
{
 if (agentInfo == "Netscape 4.0")
 {
     input.value = validateData(input.value);
     twoDecimal();
 }
 else
 {
     if (validateData(input.value))
      {
      twoDecimal();
      }
      else
      {
       alert("Please do not use any characters besides numbers on"+" this line. Your entry will be erased.");
       input.value = 0;
     }
 }

}
function pow(exp)
{
 var returnTotal = 10;
 for (var j = 1; j < exp; j++)
     returnTotal *= 10;
 return returnTotal;
}
// Put and Clear Values in Form Fields ------------------------------
function putValues()
{
     document.ninemp.S_tuitionSpring.value = document.tcalc.tuitionSpring.value;
     document.ninemp.S_roomboardSpring.value = document.tcalc.roomboardSpring.value;
     document.ninemp.S_insuranceSpring.value = document.tcalc.insuranceSpring.value;
     document.ninemp.S_activfeeSpring.value = document.tcalc.activfeeSpring.value;
     document.ninemp.S_planfeeSpring.value = document.tcalc.planfeeSpring.value;
     document.ninemp.S_miscSpring.value = document.tcalc.miscSpring.value;
     document.ninemp.S_prevpaySpring.value = document.tcalc.prevpaySpring.value;
     document.ninemp.S_finaidSpring.value = document.tcalc.finaidSpring.value;
     document.ninemp.mamount.value = document.tcalc.monthly.value;
     document.ninemp.S_amtowe.value = document.tcalc.amtowe.value;
}
function clearValues()
{
     document.ninemp.S_tuitionSpring.value = 0;
     document.ninemp.S_roomboardSpring.value = 0;
     document.ninemp.S_insuranceSpring.value = 0;
     document.ninemp.S_activfeeSpring.value = 0;
     document.ninemp.S_miscSpring.value = 0;
     document.ninemp.S_prevpaySpring.value = 0;
     document.ninemp.S_finaidSpring.value = 0;
     document.ninemp.mamount.value = 0;
}
//-->
