//<![CDATA[

var BigMeteors = [];
var NewMeteors = [];
var marker;
var x;
var exists = 0;

var disp_diam = false;

var baseIconSmall = new GIcon();
baseIconSmall.shadow = "http://www.scaredycatfilms.com/impact/icons_sm.png";
baseIconSmall.iconSize = new GSize(12, 20);
baseIconSmall.iconAnchor = new GPoint(6, 20);
baseIconSmall.infoWindowAnchor = new GPoint(9, 2);
baseIconSmall.infoShadowAnchor = new GPoint(18, 25);
var greenIconSM = new GIcon(baseIconSmall);
var redIconSM = new GIcon(baseIconSmall);
greenIconSM.image = "http://www.scaredycatfilms.com/impact/green.png";
redIconSM.image = "http://www.scaredycatfilms.com/impact/red.png";

function displayDiameter(disp_diam_flag) {
	disp_diam = disp_diam_flag;

	// Update Map
	updateMarkers();
}

function createMarker(point,name,loc,exposed,drilled,diameter) {
	if (exposed == "Y")
		var marker = new GMarker(point,redIconSM);
	else
		var marker = new GMarker(point,greenIconSM);

	//var marker = new GMarker(point);
	var pt_loc = marker.getPoint();
 	GEvent.addListener(marker, "click", function() {
	    marker.openInfoWindowHtml("<DIV name='popup' align='left'><font size='2' face='Arial, Helvetica, sans-serif' color='#000000'><B>" + name + " Crater </B><BR>" + "<B>Location: </B>" + loc +
		    "<br><B>Coordinates: </B>" + pt_loc.toString() + "<BR><B>Exposed: </B>" + exposed + 
			", <B>Drilled: </B>" + drilled + ", <B>Diameter: </B>" + diameter + "KM" + "</font></DIV>");
	});   /* End of addListener */
    return marker;
}

function updateMarkers() {
    var boundary = map.getBounds();
	var southWest = boundary.getSouthWest();
	var maxWest = southWest.lng();
	var maxSouth = southWest.lat();
    var northEast = boundary.getNorthEast();
	var maxEast = northEast.lng();
	var maxNorth = northEast.lat();
   	//alert("MaxWest: " + southWest.lng().toString());
	var build = "marks.php?name=two&ne=" + northEast.toUrlValue() +
		   "&sw=" + southWest.toUrlValue();
	getMarks(build);
}

function getMarks(url) { /* pass url during the call. */

    /* Lets Pass on the Marker Manager for now. */
    //var mgrOptions = { borderPadding: 50, trackMarkers: false };
    //var mm = new GMarkerManager(map, mgrOptions);   /* Set up marker manager */
	
	map.clearOverlays();
	//loop though each of the points in memory and remove those that
    //aren't going to be shown
	/*
	var mapBounds = map.getBounds();
    for (var x=0;x<BigMeteors.length;x++) {
        if(!mapBounds.contains(BigMeteors[x].getPoint())) {
		//alert("Point: " + k);
            map.removeOverlay(BigMeteors[x]);
            delete BigMeteors[x];
        }
    }
	*/
	
    map.closeInfoWindow(); /*close any InfoWindows that happen to be open  */
    var request = GXmlHttp.create(); /* use the XML methods  */
    request.open("GET", url, true);
    request.onreadystatechange = function()
	{
        if (request.readyState == 4)
		{
            var xmlDoc = request.responseXML; /* php returns 'XML' */
            //alert(xmlDoc);
            var markers = xmlDoc.documentElement.getElementsByTagName("marker"); 
            for (var loop1=0;loop1<markers.length;loop1++)
			{
                var lat = parseFloat(markers[loop1].getAttribute("lat"));  /* data is string. */
                var lng = parseFloat(markers[loop1].getAttribute("lng")); 
                var point = new GLatLng(lat,lng);
                var name = markers[loop1].getAttribute("name");
                var loc = markers[loop1].getAttribute("loc");
				var exposed = markers[loop1].getAttribute("exp");
				var drilled = markers[loop1].getAttribute("drill");
				var diameter = markers[loop1].getAttribute("diam");
                //alert(name);
                var marker = createMarker(point,name,loc,exposed,drilled,diameter);
                map.addOverlay(marker);

				// Add circles.
				if (disp_diam == true) {
					var thisDiameter = diameter * 1000;
					if (exposed == "Y")
						map.addOverlay(GPolygon.Circle(point,thisDiameter,"#000000",1,1,"#ff0000",0.2));
					else
						map.addOverlay(GPolygon.Circle(point,thisDiameter,"#000000",1,1,"#00ff00",0.2));
				}

				//BigMeteors.push(marker);
				/*
                var marker = createMarker(point,name,loc,exposed,drilled);
				map.addOverlay(marker);
				BigMeteors[loop1] = marker;
				*/
            }   /* End of For Loop */
        }   /* End of if */
		//mm.addMarkers(BigMeteors,0,17);
        //mm.refresh();
    };  /* End of state change function */
    request.send(null);
}
//]]>