<!--
function calc() 
{
	var moderateWalkSpeedKm		= 0.001525;
	var moderateWalkSpeedMile	= 0.000947590775;
	var walkSpeedDiffKm			= 15; // seconds
	var walkSpeedDiffMile		= 25; // seconds
	var m2kmConversion 			= 1.609344;
	var km2mConversion			= 0.62137119;
	
    var hours					= eval(document.paceform.hrs.value);
    var minutes 				= eval(document.paceform.min.value);
    var seconds 				= eval(document.paceform.sec.value);
    var units 					= eval(document.paceform.units[document.paceform.units.selectedIndex].value);
    var dist 					= eval(document.paceform.distance.value) * units;
	// in minutes
    var time 					= hours * 60 + minutes + seconds/60;
	var timeSeconds				= hours * 60 * 60 + minutes * 60 + seconds;
	if (!dist) { alert ("Please enter a distance and click calculate."); return 1; }
	if (!time) { alert ("Please enter a time and click calculate."); return 1; }

	if (document.paceform.walk_adjusted[0].checked) {
		var paceSecPerKm = getTimeAt(1, dist, moderateWalkSpeedKm, timeSeconds, Math.round(timeSeconds / dist), walkSpeedDiffKm);
		var totalMiles = dist / m2kmConversion;
		var paceSecPerMile = getTimeAt(1, totalMiles, moderateWalkSpeedMile, timeSeconds, Math.round(timeSeconds / totalMiles), walkSpeedDiffMile);
		
		document.paceform.mph.value = Math.round(1 / paceSecPerMile * 60 * 60 * 100) / 100;
		document.paceform.kph.value = Math.round(1 / paceSecPerKm * 60 * 60 * 100) / 100;
		document.paceform.mps.value = Math.round(1000 / paceSecPerKm * 100) / 100;
		document.paceform.minmile.value = showTime(paceSecPerMile);
		document.paceform.minkm.value = showTime(paceSecPerKm);
	}
	else {
		document.paceform.mph.value = (Math.round((dist/m2kmConversion)/(time/60)*100)/100);
		document.paceform.kph.value = (Math.round(dist/(time/60)*100)/100);
		document.paceform.mps.value = (Math.round((dist*1000)/(time*60)*100)/100);
		document.paceform.minmile.value = PaceCalc(time, dist/m2kmConversion);
		document.paceform.minkm.value = PaceCalc(time, dist);
	}
}

function PaceCalc(t, d) 
{
	var pace = t/d;
	var phour = "";
	
	var pmin = Math.floor(pace);
	if (pmin > 60) {
		phour = Math.floor(pmin / 60);
		pmin -= phour * 60;
		phour = phour + ":";
	}
	var psec = Math.round((pace - pmin) * 60);
	if (psec == 60) {
		psec = 0;
		pmin++;
	}
	if (psec < 10) 
		psec = "0" + psec;
	if (!psec) 
		psec="00";
	return ("" + phour + pmin + ":" + psec);
}

function getTimeAt(distanceToFindTimeAt, totalDistance, walkingSpeed, totalTimeTaken, racePaceSeconds, walkAdjustedDiff)
{
	// constants
	// run 10 minutes then walk 1 minute
	var runningTime = 10 * 60;
	var walkingTime = 60;

	var timeTakenToCompleteOneInterval = walkingTime + runningTime;
	var totalNumberOfIntervals = Math.floor(totalTimeTaken / timeTakenToCompleteOneInterval);
	var timeLeftOver = totalTimeTaken - (totalNumberOfIntervals * timeTakenToCompleteOneInterval);
	var totalWalkingTime = totalNumberOfIntervals * walkingTime;
	var extraWalkingTime = timeLeftOver - runningTime;

	if (extraWalkingTime > 0)
		totalWalkingTime += extraWalkingTime;

	var totalRunningTime = totalTimeTaken - totalWalkingTime;

	var distanceCoveredWhileWalking = walkingSpeed * totalWalkingTime;
	var distanceCoveredWhileRunning = totalDistance - distanceCoveredWhileWalking;

	var runningSpeed = 0;
	if (totalRunningTime)
		runningSpeed = distanceCoveredWhileRunning / totalRunningTime;

	var distanceWalkedInOneInterval = walkingSpeed * walkingTime;
	var distanceRunInOneInterval = runningSpeed * runningTime;

	var totalDistanceCoveredInOneInterval = distanceWalkedInOneInterval + distanceRunInOneInterval;

	// find number of intervals needed for this distance
	var numberOfIntervalsRequired = Math.floor(distanceToFindTimeAt / totalDistanceCoveredInOneInterval);

	var distanceLeft = distanceToFindTimeAt - (numberOfIntervalsRequired * totalDistanceCoveredInOneInterval);
	
	var extraTimeRequired = 0;
	var totalTimeRequired = 0;
	if (numberOfIntervalsRequired > 0) {
		// hack to adjust for finishing times where the first interval includes walking - we want pure running time for the calculators
		// use Race Pace - 25 secs for miles, Race Pace - 15 secs for kms
		totalTimeRequired = racePaceSeconds - walkAdjustedDiff; 
	}
	else if (distanceLeft <= distanceRunInOneInterval) {
		if (runningSpeed > 0)
			extraTimeRequired = distanceLeft / runningSpeed;
		totalTimeRequired = numberOfIntervalsRequired * timeTakenToCompleteOneInterval + extraTimeRequired;
	} 
	else {
		distanceLeft -= distanceRunInOneInterval;
		totalTimeRequired = runningTime + distanceLeft / runningSpeed;
	}
	
	return totalTimeRequired;
}

function showTime(sec) 
{
	var hour = Math.floor(sec / 3600);
	sec	-= hour * 3600;
	var min	= Math.floor(sec / 60);
	sec	-= min * 60;
	sec	= Math.round(sec);
	if (sec == 60) {
		sec = 0;
		min++;
	}
	var fullTime = "";
	if (hour > 0)
		fullTime = hour + ":";
	if (min > 0) {
		if (fullTime == "")
			fullTime = min + ":";
		else
			fullTime += prefixZero(min) + ":";
	}
	fullTime += prefixZero(sec);

	return fullTime;
}

function prefixZero(num) 
{
	if (num < 10)
		return "0" + num;
	else
		return "" + num;
}

//  -->

