var map;
var scam;
scamdisp =new Array();
var scamIcon = new GIcon();
scamIcon.image = "http://www.speedcameramap.co.uk/images/cam.png";
// scamIcon.shadow = "http://www.speedcameramap.co.uk/images/map/shadow_small.png";
scamIcon.iconSize = new GSize(16, 16);
// scamIcon.shadowSize = new GSize(22, 20);
scamIcon.iconAnchor = new GPoint(8, 8);
scamIcon.infoWindowAnchor = new GPoint(8, 8);

function setupMap(ln,lat,zoom) {
	if (GBrowserIsCompatible()) {
			map = new GMap2(document.getElementById("googlemap"));
		      	map.addControl(new GLargeMapControl());
		      	map.addControl(new GMapTypeControl());
		      	GEvent.addListener(map, "moveend", function() {
		      	getMarkers();
			var center = map.getCenter();
			var tmpzm= map.getZoom();
			var latLngStr = '<a href="http://www.speedcameramap.co.uk/index.php?lt=' + center.y + '&ln=' + center.x + '&zm=' + tmpzm + '"><img src="/images/link_icon.gif" alt="Link directly to this map"/>&nbsp;Link directly to this map</a>';
			document.getElementById("message").innerHTML = latLngStr;
	        	});
			map.setCenter(new GLatLng(lat,ln),zoom);
		      	map.enableDoubleClickZoom();
		   }
    	}


function getMarkers()
	{

	if (map.getZoom() < 12)
		{
		document.getElementById('zoom').innerHTML = "Zoom in closer to view the cameras";
		map.clearOverlays();
		delete scamdisp;
		scamdisp =new Array();
		return;
  		}
	else
		{
		document.getElementById('zoom').innerHTML = "";
		var tmp = map.getZoom();
		if ( tmp > 11)
			{
			document.getElementById('zoom').innerHTML = "&nbsp;";
			var request = GXmlHttp.create();
			var bounds = map.getBounds();
			var mapne = bounds.getNorthEast();
			var maxX = mapne.lng();
			var maxY = mapne.lat();
			var mapsw = bounds.getSouthWest();
			var minY = mapsw.lat();
			var minX = mapsw.lng();
			var requrl = "http://www.speedcameramap.co.uk/search.php?minX=" + minX + "&maxX=" + maxX + "&minY=" + minY + "&maxY=" + maxY;
			// GLog.write(requrl);
			request.open("GET",requrl,true);
			request.onreadystatechange = function()
			{
			
			if (request.readyState == 4)
				{
				// GLog.write("ready");
				xmlDoc = request.responseXML;
				scams = xmlDoc.documentElement.getElementsByTagName("marker");
				for (var i = 0; i < scams.length; i++)
					{
					scamId = scams[i].getAttribute('id');
					if (scamdisp[scamId] != true) {
						scamdisp[scamId] = true;
						lat = parseFloat(scams[i].getAttribute('lat'));
						lng = parseFloat(scams[i].getAttribute('lng'));
						type = scams[i].getAttribute('type');
						switch (type)
						{
						    case "G":
						      desc = "Speed Camera"
						      break;
						    case "BK":
						      desc = "Bus Lane"
						      break;
						    case "SC":
						      desc = "SPECS"
						      break;
						    case "SCE":
						      desc = "Combined Red Light &amp; Speed"
						      break;
						    case "GA":
						      desc = "Combined Red Light &amp; Speed"
						      break;
						    case "A":
						      desc = "Red Light"
						      break;
	}
						html = "<div style='width:20em;'>" + GXml.value(scams[i]) + "<br />Camera Type: " + desc + "</div>";
						var marker = displayMarker(lat,lng,type,html);	
						map.addOverlay(marker);
						}

					}
				
				}

			}
		}
		request.send(null);
	}
}
function displayMarker(lat,lng,type,html)
	{
	var icon = new GIcon(scamIcon);
	// var point = new GMarker(new GLatLng(lat,lng));
	var point = new GPoint(lng,lat);
	switch (type)
		{
		    case "G":
		      type = "cam"
		      break;
		    case "BK":
		      type = "cam3"
		      break;
		    case "SC":
		      type = "cam2"
		      break;
		    case "SCE":
		      type = "cam2"
		      break;
		    case "GA":
		      type = "cam4"
		      break;
		    case "A":
		      type = "tl"
		      break;
	}
	icon.image = "http://www.speedcameramap.co.uk/images/" + type + ".png";
	var marker = new GMarker(point, icon);
	
	GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
    });
    // GLog.write(icon.image);
    return marker;
  }
  
   