
if (!document.getElementById && document.all)
	document.getElementById = function(id)
	{
		return document.all[id];
	}

var coords;

function convertText(textCoords, quiet, showMap)
{
  if (showMap == null)
	showMap = true;

//  alert(textCoords);

  textCoords = String(textCoords);
  if (textCoords == "" || textCoords == null || textCoords == "undefined")
  {
    if (!quiet)
      alert("Please enter some GPS coordinates");
  
      return false;
  }

  var mantissa = 1000000;

  coords = new GPSCoordinateSet(textCoords);

  if (coords.isValid())
  {
    setValue("lat_dec", Math.round(coords.getLat().toDec() * mantissa) / mantissa);
    setValue("long_dec", Math.round(coords.getLong().toDec() * mantissa) / mantissa);

    setValue("lat_dms", coords.getLat().toDMSString());
    setValue("long_dms", coords.getLong().toDMSString());

    setValue("zone_utm", coords.getHemi() + coords.getZone());
    setValue("x_utm", Math.round(coords.getUTMx()));
    setValue("y_utm", Math.round(coords.getUTMy()));

    setValue("lat_gps", coords.getLat().toGPSString());
    setValue("long_gps", coords.getLong().toGPSString());

    if (showMap)
      mapURL();

    return true;
  }
  else 
  {
    if (!quiet)
      alert("Sorry, your coordinates could not be understood.");
    return false;
  }
}


function mapURL(mag)
{

 var lat = coords.getLat().toDec();
 var lon = coords.getLong().toDec();

  if (lat > 0)
  {

 if (mag == null)
 {
   mag = ".070";
 }

//showGMap(lat, lon);

 document.images['mapimg'].src = "http://tiger.census.gov/cgi-bin/mapgen?lon=" + lon + "&lat=" + lat + "&iwd=300&iht=250&wid=" + mag + "&ht=" + mag + "&mark=" + lon + "," + lat + ",bluestar";

 }

}

function mapquestURL(lat, lon)
{
// http://www.mapquest.com/maps/map.adp?latlongtype=decimal&latitude=37.32433&longitude=-122.00305
   return 'http://www.mapquest.com/maps/map.adp?latlongtype=decimal&latitude=' + lat + "&longitude=" + lon;
}

function benchmarkURL(lat, lon)
{
   return 'http://www.geocaching.com/mark/nearest.asp?origin_lat=' + lat + "&origin_long=" + lon;
}

function acmeURL(lat, lon)
{
   return 'http://mapper.acme.com/?lat=' + lat + '&long=' + lon + '&scale=10';
}

function theholygoogleURL(lat, lon)
{
   return 'http://maps.google.com/maps?q=' + lat + ',' + lon;
}

function geocachingURL(lat, lon)
{
 // http://www.geocaching.com/seek/nearest.aspx?origin_lat=37.4003166666667&origin_long=-122.022983333333&f=1
   return 'http://www.geocaching.com/seek/nearest.aspx?origin_lat=' + lat + "&origin_long=" + lon;
}

function map24URL(lat, lon)
{
  return 'http://www.map24.nl/map24/link2Map24.php?lid=17ac66fb&maptype=cgi&wx='+lon+'&wy='+lat+'&width=5000&description=&maptype=RELOAD&language=en';


}

function terracachingURL(lat, lon)
{
  return 'http://www.terracaching.com/gmap.cgi#center_zoom=5&center_lat=' + lat + '&center_lon=' + lon;
}


function calcdistURL(lat, lon)
{
  return '/gps/distance/?from=' + lat + " " + lon;


}

function randmcnallyURL(lat, lon)
{
   return 'http://www.randmcnally.com/rmc/directions/dirGetMap.jsp?A='+lat+','+lon+'&z=large&l=9&T='+lat+'&N='+lon+'&h=false&c=USA&sLatLongAddr=true&val=CNT';
}

function yahoomapsURL(lat, lon)
{
 // http://maps.yahoo.com/maps_result?lat=37.34667&lon=-121.965
   return 'http://maps.yahoo.com/maps_result?mag=9&lat=' + lat + '&lon=' + lon;
}

function mappointURL(lat, lon)
{
 // http://mappoint.msn.com/(rlbmw02cwj1qob2ui3dt5455)/map.aspx?C=37.39193%2c-122.04375&A=35.83333&P=|37.39193%2c-122.04375|1|Waypoint|L1|
   return 'http://mappoint.msn.com/(rlbmw02cwj1qob2ui3dt5455)/map.aspx?C=' + lat + '%2c' + lon + '&A=35.83333&P=|' + lat + '%2c' + lon + '|1|Cache|L1|';
}

function geourlURL(lat, lon)
{
   return "http://geourl.org/near/?lat=" + lat + "&lon=" + lon + "&dist=2";
}

function bechmarkURL(lat, lon)
{
   return "http://www.geocaching.com/mark/nearest.asp?origin_lat=" + lat + "&origin_long=" + lon;
}

function topozoneURL(lat, lon)
{
 // http://www.topozone.com/map.asp?lat=<lat>&mapit=Map+It&lon=<lon>&size=m&s=25
  return 'http://www.topozone.com/map.asp?lat=' + lat + '&mapit=Map+It&lon=' + lon + '&size=m&s=25';
}

function expertgpsURL(lat, lon)
{
  // http://www.expertgps.com/view_waypoint.asp?lat=<lat>&lon=<lon>
  return 'http://www.expertgps.com/view_waypoint.asp?lat=' + lat + '&lon=' + lon;
}

function geocachingmapURL(lat, lon)
{
  // &lon="http://www.geocaching.com/map/getmap.aspx?lat=<lat>&lon=<lon>
  return 'http://www.geocaching.com/map/getmap.aspx?lat=' + lat + '&lon=' + lon;
}

function lostoutdoorsURL(lat, lon)
{
  // &mlong=&t=1&z=1&s=1"http://www.lostoutdoors.com/map.php?mlat=<lat>&mlong=<lon>&t=1&z=1&s=1
  return 'http://www.lostoutdoors.com/map.php?mlat=' + lat + '&mlong=' + lon + '&t=1&z=1&s=1';
}

function confluenceURL(lat, lon)
{
  // http://www.confluence.org/confluence.php?lat=37.391933&lon=-122.04375
  return 'http://www.confluence.org/confluence.php?lat=' + lat + "&lon=" + lon;
}

function terraserverUSAURL(lat, lon)
{
  // http://www.terraserver-usa.com/image.aspx?Lon=-122.04375&Lat=37.391933&w=1&ref=G|-122.04375,37.391933
  return 'http://www.terraserver-usa.com/image.aspx?Lon=' + lon + '&Lat=' + lat + '&w=1&S=10&ref=G|' + lon + ',' + lat;

}

function terraserverURL(lat, lon)
{
// http://www.terraserver.com/imagery/image_gx.asp?cpx=-112.2013350146448&cpy=40.31424708215038&
  return 'http://www.terraserver.com/imagery/image_gx.asp?cpx=' + lon + '&cpy=' + lat + '&provider_id=310&res=8';

}

function tigerURL(lat, lon)
{
  return 'http://tiger.census.gov/cgi-bin/mapsurfer?lon=' + lon + '&lat=' + lat + '&mark=' + lon + ',' + lat + ',redpin,';
}

function multimapURL(lat, lon)
{
  return 'http://www.multimap.com/map/browse.cgi?scale=10000&lat=' + lat + '&lon=' + lon + '&gride=' + lon + '&gridn=' + lat + '&width=600&height=600';
}

function maptechURL(lat, lon)
{
  // http://mapserver.maptech.com/homepage/index.cfm?lat=37.3833333333&lon=-122.083333333&scale=24000&zoom=50
   return 'http://mapserver.maptech.com/homepage/index.cfm?lat=' + lat + '&lon=' + lon + '&scale=24000&zoom=50';
	
}

function dashpointURL(lat, lon)
{
  return 'http://geodashing.gpsgames.org/cgi-bin/stats.pl?statstype=circle&lat_1=' + lat + '&lon_1=' + lon;
}

function shutterspotURL(lat, lon)
{
  return 'http://shutterspot.gpsgames.org/cgi-bin/sh.pl?caches=yes&&fromlat=' + lat + '&fromlon=' + lon;
}

function gpsgamesURL(lat, lon)
{
  return 'http://geocaching.gpsgames.org/cgi-bin/ge.pl?caches=yes&fromlat=' + lat + '&fromlon=' + lon;
}


function getValue(node)
{
 return document.getElementById(node).childNodes[0].nodeValue;
}

function setValue(node, val)
{
 document.getElementById(node).childNodes[0].nodeValue = val;
}

function goTo(site)
{
  
  if (convertText(document.inGPScoord.c.value, false, false))
  {

    var lat  = getValue("lat_dec");
    var lon = getValue("long_dec");
  
  var URL = mapquestURL(lat, lon); 

  if (site == "geocaching" || site == "geocachingunfound")
  {
    URL = geocachingURL(lat, lon);

    if (site == "geocachingunfound")
    {
		URL = URL + "&f=1";
    }
  }
  if (site == "geocachingmap")
  {
    URL = geocachingmapURL(lat, lon);
  }
  else if (site == "mappoint")
  {
    URL = mappointURL(lat, lon);
  }
  else if (site == "acme")
  {
    URL = acmeURL(lat, lon);
  }
  else if (site == "yahoomaps")
  {
    URL = yahoomapsURL(lat, lon);
  }
  else if (site == "theholygoogle")
  {
    URL = theholygoogleURL(lat, lon);
  }
  else if (site == "benchmarks")
  {
    URL = benchmarkURL(lat, lon);
  }
  else if (site == "geourl")
  {
    URL = geourlURL(lat, lon);
  }
  else if (site == "topozone")
  {
    URL = topozoneURL(lat, lon);
  }
  else if (site == "multimap")
  {
    URL = multimapURL(lat, lon);
  }
  else if (site == "randmcnally")
  {
    URL = randmcnallyURL(lat, lon);
  }
  else if (site == "map24")
  {
    URL = map24URL(lat, lon);
  }
  else if (site == "terracaching")
  {
    URL = terracachingURL(lat, lon);
  }
  else if (site == "calcdist")
  {
    URL = calcdistURL(lat, lon);
  }
  else if (site == "expertgps")
  {
    URL = expertgpsURL(lat, lon);
  }
  else if (site == "dashpoint")
  {
    URL = dashpointURL(lat, lon);
  }
  else if (site == "shutterspot")
  {
    URL = shutterspotURL(lat, lon);
  }
  else if (site == "gpsgames")
  {
    URL = gpsgamesURL(lat, lon);
  }
  else if (site == "tiger")
  {
    URL = tigerURL(lat, lon);
  }
  else if (site == "confluences")
  {
    URL = confluenceURL(lat, lon);
  }
  else if (site == "maptech")
  {
    URL = maptechURL(lat, lon);
  }
  else if (site == "terraserver")
  {
    URL = terraserverURL(lat, lon);
  }
  else if (site == "terraserverusa")
  {
    URL = terraserverUSAURL(lat, lon);
  }
  else if (site == "loc")
  {
    var wpname = prompt("Name this waypoint", "waypoint");
    URL = "http://boulter.com/gps/loc.php?c=" + escape(document.inGPScoord.coords.value) + "&lat=" + escape(lat) + "&long=" + escape(lon) + "&name=" + escape(wpname);
  }
  else if (site == "lostoutdoors")
  {
    URL = lostoutdoorsURL(lat, lon);
  }

   if (document.inGPScoord.newwin.checked)
   {
     window.open(URL, "_blank");
   }
   else
   {
     window.location = URL;
   }
  }
}

function bodyOnLoad()
{
//  if (window._load) { window._load(); }
  convertText(document.inGPScoord.c.value, true);
}
