/* GOOGLE MAPS API */
var center = null;
var map = null;
var geocoder = null;

function GMAPS_initialize(printing) {
	lat = parseFloat($("#map_lat").val());
	lon = parseFloat($("#map_lon").val());
	zoom = parseFloat($("#map_zoom").val());
	info = $("#map_description").val();
	title = $("#map_title").val();
	
	if (typeof(printing) == 'undefined') {
		printing = false;
	}else{
		printing = true;
	}
	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		if (!printing) map.setMapType(G_HYBRID_MAP);
		
		map.checkResize();
		
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		
		map.setCenter(new GLatLng(lat, lon), zoom);
		
		geocoder = new GClientGeocoder();
		
		center = map.getCenter();
		
		map.panTo(center);
		
		marker = new GMarker(center, {draggable: false, bounceGravity: 0.3});
		
		GEvent.addListener(map, "zoomend", function() {
			GMAPS_getLng(marker.getPoint().toString(), map.getZoom());
		});
		
		if (typeof(info) != 'undefined') {
			marker.content = '<font class="maptitle" size="4">'+title+'</font><br />' + info.replace(/\\n/gi, '<br />');
		}
		
		addClickevent(marker);
		
		map.addOverlay(marker);
		
		marker.openInfoWindowHtml(marker.content);
	}
}

function GMAPS_getLng(coords, zoom){
	if(!coords)	return false;
	
	var c = new Array();
	
	coords = coords.substr(1,(coords.length-2));
	c = coords.split(", "); 
	
	if(c){
		$("#map\\[lat\\]").val(c[0]);
		$("#map\\[lon\\]").val(c[1]);
		$("#map\\[zoom\\]").val(zoom);
	}
}

function addClickevent(marker) {
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(marker.content);
	});
	return marker;
}