var map;
var geocoder = new GClientGeocoder();
var container = '';

// Create a new icon for Dassault
var iconDSDSF = new GIcon();
iconDSDSF.image = "css/images/picto-gmaps.png";
iconDSDSF.shadow = "";
iconDSDSF.iconSize = new GSize(40, 40);
iconDSDSF.iconAnchor = new GPoint(10, 30);
iconDSDSF.infoWindowAnchor = new GPoint(5, 1);


function gr_unloadGMap(container) {
	document.getElementById(container).innerHTML = "";
	document.getElementById(container).style.display = none;
	GUnload();
}

function gr_loadGMapWithAddress(c, address, zoom) {
	if (document.getElementById(c)) {
		container = c;
		if (GBrowserIsCompatible()) {
		    map = new GMap2(document.getElementById(container));
			if (typeof zoom == "undefined")
				zoom = 13;
			gr_setCenterWithAddress(address, zoom);
			map.addControl(new GLargeMapControl());
		} else {
			alert("Your browser is not compatible with Google Maps.");
			gr_unloadGMap(container);
		}
	} else {
		alert("Element '"+c+"' doesn't exist.");
		gr_unloadGMap(c);
	}	
}

function gr_setCenterWithAddress(address, zoom) {
	geocoder.getLatLng(
    	address,
    	function(point) {
			if (!point) {
        		alert("Unknown location '"+address+"'. Unable to load the map.");
				gr_unloadGMap(container);
      		} else {
      			map.setCenter(point, zoom);
      			gr_addMarker(point, iconDSDSF, address.replace(/ *, */g, "<br/>"));
      		}
		}
	);
}

function gr_addMarker(point, icon, text) {
	var marker = new GMarker(point, {icon: icon, clickable: true, draggable: false, bouncy: false});
	GEvent.addListener(marker, "click", function() {
    	marker.openInfoWindowHtml(text);
  	});
	map.addOverlay(marker);
}
