function setDirections(gdir, fromAddress, locale) {
	gdir.load("from: " + fromAddress + " to: Bruggestraat 45, 8750 Zwevezele, Belgium",
				{ "locale": locale });
}

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...
}

jQuery(function(){
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("googlemaps"));
        map.setCenter(new GLatLng(51.038269,3.212705), 12);
        map.addControl(new GLargeMapControl());

        // red point
        var point = new GLatLng(51.038269,3.212705);
        map.addOverlay(new GMarker(point));
		
        
		// listeners
        var gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", function (gdir) {        	
        	if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS){
        		$('.form-error').html('Er is geen geografische locatie gevonden voor dit adres. Dit kan veroorzaakt worden door het feit dat het adres relatief nieuw of niet correct is.')
        						.slideDown('fast');
        	}
        	else if (gdir.getStatus().code == G_GEO_SERVER_ERROR){
        		$('.form-error').html('Er is een probleem met de geocoding dienst. Gelieve ons hiervoor te verontschuldigen.')
        						.slideDown('fast');
        	}
        	else if (gdir.getStatus().code == G_GEO_BAD_KEY){
        		$('.form-error').html('De Google API key is niet correct. Gelieve ons te verwittigen.')
        						.slideDown('fast');
        	}
        	else {
        		$('.form-error').html('Er is een onbekende fout opgetreden. Gelieve ons hiervoor te verontschuldigen.')
        						.slideDown('fast');
        	}
        	
        	map.setCenter(new GLatLng(51.038269,3.212705), 12);
        	
        });
        
        // on submit form
        $('#route').submit(function(e){
        	e.preventDefault();
        	
        	// remove existing errors
        	$('#map div.form-error').slideUp('fast', function(){
        	
	        	var street = $('#street').val().replace(/^\s+|\s+$/,'');
	        	var postalcity = $('#postalcity').val().replace(/^\s+|\s+$/,'');
	        	
	        	if((street.length == 0) || (postalcity.length == 0)) {
	        		$('.form-error').html('Gelieve je adresgegevens in te vullen.').slideDown('fast');
	        		map.setCenter(new GLatLng(51.038269,3.212705), 12);
	        	}
	        	else setDirections(gdir, street + ', ' + postalcity, 'nl_BE');
        	});	
        });
        
      }	
});

$(window).unload(function(){
	GUnload();
});
