// JavaScript Document

var speedMiPerMin  = 0;
var speedKmPerHr  = 0;
var speedMiPerHr  = 0;
var runningTimeMin  = 0;
var totalDistance = 0;
var LapDistMi = 0;
var LapDistMeters  = 0;
var LapTimeMin  = 0;
var theone = 0;

function doPaceCalc() {
		
		//function doPaceCalc() is the main function for calculations
		//alert(document.forms[0].name);
		//alert(document.forms.length + " forms.")
		var NaNFlag = false;  //for flagging non nummeric values
		var totalDistanceMiles = 0;
		var totalDistanceMeters = 0;
		//fill the text boxes with zeros if they are blank

		if (trim(document.frmPaceCalculator.txtRunTimeMin.value) == "") {document.frmPaceCalculator.txtRunTimeMin.value = "0.00";}
		if (trim(document.frmPaceCalculator.txtRunTimeSec.value) == "") {document.frmPaceCalculator.txtRunTimeSec.value = "0.00";}
		if (trim(document.frmPaceCalculator.txtDistanceMi.value) == "") {document.frmPaceCalculator.txtDistanceMi.value = "0.00";}
		if (trim(document.frmPaceCalculator.txtDistanceMeters.value) == "") {document.frmPaceCalculator.txtDistanceMeters.value = "0.00";}

		document.frmPaceCalculator.txtSpeedMiPerHr.value = " ";
		document.frmPaceCalculator.txtSpeedKmPerHr.value = " ";
		//document.frmPaceCalculator.txtDistanceMi.value = " ";
		//document.frmPaceCalculator.txtDistanceMeters.value = " ";
		document.frmPaceCalculator.txtPace.value = " ";
		document.frmPaceCalculator.txtPaceKm.value = " ";
		document.frmPaceCalculator.txtPace400.value = " ";

		//make sure they put only numbers in the text boxes
        if  ((isNaN(document.frmPaceCalculator.txtRunTimeMin.value)) || 
        	 (isNaN(document.frmPaceCalculator.txtRunTimeSec.value))) //||
			 //(isNaN(document.frmPaceCalculator.txtDistanceMi.value)) ||
			 //(isNaN(document.frmPaceCalculator.txtDistanceMeters.value)))
	    {
           NaNFlag = true;
        }

		if (document.frmPaceCalculator.optTotalMilesMeters[1].checked) {
			if (trim(document.frmPaceCalculator.txtDistanceMeters.value) == "")
			  {document.frmPaceCalculator.txtDistanceMeters.value = "0.00";}
			//make sure the put only numbers in the text boxes
			if (!isNaN(document.frmPaceCalculator.txtDistanceMeters.value)) {
				totalDistanceMeters = document.frmPaceCalculator.txtDistanceMeters.value;
				totalDistanceMiles = kmToMiles(totalDistanceMeters / 1000);
				document.frmPaceCalculator.txtDistanceMi.value = decimalPlaces(totalDistanceMiles,2);
			}
			else {
			   NaNFlag = true;
			}
		}
		else {
		   if (trim(document.frmPaceCalculator.txtDistanceMi.value) == "")
			  {document.frmPaceCalculator.txtDistanceMi.value = "0.00";}
		   //make sure the put only numbers in the text boxes
		   if (!isNaN(document.frmPaceCalculator.txtDistanceMi.value)) {
				totalDistanceMiles = document.frmPaceCalculator.txtDistanceMi.value;
				totalDistanceMeters = milesToKm(totalDistanceMiles) * 1000;
				document.frmPaceCalculator.txtDistanceMeters.value = decimalPlaces(totalDistanceMeters,2);
			}
			else {
				NaNFlag = true;
			}
		}
        
		//tell them sarcastically that they have entered a non-numeric character
		if (NaNFlag) {
			myAlert("What kind of number is that?");
		}
		
        //get the lap time in decimal form from the min and sec TextBoxes
       LapTimeMin = clockToDecimal(document.frmPaceCalculator.txtRunTimeMin.value, document.frmPaceCalculator.txtRunTimeSec.value);
	   LapDistMi = totalDistanceMiles	
				//calculate speeds in mi/min and mi/hr, then display speed in mi/hr and pace in min/mi  
        if ((LapTimeMin <= 0) || NaNFlag) {

            //the runner is infinitely fast
            document.frmPaceCalculator.txtSpeedMiPerHr.value = "Undefined";
			document.frmPaceCalculator.txtSpeedKmPerHr.value = "Undefined";
            //document.frmPaceCalculator.txtDistanceMi.value = "Undefined";
            //document.frmPaceCalculator.txtDistanceMeters.value = "Undefined";            
			document.frmPaceCalculator.txtPace.value = "Undefined";
			document.frmPaceCalculator.txtPaceKm.value = "Undefined";
			document.frmPaceCalculator.txtPace400.value = "Undefined";
        }
		else {
            //calculate the speed
            speedMiPerMin = (LapDistMi / LapTimeMin);
            speedMiPerHr = speedMiPerMin * 60;
			document.frmPaceCalculator.txtSpeedMiPerHr.value = decimalPlaces(speedMiPerHr,2); // + " mi/hr";
            document.frmPaceCalculator.txtSpeedKmPerHr.value = decimalPlaces(milesToKm(speedMiPerHr),2);
			document.frmPaceCalculator.txtPace.value = calcPace(LapTimeMin, LapDistMi);
			document.frmPaceCalculator.txtPaceKm.value = calcPace(LapTimeMin, milesToKm(LapDistMi));
			document.frmPaceCalculator.txtPace400.value = calcPace(LapTimeMin, 2.5 * milesToKm(LapDistMi));			
            					
		}
		
		return(0);
}  //end doit()

function switchToMetersPace() {	
	//alert("meters checked");
	document.frmPaceCalculator.txtDistanceMeters.value = "";
	document.frmPaceCalculator.txtDistanceMi.value = "";
	document.frmPaceCalculator.txtDistanceMi.style.backgroundColor = "#333333";
	document.frmPaceCalculator.txtDistanceMeters.style.backgroundColor = "#FFFFFF";
	document.frmPaceCalculator.txtDistanceMi.disabled = true;
	document.frmPaceCalculator.txtDistanceMeters.disabled = false;
	return(0);
}

function switchToMilesPace() {	
	//alert("meters checked");
	document.frmPaceCalculator.txtDistanceMeters.value = "";
	document.frmPaceCalculator.txtDistanceMi.value = "";
	document.frmPaceCalculator.txtDistanceMeters.style.backgroundColor = "#333333";
	document.frmPaceCalculator.txtDistanceMi.style.backgroundColor = "#FFFFFF";
	document.frmPaceCalculator.txtDistanceMi.disabled = false;
	document.frmPaceCalculator.txtDistanceMeters.disabled = true;
	return(0);
}
