function radians (deg) {
		return deg * (Math.PI/180);
}
	
function getDistance (orig_latitude, orig_longitude, dest_latitude,  dest_longitude, unit) {
//	This routine calculates the distance between two points (given the latitude/longitude of those points).
//	Definitions: 
//		South latitudes are negative, east longitudes are positive 
//	Passed to function: 
//		@orig_latitude, @orig_longitude = Latitude and Longitude of point 1 (in decimal degrees) 
//		@dest_latitude, @dest_longitude = Latitude and Longitude of point 2 (in decimal degrees) 
//		Unit = the unit you desire for results 
//			where:	'M' is statute miles 
//				'K' is kilometers (default) 
//				'N' is nautical miles 	
	var x, km;

	x = 6378.7 * Math.acos((Math.sin(radians(orig_latitude)) * Math.sin(radians(dest_latitude))) + (Math.cos(radians(orig_latitude)) * Math.cos(radians(dest_latitude)) * Math.cos(Math.abs(radians(dest_longitude) - radians(orig_longitude)))));

//	convert where necessary
	switch ( (new String(unit)).toUpperCase() ) {
			case 'M': km = x/1.609344;
					break;
			case 'N': km = x/1.852;
					break;
			default: km = x;
	}

	return(km)
}
	
function calcDistance() {
	var ot, og, dt, dg;
	ot = document.getElementById("orglat").value;
	if (document.getElementById("orglatS").checked == true) { ot *= -1; }
	
	og = document.getElementById("orglong").value;
	if (document.getElementById("orglongW").checked == true) { og *= -1; }
	
	dt = document.getElementById("deslat").value;
	if (document.getElementById("deslatS").checked == true) { dt *= -1; }
	
	dg = document.getElementById("deslong").value;
	if (document.getElementById("deslongW").checked == true) { dg *= -1; }
	
	if (document.getElementById("target").hasChildNodes()) { document.getElementById("target").removeChild(document.getElementById("target").firstChild); }
	document.getElementById("target").appendChild(document.createTextNode("Distance = " + (new Number(getDistance(ot,og,dt,dg,'m'))).toFixed(4) + " miles."));
}