function doPaceCalculator()
{
  var in_time, in_distance;
  var in_hh, in_mm, in_ss;
  var total_minutes;
  var target_pace, target_pace_mm, target_pace_ss;
  var s;

  document.pace_calculator.f_pace.value = "";

  in_time = document.pace_calculator.f_time.value;

  var m = in_time.match(/((\d+):)?(\d+):(\d+)/);
  if (m != null)
  {
    if ( m[2] != null && m[2]!="" )
    {
      in_hh = parseInt(m[2]);
    }
    else
    {
      in_hh = 0;
    }
    in_mm = parseInt(m[3]);
    in_ss = parseInt(m[4]);
  }
  else
  {
    alert("Cannot understand the target time");
    return;
  }

  in_distance = parseFloat(document.pace_calculator.f_distance.value);
  if ( ! (in_distance > 0) )
  {
    alert("Invalid distance.");
    return;
  }


  total_minutes = (in_hh * 60) + in_mm + (in_ss / 60);
//alert("total minutes = "+ total_minutes);
  target_pace = total_minutes / in_distance;

  target_pace_mm = Math.floor(target_pace);
  target_pace_ss = (target_pace - target_pace_mm)*60;
  // round up the seconds
  target_pace_ss = Math.ceil(target_pace_ss);


  s = target_pace_ss.toString();
  if ( s.length < 2 )
  {
    s = "0" + s;
  }

  s = target_pace_mm.toString() + ":" + s;

  document.pace_calculator.f_pace.value = s;
}

