function clear(f)
{
	var t = f.elements;
	for (var i=0; i<f.length; i++) {
		var e = f.elements[i];
		if (e.type == "text") {
			e.value="";
		}
	}
	return false;
}

function calc(f)
{
	var km_factor = .621371;
	var pace_factor = Math.log(2.1) / Math.log(2);
	var t = f.elements;
	var kdm = new Number(0);
	var kds = new Number(0);
	var pdm = new Number(0);
	var t1=0;
	var p1=0;
	for (var i=0; i<f.length; i++) {
		var e = f.elements[i];
		if (e.name=="knowndist") {
			kdm = 1 * e.value;
			if (kdm <= 0)
			{
				alert("Known Distance is Invalid");
				return false;
			}

		}

		if ((e.name=="knownunit") && (e.value == "Miles") && (e.checked == false)) {
			kdm = Math.round(1000 * km_factor * kdm) / 1000;
		}

		if (e.name=="projdist") {
			pdm = 1 * e.value;
			if (pdm <= 0)
			{
				alert("Projected Distance is Invalid");
				return false;
			}
		}


		if ((e.name=="projunit") && (e.value == "Miles") && (e.checked == false)) {
			pdm = Math.round(1000 * km_factor * pdm) / 1000;
		}

		if (e.name=="projhr") {
			t1 = kds * Math.pow(pdm / kdm, pace_factor);  // time in seconds
			t1 = Math.round(1000 * t1) / 1000;
			p1 = t1 / pdm;
			p1 = Math.round(1000 * p1) / 1000;
			e.value = "";
			if (t1 >= 3600) {
				e.value=Math.floor(t1/3600);
			}
		}

		if (e.name=="projmin") {
			e.value=Math.floor((t1 / 60) % 60);
			if ((t1 >= 3600) && (e.value < 10)) {
				e.value = "0" + e.value;
			}
		}

		if (e.name=="projsec") {
			e.value=Math.floor(t1 % 60);
			if (e.value < 10) {
				e.value = "0" + e.value;
			}
		}

		if (e.name=="projpmin") {
			e.value=Math.floor((p1 / 60) % 60);
		}

		if (e.name=="projpsec") {
			e.value=Math.floor(p1 % 60);
			if (e.value < 10) {
				e.value = "0" + e.value;
			}
		}
		if (e.name=="knownhr") {
			if ((e.value < 0) || (e.value != Math.floor(e.value)))
			{
				alert("Known Time (hours) is Invalid");
				return false;
			}

			kds = kds + 3600 * e.value;
		}
		if (e.name=="knownmin") {
			if ((e.value < 0) || (e.value >= 60) || (e.value != Math.floor(e.value)))
			{
				alert("Known Time (minutes) is Invalid");
				return false;
			}

			kds = kds + 60 * e.value;
		}
		if (e.name=="knownsec") {
			if ((e.value < 0) || (e.value >= 60) )
			{
				alert("Known Time (seconds) is Invalid");
				return false;
			}

			kds = kds + 1 * e.value;
		}
	}
	return false;
}