function createCircle(center_lat, center_lng, radius) {
	var radiusKM = parseFloat(radius);
	var radiusLat = radiusKM * (1/ 110.474827);
	var radiusLng = radiusKM * (1/ (110.474827 * Math.cos(center_lat*Math.PI/180)));
	var points = [];
	for (var i=0; i < 360; i++) {
        var point = new GLatLng(
	                    parseFloat(center_lat + (radiusLat * Math.sin(i * Math.PI / 180))),
	                    parseFloat(center_lng + (radiusLng * Math.cos(i * Math.PI / 180)))
	                   );
		points.push(point);
	};
	points.push(points[0]);
	var polygon = new GPolygon(points,"#f33f00", 5, 1, "#ff0000", 0.2);
	return polygon;
}

		
function generateInfoWindowHTML(json, marker) {
    var trap = json.trap;
    var html = "<b>Adresse:</b><br>";
    html += trap.full_address;
    html += "<br/><br/>";
    html += "Breite: " + trap.lat + " Länge: " + trap.lng;
    html += "<br/><br/><a href='/traps/" + trap.id + "'>Falle anzeigen</a>";
	var infotab = new GInfoWindowTab("Falleninfos", html);
	var infotab2 = new GInfoWindowTab("Abstimmen", "Hier kommt Abstimmung");
    //	marker.showMapBlowup();
	marker.openInfoWindowTabs([infotab,infotab2]);
}

function getTrapsInBounds(bounds,mgr) {
	new Ajax.Request("/traps.json?maps=true&bounds=" + bounds + "&zoom_level=" + map.getZoom(), {method:'get',
onSuccess: function(transport) {
	alltraps = transport.responseJSON;
	var groups = false;
	var markers = [];
	alltraps.each(function(traparr) {
		if (traparr[2]==0) {
			var icon = new GIcon(G_DEFAULT_ICON,"/images/icons_karte/" + traparr[3]);
			icon.iconSize = new GSize(40,40);
			var marker = new GMarker(new GLatLng(traparr[0],traparr[1]), icon);
			marker.bindInfoWindowHtml("Es gibt in diesem Gebiet " + traparr[4] + " Radarfallen<br/><br/>Wenn du Details sehen willst, einfach Ausschnitt vergrößern!");
			markers.push(marker);
			map.trapgroups.push(marker);
			groups = true;
		}
		else {
			if (map.traps.indexOf(traparr[2]) == -1) {
				var marker = new GMarker(new GLatLng(traparr[0],traparr[1]), new GIcon(G_DEFAULT_ICON,"/images/icons_karte/" + traparr[3]));
				GEvent.addListener(marker, "click", function() {
		          new Ajax.Request('/traps/' + traparr[2] + '.json', {method:'get', onSuccess: function(transport){generateInfoWindowHTML(transport.responseJSON, this)}.bind(marker)});
		        });
				markers.push(marker);
				map.traps.push(traparr[2]);
			 };
		};
	});
	map.clearOverlays();
	if(groups == true) {
		markers.each(function(ma){
			map.addOverlay(ma);
		});
		}
	else {
		mgr.addMarkers(markers,10);
		mgr.refresh();
	};
	}});
}

function getGreyTrapsInBounds(bounds,mgr) {
	new Ajax.Request("/traps.json?maps=true&markertype=grey&bounds=" + bounds, {method:'get',
onSuccess: function(transport) {
		alltraps = transport.responseJSON;
		var markers = [];
		alltraps.each(function(traparr) {
			if (map.traps.indexOf(traparr[2]) == -1) {
				var marker = new GMarker(new GLatLng(traparr[0],traparr[1]), new GIcon(G_DEFAULT_ICON,"/images/icons_karte/" + traparr[3]));
				markers.push(marker);
				map.traps.push(traparr[2]);
			};
		});
		mgr.addMarkers(markers,10);
		mgr.refresh();
	}});
}

