
var GoogleMap = {
	init : function(div_name,latidine, longitudine, info,address) {
		if (!document.getElementById || !document.createTextNode) {
			return;
		}
		// Verifica il supporto per il DOM
		var div = this.getElementsByClassName(document, 'div', div_name)[0];
		if (GBrowserIsCompatible()) {
			var map = new GMap2(div);
			//alert(latidine + " " + longitudine + " " + info);
			if(latidine==0&&longitudine==0){
				var geocoder = new GClientGeocoder(); 
				GLatLng =  new GLatLng(geocoder.getLatLng(address)); 				
			}else{
				GLatLng =  new GLatLng(latidine, longitudine); 
			}
			map.setCenter(GLatLng, 12);
			//map.addControl(new GLargeMapControl());
			//map.addControl(new GMapTypeControl());
			map.enableContinuousZoom();
			infoon = true;
			if(info!=""){
			map.addOverlay(this.createMarker(
					GLatLng, "<strong>" + info
							+ "</strong>"));
			map.openInfoWindow(map.getCenter(),
	                   "<strong>" + info + "</strong>");
			}else{
				map.addOverlay(this.createMarker(GLatLng));
			}
		}

	},
	createMarker : function(point, description) {
		var marker = new GMarker(point);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(description);
		});
		
		return marker;
	},

	getElementsByClassName : function(oElm, strTagName, strClassName) {

		var arrElements = (strTagName == "*" && document.all) ? document.all
				: oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for ( var i = 0; i < arrElements.length; i++) {
			oElement = arrElements[i];
			if (oRegExp.test(oElement.className)) {
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements)
	},
	addEvent : function(obj, type, fn) {
		if (obj.addEventListener)
			obj.addEventListener(type, fn, false);
		else if (obj.attachEvent) {
			obj["e" + type + fn] = fn;
			obj[type + fn] = function() {
				obj["e" + type + fn](window.event);
			}
			obj.attachEvent("on" + type, obj[type + fn]);
		}
	}
};

