// JavaScript Document
var mapLocationsURL;
	

function addMap(lat,lon,zoom,control,maptype) {
	map = new GMap2(document.getElementById('mapdiv'));
	map.setCenter(new GLatLng(lat, lon), zoom);

	if (!control) {
		control = 'large';
	}
	switch (control) {
		case 'large':
			map.addControl(new GLargeMapControl());
			break;
		case 'small':
			map.addControl(new GSmallMapControl());
			break;
	}
	map.enableScrollWheelZoom();

	if (!maptype) {
		maptype = 'normal';
	}
	
	switch (maptype) {
		case 'normal':
			map.setMapType(G_NORMAL_MAP);
			break;
		case 'satellite':
			map.addMapType(G_SATELLITE_MAP);
			map.setMapType(G_SATELLITE_MAP);
			break;
		case 'physical':
			map.addMapType(G_PHYSICAL_MAP);
			map.setMapType(G_PHYSICAL_MAP);
			break;
	}

	if (mapLocationsURL) {
		addLocations(map);

		GEvent.addListener(map, 'zoom', function(oldzoom, newzoom) {
			addLocations(map);
		});	
	
		GEvent.addListener(map, 'moveend', function() {
			addLocations(map);
		});
		
	} else {
		var icon = new GIcon();
		icon.image = "assets/images/marker.png";
		icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		icon.iconSize = new GSize(12, 20);
		icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
		var point = new GPoint(lon,lat);
		var marker = new GMarker(point,icon);
		map.addOverlay(marker);

	}
	
	if (map.showInfoWindow) {
	}
	

}

function addLocations(map) {
	var request = GXmlHttp.create();

	zoom = map.getZoom();
	bounds = map.getBounds();

	request.open('GET', mapLocationsURL+'?'+
		'minX='+bounds.getSouthWest().lng()+
		'&minY='+bounds.getSouthWest().lat()+
		'&maxX='+bounds.getNorthEast().lng()+
		'&maxY='+bounds.getNorthEast().lat()+
		'&mapzoom='+zoom,true);
	
	// Create our "tiny" marker icon
	var icon = new GIcon();
	icon.image = "assets/images/marker.png";
	icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);	

	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			if (true || xmlDoc) {
				var markers = xmlDoc.documentElement.getElementsByTagName('marker');
				map.clearOverlays();
				for (var i = 0; i < markers.length; i++) {
					var point = new GPoint(parseFloat(markers[i].getAttribute('lng')),parseFloat(markers[i].getAttribute('lat')));
					var marker = new GMarker(point,icon);
					marker.id = markers[i].getAttribute('oid');
					marker.info = markers[i].getAttribute('info');

					GEvent.addListener(marker, 'dblclick', function() {
						zoom = map.getZoom();
						if (zoom < 10) {
							zoom = 10;
						}
						window.location=mapClickURL+this.id+'&mapzoom='+zoom;
					});

					GEvent.addListener(marker, 'click', function() {
						this.openInfoWindowHtml(this.info);
					});
					
					map.addOverlay(marker);
				}
			}
		}
	}
	request.send(null);	

}


	
