function checkRaceDist()
{ 
	var p = getPacerFromForm(); 
	
	if(isNaN(p.baseSpeed))
	{ 
		// This should never happen. 
		dEl("paceError").innerHTML = "<br>De invoer is foutief - gelieve uw looptijd aan te passen.";
		return false; 
	} 
	if(p.baseSpeed > 399) // 399 is approx 4:01 adjusted 5K pace, 3:43 mile.
	{ 
		dEl("paceError").innerHTML = "<br>Incorrecte tijd voor de gekozen afstand. Gelieve uw gegevens aan te passen."; 
		//dEl("paceError").innerHTML = "<br>Given adjusted 5K race pace of " +  timeConvert(p.baseSpeed, false) + "min/mile is too fast - please enter a valid race time."
		return false; 	
	} 
	if(p.baseSpeed < 83) // 83 is approx one hour for a 5K
	{ 
		dEl("paceError").innerHTML = "<br>Incorrecte tijd voor de gekozen afstand. Gelieve uw gegevens aan te passen.";
		//var e = "<br>Given asdfasdf 5K race pace of " + timeConvert(p.baseSpeed, false) + "min/mile is too slow - please enter a valid race time."; 		dEl("paceError").innerHTML = e;  
		return false; 
	}
	
	dEl("paceError").innerHTML = ""; 
	return true;  
} 

function doClear()
{ 
	var fd = getFormDefaults(); 
	logErr(fd); 
	
	for(var k in fd)
	{ document.forms.trainform[k].value = fd[k]; }

	dEl("paceError").innerHTML = "";  	
}

function doBookmark()
{ 
	if(!checkRaceDist())
	{ return; }

	// TODO: need to check validity of cookie information before continuing. 

	var na = getFormFields();  
	for(var i = 0; i < na.length; i++)
	{ scSetCookie(na[i], document.forms.trainform[na[i]].value, document.forms.trainform["slen"].value); }
	
	// Set the start date field to a specific date.	
	scSetCookie("trainstart", document.forms.trainform.trainstart.value); 
	
	// This flag says that the data has been set. 
	scSetCookie("startf", "123xyz"); 
	
	var pageName = "Runner's World SmartCoach Results"; 
	var urlAddress = "http://www.lingoquiz.com/running/results.html"; 
	
	addToFavorites(urlAddress, pageName);  
		
	alert("This option will bookmark this page in your web browser and save your training program by using a cookie. When you re-visit this page on this computer, you will be able to see the same training program you are viewing now without re-entering your settings. Only one set of settings can be saved for each computer, so users on a shared network should print their schedule instead."); 
} 

function doSubmit()
{
	if(!checkRaceDist())
	{ return; } 

	var fd = new Object(); 
	var na = getFormFields()
	for(var i = 0; i < na.length; i++)
	{ fd[na[i]] = document.forms.trainform[na[i]].value; } 
			 
	// Set validity-checked flag
	document.forms.trainform.startf.value = "123xyz"; 
	document.forms.trainform.submit(); 
}


function setFormData()
{ 
	setMpweDisplay();
	var fd = getValidData(); 
	if(fd == null) { 
	dEl("smartcoachresult").style.display = "none";
	dEl("smartcoachform").style.display = "block";
	return;
	}
	
	for(var k in fd)
	{ 
	   
		if(document.forms.trainform[k])
		{ document.forms.trainform[k].value = fd[k]; } 	
	}  
	
	if(!checkRaceDist())
	{ 
	dEl("smartcoachresult").style.display = "none";
	dEl("smartcoachform").style.display = "block";
	return; 
	} 
	
	dEl("smartcoachresult").style.display = "block";
	dEl("smartcoachform").style.display = "none";
	
   
	
} 

function setMpweDisplay()
{
	if(document.forms.trainform.metr[1].checked)
	{ var ms = new mpweSelectMetric(); }
	else
	{ var ms = new mpweSelect(); }
		
	var mpweString = ms.formString("11");
	document.getElementById("mpweinput").innerHTML = '<select name="mpwe" class="toolForm">' + mpweString + '</select>';
}

function isMetric()
{ 
	var m = qsParams["metr"]; 
	return m == "km"; 
} 

function getDiffCode(s)
{ 
	var x = s == "main" ? 0 : (s == "mod" ? 1 : (s == "hard" ? 2 : 3)); 
	return x; 
} 

function getDistDispStr(mDist, met)
{ 
	var vString = (mDist * (met ? 1.6 : 1)).toFixed();
	return vString + (met ? " km" : " mi");
} 

function getDistDispStr(mDist, met)
{ 
	mDist *= met ? 16 : 10; 
	mDist /= 10;
	var s = met ? " km" : " mi";
	return mDist + s; 

}

