var map = null;
var marker = null;
var pw = null;
var pe = null;
var ps = null;
var pn = null;
var markers = null;

var xMapDefaultZoom = 12;
var xMapURL = null;
var xMapFeed = null;

function jumpToLatLong(lat,lng) {
		if (!map) {
			loadMap();
		}
		var point = new GLatLng(parseFloat(lat), parseFloat(lng));

		GEvent.addListener(map, "moveend", function() {
			var center = map.getCenter();
			var bounds = map.getBounds();
			var sw = bounds.getSouthWest();
			var ne = bounds.getNorthEast();
			var w = Math.round(sw.lng()-0.5);
			var s = Math.round(sw.lat()-0.5);
			var e = Math.round(ne.lng()+0.5);
			var n = Math.round(ne.lat()+0.5);
			if (w<pw || pw == null || e>pe || pe==null || s<ps || ps==null || n>pn || pn==null) {
				pw = w; pe = e; ps = s; pn = n;
				GDownloadUrl(xMapFeed+"?e="+e+"&w="+w+"&n="+n+"&s="+s, function(data, responseCode) {
					var xml = GXml.parse(data);
					markers = xml.documentElement.getElementsByTagName("course");
					map.clearOverlays();
					for (var i = 0; i < markers.length; i++) {
						var info =
							'<a href="'
							+ markers[i].getAttribute('course_url')
							+ '">'
							+ markers[i].getAttribute('course_name')
							+ '</a>'
							+ '<br />in '
							+ '<a href="'
							+ markers[i].getAttribute('location_url')
							+ '">'
							+ markers[i].getAttribute('location_name')
							+ '</a>'
						;
						var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("long")));
						var marker = createMarker(point, info);

						map.addOverlay(marker)

						if ( xMapURL == markers[i].getAttribute('course_url') 
							|| ( xMapURL.replace(/http:\/\/tgc/,'http://www') == markers[i].getAttribute('course_url') )
							|| ( xMapURL.replace(/\?zdebug=1/,'') == markers[i].getAttribute('course_url') )
						) {
							marker.openInfoWindowHtml(info);
						} else {
						}

					}
				});
			}
		});
		map.setCenter(point, xMapDefaultZoom);
}

function createMarker(point,info) {
	// --------------------------------------------------
	// var icon = new GIcon();
	// icon.image = "http://www.worldgolf.com/images/maps/flag.png";
	// icon.iconSize = new GSize(22, 22);
	// icon.iconAnchor = new GPoint(11, 11);
	// icon.infoWindowAnchor = new GPoint(11, 11);
	// var marker = new GMarker(point, icon);
	// -------------------------------------------------- 
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(info);
	});
	return marker; 
}

function loadMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		var mt = map.getMapTypes(); 
		for (var i=0; i<mt.length; i++) { 
			mt[i].getMinimumResolution = function() {return 9;} 
		} 
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());
		/*
		var adsManagerOptions = { 
			maxAdsOnMap: 10,
			keywords: "hotels,restaurants,bars",
			channel: "1435239166",
			minZoomLevel: 1
		}; 
		var adsManager = new GAdsManager(map, "ca-pub-1135737688807068", adsManagerOptions); 
		adsManager.enable(); 
		*/
	}
}

