﻿var container;
var opacity = 0.4;
var circle;
var centerMarker;
var circleUnits;
var circleRadius;
var zoom = 2;
var centerPoint;

function drawCircle(coords,dist) {
	
	circleRadius = dist;
  circleUnits = 'KM';	
	doDrawCircle(coords,dist);
}


function doDrawCircle(coords,dist){

	if (circle) {
		circle.setMap(null);
	}

	/*if (centerMarker) {
		map.setCenter(coords)
	}
	else {
		centerMarker = new GMarker(map.getCenter(),{draggable:true});
		GEvent.addListener(centerMarker,'dragend',drawCircle)
		map.addOverlay(centerMarker);
	}*/

	var center = map.getCenter();

	var bounds = new google.maps.LatLngBounds();

	
	var circlePoints = Array();

	with (Math) {
		if (circleUnits == 'KM') {
			var d = circleRadius/6378.8;	// radians
		}
		else { //miles
			var d = circleRadius/3963.189;	// radians
		}

		var lat1 = (PI/180)* center.lat(); // radians
		var lng1 = (PI/180)* center.lng(); // radians

		for (var a = 0 ; a < 361 ; a++ ) {
			var tc = (PI/180)*a;
			var y = asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc));
			var dlng = atan2(sin(tc)*sin(d)*cos(lat1),cos(d)-sin(lat1)*sin(y));
			var x = ((lng1-dlng+PI) % (2*PI)) - PI ; // MOD function
			var point = new google.maps.LatLng(parseFloat(y*(180/PI)),parseFloat(x*(180/PI)));
			circlePoints.push(point);
			bounds.extend(point);
		}

		if (d < 1.5678565720686044) {			
			circle = new google.maps.Polygon({
        paths: circlePoints,
        strokeColor: "#000000",
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: "#655935",
        fillOpacity: 0.25
      });

		}
		else {
			circle = new google.maps.Polygon({
        paths: circlePoints,
        strokeColor: "#000000",
        strokeOpacity: 0.8,
        strokeWeight: 2
      });
		}
		circle.setMap(map); 
		map.fitBounds(bounds);
	}
}


