
if (       ( typeof( window[ 'x' ] ) == "undefined" ) //load up the defaults
	|| ( typeof( window[ 'y' ] ) == "undefined" ) )
{
	z=1;
	x=-77.036476;
	y=38.900585;
}

var hashPoints = {}; // hashtable to store points sent to google maps api

map = new GMap(document.getElementById("map"));

map.centerAndZoom(new GPoint(x,y), z);

map.addControl(new GMapTypeControl());
map.addControl(new GLargeMapControl());

GEvent.addListener(map, "moveend", function() {
	var zoom= map.getZoomLevel();
	var bounds = map.getBoundsLatLng();
	if (zoom!=lastzoom) map.closeInfoWindow();
	
	if (lastbounds==null || bounds.minX!=lastbounds.minX || bounds.minY!=lastbounds.minY || bounds.maxX!=lastbounds.maxX || bounds.maxY!=lastbounds.maxY)
	{
		if (lastbounds!=null && zoom==lastzoom && numPoints<maxPoints) {
	
			if (bounds.minX < lastbounds.minX) {
		
				if (bounds.minY < lastbounds.minY) 
					startRequest(bounds.minX, lastbounds.minY, lastbounds.minX, bounds.maxY, zoom, 0, bounds.minX, bounds.minY, bounds.maxX, lastbounds.minY);
				else 
					startRequest(bounds.minX, bounds.minY, lastbounds.minX, lastbounds.maxY, zoom, 0, bounds.minX, lastbounds.maxY, bounds.maxX, bounds.maxY);
					
			} else {
		
				if (bounds.minY < lastbounds.minY) 
					startRequest(lastbounds.maxX, lastbounds.minY, bounds.maxX, bounds.maxY, zoom, 0, bounds.minX, bounds.minY, bounds.maxX, lastbounds.minY);
				else 
					startRequest(lastbounds.maxX, bounds.minY, bounds.maxX, lastbounds.maxY, zoom, 0, bounds.minX, lastbounds.maxY, bounds.maxX, bounds.maxY);
			}		
			

		} else {
			startRequest(bounds.minX, bounds.minY, bounds.maxX, bounds.maxY, zoom, 1);
		}
	}	
	
	

	lastbounds=bounds;
	lastzoom=zoom;		
	
	//var cx=(lastbounds.minX+lastbounds.maxX)/2;
	//var cy=(lastbounds.minY+lastbounds.maxY)/2;
	//document.getElementById("urlbox").innerHTML="<a href=\"http://www.ass.org/ass/index.php?x="+cx+"&y="+cy+"&zoom="+zoom+"\" target=_new>Link to this page</a>";

	
});


