function handleData(f)
{
     var errormsg = "";	
     var msg = "";
     var in_age = 0;
     var in_resting_heart_rate = 0;		
     var predicted_max_heart_rate = 0;
     var heart_rate_reserve = 0;
     var beats_per_minute_60 = 0;
     var beats_per_ten_second_count_60 = 0;
     var beats_per_minute_80 = 0;
     var beats_per_ten_second_count_80 = 0;

     for (var i = 0; i < f.length; i++)
     {
	  var d = f.elements[i];
	  // field must be numeric
	  if (d.name == "age")
	  { 
	      if (!numericCheck(d.value)) 
	      {
	          errormsg += d.name + " must be numeric!\n";
	          d.focus();
	          alert(errormsg);
	          return false;
	      }
              else
	      {	
		  in_age = parseInt(d.value);
	      }
  	  }
	  else 
	  // field must be numeric
	  if (d.name == "resting_heart_rate")
	  { 
	      if (!numericCheck(d.value)) 
	      {
	          errormsg += d.name + " must be numeric!\n";
	          d.focus();
	          alert(errormsg);
	          return false;
	      }
              else
	      {
		  in_resting_heart_rate = parseInt(d.value);
	      }	
  	  }
     }	
	  
     predicted_max_heart_rate = (220 - in_age);
     heart_rate_reserve =
	(predicted_max_heart_rate - in_resting_heart_rate);
     beats_per_minute_60 = 
	((heart_rate_reserve * .60) + in_resting_heart_rate);
     beats_per_ten_second_count_60 = (beats_per_minute_60 / 6);
     beats_per_minute_80 = 
   	((heart_rate_reserve * .80) + in_resting_heart_rate);
     beats_per_ten_second_count_80 = (beats_per_minute_80 / 6);
     
     msg += "----------------------------------------------------\n";
     msg += "Your Heart Rate Calculations are : \n"; 
     msg += "----------------------------------------------------\n"; 
     msg += "Predicted maximum heart rate : " + predicted_max_heart_rate + "\n"; 
     msg += "Heart rate reserve : " + heart_rate_reserve + "\n"; 
     msg += "Beats per minute for 60% level : " + beats_per_minute_60 + "\n"; 
     msg += "Beats at 10 second count 60 % : " + beats_per_ten_second_count_60 + "\n"; 
     msg += "Beats per minute for 80% level : " + beats_per_minute_80 + "\n";  
     msg += "Beats at 10 second count 80 % : " + beats_per_ten_second_count_80 + "\n";	  
     //alert(msg);
     document.myform.maxrate.value = Math.round(predicted_max_heart_rate);
     document.myform.bpm60.value = Math.round(beats_per_minute_60);
     document.myform.bpm10s60.value = Math.round(beats_per_ten_second_count_60);
     document.myform.bpm80.value = Math.round(beats_per_minute_80);
     document.myform.bpm10s80.value = Math.round(beats_per_ten_second_count_80);
     return true;
}
	
//  check numeric function
//  return false if not numeric
function numericCheck(num) 
{ 
    var v = parseInt(num);	
    if (isNaN(v) || (v < 1) || (v > 999))
    {	
	return false;
    }
    else
    {	
	return true;
    }	
}	   
