 var MILE2KM = 1.609344;

 function getTimeInHours(hr, min, sec)
 {
 	var h = 0;
 	var m = 0;
 	var s = 0;
 	if(hr.length > 0)  h = parseFloat(hr);
 	if(min.length > 0) m = parseFloat(min);
 	if(sec.length > 0) s = parseFloat(sec);

 	return h + m/60 + s/3600;
}

function calculatePace(obj)
{
	var timeHours = obj.tiTimeHours.value;

	var timeMinutes = obj.tiTimeMinutes.value;
	var timeSeconds = obj.tiTimeSeconds.value;
	var distance = obj.tiDistance.value;
	var paceHours = obj.tiPaceHours.value;
	var paceMinutes = obj.tiPaceMinutes.value;
	var paceSeconds = obj.tiPaceSeconds.value;


	//time and pace entered, calculate distance
	if( (timeHours.length > 0 || timeMinutes.length > 0 || timeSeconds.length > 0) && (paceHours.length > 0 || paceMinutes.length > 0 || paceSeconds.length) && distance.length == 0)
	{
		var timeInHours = getTimeInHours(timeHours, timeMinutes, timeSeconds);
		var paceInHours = getTimeInHours(paceHours, paceMinutes, paceSeconds);

		var distanceInMiles = timeInHours/paceInHours;

		if(obj.cbPace.value != obj.cbDistance.value) {

			if(obj.cbPace.value == "kilometers") {
				distanceInMiles *= 1/MILE2KM;
			} else {
				distanceInMiles *= MILE2KM;
			}
		}

		obj.tiDistance.value = distanceInMiles.toFixed(2);

	}
	//time and distance entered
	else if ( (timeHours.length > 0 || timeMinutes.length > 0 || timeSeconds.length > 0) && distance.length > 0 && (paceHours.length + paceMinutes.length + paceSeconds.length == 0))
	{
		var timeInHours = getTimeInHours(timeHours, timeMinutes, timeSeconds);
		if(obj.cbDistance.value != obj.cbPace.value) {
			if(obj.cbDistance.value == "kilometers") {
				distance *= 1/MILE2KM;
			} else {
				distance *= MILE2KM;
			}
		}
		var paceInHours = timeInHours/distance;
		var hours =  Math.floor(paceInHours);
		var minutes = Math.floor(((paceInHours-hours) * 60).toFixed(2));
		var seconds = Math.floor(((((paceInHours-hours) * 60).toFixed(2) - minutes)*60).toFixed(2));
		if (seconds < 10) { seconds = "0" + seconds; }
		obj.tiPaceHours.value = hours;
		obj.tiPaceMinutes.value = minutes;
		obj.tiPaceSeconds.value = seconds;

	}
	//distance and pace entered
	else if ( (paceHours.length > 0 || paceMinutes.length > 0 || paceSeconds.length) && distance.length > 0 && (timeHours.length + timeMinutes.length + timeSeconds.length == 0))
	{
		var paceInHours = getTimeInHours(paceHours, paceMinutes, paceSeconds);
		if(obj.cbDistance.value != obj.cbPace.value) {
			if(obj.cbDistance.value == "kilometers") {
				distance *= 1/MILE2KM;
			} else {
				distance *= MILE2KM;
			}
		}

		var timeInHours = distance*paceInHours;
		var hours =  Math.floor(timeInHours);
		var minutes = Math.floor(((timeInHours-hours) * 60).toFixed(2));
		var seconds = Math.floor(((((timeInHours-hours) * 60).toFixed(2) - minutes)*60).toFixed(2));
		if (seconds < 10) { seconds = "0" + seconds; }
		obj.tiTimeHours.value = hours;
		obj.tiTimeMinutes.value = minutes;
		obj.tiTimeSeconds.value = seconds;


	}

	else
	{
		alert("two entries");
	}

}


function calculateSpeed(obj)
{
	var timeHours = obj.tiTimeHours.value;
	var timeMinutes = obj.tiTimeMinutes.value;
	var timeSeconds = obj.tiTimeSeconds.value;
	var distance = obj.tiDistance.value;
	var speed = obj.tiSpeed.value;
	var speedUnit = obj.cbSpeed.value;

	//time and speed entered, calculate distance
	if( (timeHours.length > 0 || timeMinutes.length > 0 || timeSeconds.length > 0) && (speed.length > 0) && distance.length == 0)
	{
		var timeInHours = getTimeInHours(timeHours, timeMinutes, timeSeconds);

		var distanceInMiles = timeInHours*speed;

		if(obj.cbSpeed.value != obj.cbDistance.value) {

			if(obj.cbSpeed.value == "kilometers") {
				distanceInMiles *= 1/MILE2KM;
			} else {
				distanceInMiles *= MILE2KM;
			}
		}

		obj.tiDistance.value = distanceInMiles.toFixed(2);

	}
	//time and distance entered, calculate speed
	else if ( (timeHours.length > 0 || timeMinutes.length > 0 || timeSeconds.length > 0) && distance.length > 0 && (speed.length == 0))
	{
		var timeInHours = getTimeInHours(timeHours, timeMinutes, timeSeconds);
		if(obj.cbDistance.value != obj.cbSpeed.value) {
			if(obj.cbDistance.value == "kilometers") {
				distance *= 1/MILE2KM;
			} else {
				distance *= MILE2KM;
			}
		}

		obj.tiSpeed.value = (distance/timeInHours).toFixed(2);

	}
	//distance and speed entered, calculate time
	else if ( (speed.length > 0) && distance.length > 0 && (timeHours.length + timeMinutes.length + timeSeconds.length == 0))
	{
		if(obj.cbDistance.value != obj.cbSpeed.value) {
			if(obj.cbDistance.value == "kilometers") {
				distance *= 1/MILE2KM;
			} else {
				distance *= MILE2KM;
			}
		}

		var timeInHours = distance/speed;
		var hours =  Math.floor(timeInHours);
		var minutes = Math.floor(((timeInHours-hours) * 60).toFixed(2));
		var seconds = Math.floor(((((timeInHours-hours) * 60).toFixed(2) - minutes)*60).toFixed(2));
		if (seconds < 10) { seconds = "0" + seconds; }
		obj.tiTimeHours.value = hours;
		obj.tiTimeMinutes.value = minutes;
		obj.tiTimeSeconds.value = seconds;


	}

	else
	{
		alert("two entries");
	}

}