// JavaScript Document

function checkGPA(gpa)
{
 	GPA = parseFloat(gpa);
	
	//alert ("This GPA is not a number: "+isNaN(GPA) +" | " + GPA);
	
	if ( isNaN(GPA) ) 
	{
		alert("The GPA value '"+gpa+"' is not a number.");
		return false;
	}
	else if (GPA < 0 || GPA > 4)
	{
		alert("You must enter a GPA value between 0.00 and 4.00");
		return false;
	}
	else
	{
		return true;
	}

}

function checkSAT(sat)
{
	SAT = parseInt(sat);
	
	//alert ("This SAT is not a number: "+isNaN(SAT) +" | " + SAT);
	
	if ( isNaN(SAT) )
	{
		alert("The SAT value '"+sat+"' is not a number.");
		return false; 
	}
	else if (SAT < 600 || SAT > 1600)
	{
		alert("Please enter an SAT value between 600 and 1600");
		return false;
	}
	else
	{
		//alert(SAT/32);
		return true;
	}
}

function checkACT(act)
{
	ACT = parseInt(act);
	
	//alert ("This ACT is not a number: "+isNaN(ACT) +" | " + ACT);
	
	if ( isNaN(ACT) ) 
	{
		alert("The ACT value '"+act+"' is not a number.");
		return false;
	}
	else if (ACT < 16 || ACT > 36)
	{
		alert("Please enter an ACT value between 16 and 36.");
		return false;
	}
	else
	{
		//alert(ACT*1.4);
		return true;
	}
}

function roundNumber(number, decimal) {
        var rlength = decimal; // The number of decimal places to round to
        var newnumber = Math.round(number*Math.pow(10,rlength))/Math.pow(10,rlength);
        return newnumber;
}

function Validate()
{
	gpa = document.calc.gpa.value;
	sat = document.calc.sat.value;
	act = document.calc.act.value;

	if (!gpa) {
		alert("You must enter your GPA.");
		return false;
	}
	else 
	{
		if (checkGPA(gpa))
		{
			document.calc.gpa.value = GPA;
			calcGPA = GPA*12.5;
			//alert("calcGPA="+calcGPA);
		}
		else
		{
			return false;
		}
	} 
	
	
	if ( !sat && !act ) 
	{
		alert ("You must enter an SAT or ACT score or both.");
		return false;
	}
	else if ( sat && !act ) 
	{
		//alert ("You have an SAT score but no ACT score.")
		if (checkSAT(sat))
		{
			document.calc.sat.value = SAT;
			calcSAT = SAT/32;
			calcACT = 0;
			//alert("calcSAT="+calcSAT+" | calcACT="+calcACT);
		}
		else
		{
			return false;
		}
	}
	else if ( act && !sat ) 
	{
		//alert ("You have an ACT score but no SAT score.")
		if (checkACT(act))
		{
			document.calc.act.value = ACT;
			calcSAT = 0;
			calcACT = ACT*1.4;
			//alert("calcSAT="+calcSAT+" | calcACT="+calcACT);
		}
		else
		{
			return false;
		}
	}
	else
	{
		//alert ("You have both an SAT and ACT score.")
		resultSAT = checkSAT(sat);
		resultACT = checkACT(act);
		
		if (resultSAT && resultACT)
		{
			document.calc.sat.value = SAT;
			document.calc.act.value = ACT;
			calcSAT = SAT/32;
			calcACT = ACT*1.4;
			//alert("calcSAT="+calcSAT+" | calcACT="+calcACT);
		}
		else if (resultSAT)
		{
			document.calc.sat.value = SAT;
			document.calc.act.value = "";
			calcSAT = SAT/32;
			calcACT = 0;
			//alert("calcSAT="+calcSAT+" | calcACT="+calcACT);
		}
		else if (resultACT)
		{
			document.calc.sat.value = "";
			document.calc.act.value = ACT;
			calcSAT = 0;
			calcACT = ACT*1.4;
			//alert("calcSAT="+calcSAT+" | calcACT="+calcACT);
		}
		else
		{
			alert("Both values entered for SAT and ACT were invalid.\nPlease make sure you entered the appropriate values.");
			return false;
		}
	}
	return true;
	

}

function Calc(valid)
{
	//var result = "";
	//alert("Valid="+valid);
	if (valid)
	{
		Clear();
		if (calcSAT > calcACT)
		{
			calcScore = calcGPA + calcSAT;
		}
		else
		{
			calcScore = calcGPA + calcACT;
		}
		calcScore = roundNumber(calcScore,1);
		document.calc.score.value = calcScore;
		//alert("calcScore="+calcScore);
		
		if (calcScore <= 100 && calcScore >= 85)
				result = "Trustee";
		else if (calcScore < 85 && calcScore >= 75)
			result = "Presidential";
		else if (calcScore < 75 && calcScore >= 65)
			result = "Achievement";
		else if (calcScore < 65 && calcScore >= 60)
			result = "Recognition";
		else
			result = "";
			
		switch (result)
		{
			case "Trustee":
				document.getElementById("trustee").style.display = "block";
				document.getElementById("reserve").style.display = "block";
				break;
			case "Presidential":
				document.getElementById("presidential").style.display = "block";
				document.getElementById("reserve").style.display = "block";
				break;
			case "Achievement":
				document.getElementById("achievement").style.display = "block";
				document.getElementById("reserve").style.display = "block";
				break;
			case "Recognition":
				document.getElementById("recognition").style.display = "block";
				document.getElementById("reserve").style.display = "block";
				break;
			default:
				alert("Sorry, you do not qualify for any scholarships at this time.");
		}	
		return false;
	}
	else
	{
		//alert ("Sorry. There was an error in the calculation. Check the numbers you entered or try again at a later time.");
		return false;
	}
	return false;
}

function Clear()
{
	document.getElementById("trustee").style.display = "none";
	document.getElementById("presidential").style.display = "none";
	document.getElementById("achievement").style.display = "none";
	document.getElementById("recognition").style.display = "none";
	document.getElementById("reserve").style.display = "none";
}