var map;
var gdir;
var geocoder = null;
var addressMarker;

function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(40, -95.0), 3);
gdir = new GDirections(map, document.getElementById("directions"));
GEvent.addListener(gdir, "load", onGDirectionsLoad);
GEvent.addListener(gdir, "error", handleErrors);
map.addControl(new GSmallMapControl());
var mapControl = new GMapTypeControl();
map.addControl(mapControl);
}
}

function setDirections(fromAddress, toAddress, locale) {
document.getElementById("ErrorMsgBox").style.display = 'none';
gdir.load("from: " + fromAddress + " to: " + toAddress);
if(document.getElementById("directions").style.display == 'none')
{
document.getElementById("directions").style.display = 'block';
}

}


function handleErrors(){
if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
{
document.getElementById("ErrorMsgBox").style.display = 'block';
document.getElementById("directions").style.display = 'none';
document.getElementById("ErrorMsgBox").innerHTML = "One or both of your entered addresses could not be found. Please check them and try again or provide more information.";//\nError code: " + gdir.getStatus().code;
}
else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
{
document.getElementById("ErrorMsgBox").style.display = 'block';
document.getElementById("directions").style.display = 'none';
document.getElementById("ErrorMsgBox").innerHTML = "Please enter at least city &amp; state OR a valid zip code.";//\n Error code: " + gdir.getStatus().code;
}
else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
{
document.getElementById("ErrorMsgBox").style.display = 'block';
document.getElementById("directions").style.display = 'none';
document.getElementById("ErrorMsgBox").innerHTML = "Please enter at least city &amp; state OR a valid zip code.";//\n Error code: " + gdir.getStatus().code;
}

//  else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  
//  alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);

else if (gdir.getStatus().code == G_GEO_BAD_KEY)
{
document.getElementById("ErrorMsgBox").style.display = 'block';
document.getElementById("directions").style.display = 'none';
document.getElementById("ErrorMsgBox").innerHTML = "Please enter at least city &amp; state OR a valid zip code.";// \n Error code: " + gdir.getStatus().code;
}
else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
{
document.getElementById("ErrorMsgBox").style.display = 'block';
document.getElementById("directions").style.display = 'none';
document.getElementById("ErrorMsgBox").innerHTML = "Please enter at least city &amp; state OR a valid zip code.";//\n Error code: " + gdir.getStatus().code;
	}
	 
	
   else alert("An unknown error occurred.");
   
}

function onGDirectionsLoad(){ 
  // Use this function to access information about the latest load()
  // results.

  // e.g.
  // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
  // and yada yada yada...
}
