var xmlHttp;
var element_id;

function getDistanceAndUnits(form_name)
{
	xmlHttp=GetXmlHttpObject();
	var form = document.forms[ form_name ];
	var sport = form.sport.value;
	var distance = form.distance.value;
	//document.getElementById("race_message").innerHTML = "ajax_get_distance_and_units.php?sport=" + sport + "&distance=" + distance;
	var url = "ajax_get_distance_and_units.php?sport=" + sport + "&distance=" + distance + "&random=" + Math.random();
	xmlHttp.onreadystatechange = process_xml;
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
}

function process_xml() 
{ 
	if ( xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
	{ 
	  var xml = xmlHttp.responseText;
	  //document.getElementById("race_message").innerHTML = xml;
	  if( xml == null || xml == "" ) return;
	  var start_pos = xml.indexOf("<swim_distance>");
	  var end_pos = xml.indexOf("</swim_distance>");
	  var distance_value = "0";
		if(start_pos >= 0 && end_pos > 0) distance_value = xml.substring(start_pos+15, end_pos);
	  start_pos = xml.indexOf("<swim_units>");
	  end_pos = xml.indexOf("</swim_units>");
	  var units = "metres";
		if(start_pos > 0 && end_pos > 0) units = xml.substring(start_pos+12, end_pos);
		//document.getElementById("race_message").innerHTML = "Swim: " + distance_value + " " + units;
	  document.getElementById("swim_distance_entry").innerHTML = distance_units("swim", distance_value, units);
	  
	  start_pos = xml.indexOf("<bike_distance>");
	  end_pos = xml.indexOf("</bike_distance>");
	  distance_value = "0";
		if(start_pos > 0 && end_pos > 0) distance_value = xml.substring(start_pos+15, end_pos);
	  start_pos = xml.indexOf("<bike_units>");
	  end_pos = xml.indexOf("</bike_units>");
	  units = "metres";
		if(start_pos > 0 && end_pos > 0) units = xml.substring(start_pos+12, end_pos);
		//document.getElementById("race_message").innerHTML = "Bike: " + distance_value + " " + units;
		//document.getElementById("race_message").innerHTML = escape( distance_units("bike", distance_value, units) );
	  document.getElementById("bike_distance_entry").innerHTML = distance_units("bike", distance_value, units);
	  
	  start_pos = xml.indexOf("<run_distance>");
	  end_pos = xml.indexOf("</run_distance>");
	  distance_value = "0";
	  //document.getElementById("race_message").innerHTML = "start_pos";
		if(start_pos > 0 && end_pos > 0) distance_value = xml.substring(start_pos+14, end_pos);
	  start_pos = xml.indexOf("<run_units>");
	  end_pos = xml.indexOf("</run_units>");
	  units = "metres";
		if(start_pos > 0 && end_pos > 0) units = xml.substring(start_pos+11, end_pos);
		//document.getElementById("race_message").innerHTML = "Run: " + distance_value + " " + units;
	  document.getElementById("run_distance_entry").innerHTML = distance_units("run", distance_value, units);
	} 
}

function distance_units(sport, distance, units)
{
  var html = "<input type='text' name='" + sport + "_distance' value='" + distance + "' size='5'>\n"
		+ "<select name='" + sport + "_units'>\n";
	if( units == "metres" ) html = html + "<option value='metres' selected>metres</option>\n";
	else html = html + "<option value='metres'>metres</option>\n";
	if( units == "Miles" ) html = html + "<option value='Miles' selected>Miles</option>\n";
	else html = html + "<option value='Miles'>Miles</option>\n";
	if( units == "Kilometres" ) html = html + "<option value='Kilometres' selected>Kilometres</option>\n";
	else html = html + "<option value='Kilometres'>Kilometres</option>\n";
	html = html + "</select>\n";
	return html;
}


function showDistanceCombo(sport)
{ 
xmlHttp=GetXmlHttpObject();
element_id = "distance_entry";
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request");
 return;
 }
var url = "ajax_select_distance_combo.php";
url = url + "?sport=" + sport;
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}

function showQuickDistanceCombos(sport)
{ 
//alert( "showQuickDistanceCombos for sport = " + sport );
element_id = "select_quick_distances";
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request");
 return;
 }
var url = "ajax_quick_distance_combos.php";
url = url + "?sport=" + sport + "&random=" + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}


function stateChanged() 
{ 
if ( xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
 { 
  document.getElementById(element_id).innerHTML = xmlHttp.responseText;
 } 
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

function other_distance(value, other_field_name)
{
	var html = "";
	if( value == 'OTHER' )
	{
		html = "<br><input type='TEXT' name='other_" + other_field_name + "_distance' size='5'> "
			+ "<select name='other_" + other_field_name + "_distance_units'>"
			+ "<option value='Miles'>Miles</option>"
			+ "<option value='metres'>metres</option>"
			+ "<option value='Kilometres'>Kilometres</option>"
			+ "</select>";
	}
	document.getElementById("other_" + other_field_name + "_distance_span").innerHTML = html;
}

