function validate(form){
  alertmsg="";

  form.period_contribution.value=stripCharsInBag(form.period_contribution.value,"$,");
  period_contribution=1*form.period_contribution.value;
  pay_periods=form.pay_periods[form.pay_periods.selectedIndex].value;
  contribution=period_contribution * pay_periods;

  if ((1*form.age.value < 16) || (1*form.age.value > 120))  
  	  {alertmsg=alertmsg + "Age is invalid.\n\n";}
  if ((contribution < 50) || (contribution > 5000))  
  	  {alertmsg=alertmsg + "Contribution amount is invalid. You can contribute between $50 and $5,000 into the account each year.\n\n";}  
  if ((form.service.value=="") || (1*form.service.value < 0))  
  	  {alertmsg=alertmsg + "Length of service is invalid.\n\n";}
  if (form.age_retirement.value<=form.age.value)  
  	  {alertmsg=alertmsg + "Age at retirement is invalid. Please enter a retirement age greater than your current age.\n\n";}
  if (alertmsg!="") 
      {
	  alertmsg="There exists problems in your input.  Please correct and retry.\n\n" + alertmsg;
	  alert(alertmsg);
	  return false;
	  }
  return true;
}

function ToDollarsAndCents(n) {
          var s = "" + Math.round(n);
	  var charcount = 0;
	  var t = "";
	  var tt="";
	  for (var i=s.length-1; i >-1; i--)
		{var t = s.substring(i,i+1);
		 tt = t + tt;
		 charcount++;
		 if (charcount == 3 && i>0) {tt = "," + tt; charcount = 0;}
		}
return("$" + tt)}

function footnote(){
			if (_group_code=="ACTVST" || _group_code=="ACTNB2" || _group_code=="ACTUB2")
			    {
				document.getElementById('footnotesymbol').innerHTML = '*';
				document.getElementById('footnote').innerHTML = '*The $300 per year PSEG contribution is included if eligible.';
				}
}


function calculate(form){
	if (validate(form))  
	   {
			form.period_contribution.value=stripCharsInBag(form.period_contribution.value,"$,");
			form.balance.value=stripCharsInBag(form.balance.value,"$,");
			balance=1*form.balance.value;
	   		age=1*form.age.value;

			period_contribution=1*form.period_contribution.value;
			pay_periods=form.pay_periods[form.pay_periods.selectedIndex].value;

			contribution=period_contribution * pay_periods;
			service=1*form.service.value;
			age=1*form.age.value;
			age_retirement=form.age_retirement.value;
			rate=0.02466;

			monthly_contrib=contribution/12;
			monthly_rate = rate/12;


			if (_group_code=="ACTVST" || _group_code=="ACTNB2" || _group_code=="ACTUB2")
			    {b2000="yes";}
			else
			    {b2000="no";}

		 	for (i=age; i<age_retirement; i++)
				{
				  if (i>55 && service>4 && b2000=="yes")
					{
					 pseg_contrib=300;
					}	
				  else 
					{
					pseg_contrib=0;
					}
				  if (service>25)
					{
					 pseg_contrib=pseg_contrib+75;
					}

				  for (ii=1; ii<=12; ii++)
					{
					  if ((i==age) && (ii==1))
					     {
					      tally=monthly_contrib + pseg_contrib + balance  ;
					     } 
					  else if (ii==1)
					     {
					      tally = tally * (1+monthly_rate) + monthly_contrib + pseg_contrib;
					     }
					  else 
					     {
					      tally = tally * (1+monthly_rate) + monthly_contrib;
					     }
					}
				service++;
				}
	   form.result.value=ToDollarsAndCents(tally);
	   }
}
