var connect = connect || {};
connect.load_events = connect.load_events || [];

function connect_google_maps(){
	$('div.gmap').each(function(i,e){
		var markers = new Array();
		var map, geocoder, geoXml;
	
		function connect_google_map(ll1, ll2, z, t, q, ms){
			if(t=='G_MAP_TYPE')t=G_MAP_TYPE;
			else if (t=='G_SATELLITE_TYPE')t=G_SATELLITE_TYPE;
			else t=G_HYBRID_TYPE;
			if (GBrowserIsCompatible()) {
				map = new GMap2(e);
				map.addControl(new GLargeMapControl());
				map.addControl(new GMapTypeControl());
				map.setCenter(new GLatLng(parseFloat(ll1), parseFloat(ll2)), parseInt(z, 10), t);
				geocoder = new GClientGeocoder();
				if (q&&q.length) connect_show_address(unescape(q));
				if (ms&&ms.length) {
					geoXml = new GGeoXml(ms, connect_set_geoxml_center);
					map.addOverlay(geoXml);
				}
			}
		}
		
		function connect_set_geoxml_center(){
			map.setCenter(geoXml.getDefaultCenter());
		}

		function connect_show_address(address) {
		  geocoder.getLocations(address, function(res) {
				if (res.Status.code == 200) {
					var place = res.Placemark[0];
					var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
					var marker = new GMarker(point);
					map.addOverlay(marker);
					map.setCenter(point);
					marker.openInfoWindowHtml('<strong>Address:</strong><br /><br />'+place.address);
				}
			});
		}

		var $input = $('input:hidden', this);
		var elements = $input.val().split('|');
		
		connect_google_map(elements[0], elements[1], elements[2], elements[3], elements[4], elements[5]);
	});
	
	$('body').bind('unload', GUnload);
}

connect.load_events.push(connect_google_maps);
