function validate()
{
    if (!isNaturalNumber(document.my.age, " for the Your Child Age."))
    {
        return false;
    }

    if (!isValueInRange(document.my.period, 18, 100, " for the Age Your Child will go to college."))
    {
        return false;
    }

    if (!isNaturalNumber(document.my.dur, " for the Duration of College Education."))
    {
        return false;
    }

    if (!isNaturalNumber(document.my.a, " for the Education Expenses."))
    {
        return false;
    }

    if (!isNaturalNumber(document.my.b, " for the Living Expenses."))
    {
        return false;
    }

    if (!isNaturalNumber(document.my.c, " for the Other Expenses."))
    {
        return false;
    }

    if (!isNaturalNumber(document.my.ir, " for the Assumed inflation rate."))
    {
        return false;
    }

    if (!isValueInRange(document.my.ir, 1, 100, " for the Assumed inflation rate."))
    {
        return false;
    }
    
	if (parseFloat(document.my.period.value) <= parseFloat(document.my.age.value))
	{
    	alert('Child age going to college must be greater than child age today');
    	document.my.period.value = "";
    	document.my.period.focus();
    	return false;
	}

    if (!isNaturalNumber(document.my.cs, " for the Current Savings."))
    {
        return false;
    }

    if (!isNaturalNumber(document.my.sr, " for the College Savings Interest rate."))
    {
        return false;
    }
    if (!isValueInRange(document.my.sr, 1, 100, " for the Savings Interest rate."))
    {
        return false;
    }
	if (document.my.freq.options[document.my.freq.selectedIndex].value == "All")
	{
    	alert('Frequency of Contribution must be selected');
    	document.my.freq.focus();
    	return false;
	}

	return true;
}

function calc()
{
    var age = parseFloat(document.my.age.value);
    var period = parseFloat(document.my.period.value);
    var diff = (period - age);
    var dur = parseFloat(document.my.dur.value);
    var a = parseFloat(document.my.a.value);
    var b = parseFloat(document.my.b.value);
    var c = parseFloat(document.my.c.value);
    var ir = parseFloat(document.my.ir.value) / 100;
    cpy = parseFloat(a + b + c);
    tc = parseFloat(cpy * dur);
    need = parseFloat(tc * (Math.pow((1 + ir), diff)));
    document.my.diff.value = round(diff, 2);
    document.my.need.value = round(need, 2);
    var freq = parseFloat(document.my.freq.options[document.my.freq.selectedIndex].value);
    var goal = parseFloat(document.my.need.value);
    var cs = parseFloat(document.my.cs.value);
    var y = parseFloat(document.my.diff.value);
    var sr = parseFloat(document.my.sr.value) / 100;
    var temp = sr / freq;
    var es = parseFloat(cs * Math.pow(1 + temp, y * freq));

    var num = (goal - es) * temp;
    var den = Math.pow(1 + temp, y * freq) - 1;
    var cp = num / den;

    document.my.cp.value = round(cp, 2);
    document.my.y1.value = y;
    if (freq == 12)
    {
        document.my.cd.value = "Month";
    }
    else if (freq == 4)
    {
        document.my.cd.value = "Quarter";
    }
    else if (freq == 2)
    {
        document.my.cd.value = "6 Months";
    }
    else if (freq == 1)
    {
        document.my.cd.value = "Year";
    }
}

function clean()
{
    document.my.age.value = "";
    document.my.period.value = "";
    document.my.dur.value = "";
    document.my.a.value = "";
    document.my.b.value = "";
    document.my.c.value = "";
    document.my.ir.value = "";
    document.my.need.value = "";
    document.my.cs.value = "";
    document.my.cp.value = "";
    document.my.cd.value = "";
    document.my.y1.value = "";
    document.my.sr.value = "";
    document.my.freq.value = "All";
}
