
var address = '7144 S. Division Ave., Grand Rapids, MI 49548';

var display_address = '<b>Veurinks\' RV Center</b><br />' + 
	'7144 S. Division Ave.<br />' + 
	'Grand Rapids, MI 49548';

var map = null;
var geocoder = null; 
var gdir = null;


function initialize() 
{
	if( GBrowserIsCompatible() )
	{
		map = new GMap2( $( 'map_canvas' ) );
		
		map.addControl(new GSmallMapControl());
      map.addControl(new GMapTypeControl());
      
		geocoder = new GClientGeocoder();
  		gdir = new GDirections(map, $( 'directions' ) );

  		GEvent.addListener( gdir, 'error', handleErrors );


		if( geocoder )
		{
			geocoder.getLatLng(
		   	address,
		   	function( point )
				{
		      	if( !point )
					{
						alert( address + " not found" );
		      	} 
					else
					{
		       		map.setCenter( point, 13 );
		        		var marker = new GMarker( point );
		        		map.addOverlay( marker );
		        		marker.openInfoWindowHtml( display_address );
		      	}
		    	}
			);
		}
	}
}

function setDirections( fromAddress ) 
{
	setError( "" );
	
	gdir.load( 'from: ' + fromAddress + ' to: ' + address, { 'locale': 'en_US' } );
}


function handleErrors()
{
	$( 'directions' ).innerHTML = "";
	
   if( gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS )
   {
     setError( "Error: Address Not Found!" );
   }
	else if( gdir.getStatus().code == G_GEO_SERVER_ERROR )
   {
	  setError("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);
   }
   else if( gdir.getStatus().code == G_GEO_MISSING_QUERY )
   {
	  setError( "Error: Invalid Request. Missing Query." );
	}
   else if( gdir.getStatus().code == G_GEO_BAD_KEY )
   {
     setError( "Error: Invalid Key Provided." );
	}
   else if( gdir.getStatus().code == G_GEO_BAD_REQUEST )
   {
     setError( "Error: Invalid Request." );
   }
   else
	{
		setError( "Error: Unknown Error" );
   }
}

function setError( error )
{
	$( 'last_error' ).innerHTML = error;
}
