diff --git a/Repositories/Maps/css_map.js b/Repositories/Maps/css_map.js
new file mode 100755
index 0000000..148263c
--- /dev/null
+++ b/Repositories/Maps/css_map.js
@@ -0,0 +1,67 @@
+// Global XMLHttpRequest object.
+var httpRequest = new XMLHttpRequest();
+
+function load( startMillis, numEntries )
+{
+ // Open the request. Setting the third argument to TRUE makes the
+ // request asynchronous, i.e., the browser doesn't wait.
+ http.open('GET', 'css_map.php?top=' + numEntries, true);
+
+ // When we hear something from the server, call the handleResponse()
+ // function to find out what happened.
+ http.onreadystatechange = function ()
+ {
+ if(http.readyState == 4)
+ {
+ if (http.status == 200) // Did it work?
+ {
+ // Grab the response content.
+ var response = http.responseText;
+
+ }
+ else
+ {
+ // Do some sort of error handling.
+ }
+ }
+ };
+
+ // Send the request.
+ http.send(null);
+
+
+ GDownloadUrl( "google_map_generate_data.pl?top=" + numEntries,
+ function( data, responseCode )
+ {
+ var xml = GXml.parse( data );
+ var markerlist = xml.documentElement.getElementsByTagName( "marker" );
+ for ( var i = 0; i < markerlist.length; i++ )
+ {
+ var point = new GLatLng( parseFloat( markerlist[i].getAttribute( "lat" ) ),
+ parseFloat( markerlist[i].getAttribute( "long" ) ) );
+ map.addOverlay( createMarker( point, markerlist[i].getAttribute( "city" ),
+ markerlist[i].getAttribute( "abs" ), markerlist[i].getAttribute( "dl" ) ) );
+ }
+ // Grab finishing time. We have to do this here rather than in
+ // the main part of the load() function because the map data
+ // are loaded asynchronously.
+ var endTime = new Date();
+ var numUA = xml.documentElement.getAttribute( "ua" );
+ var numUD = xml.documentElement.getAttribute( "ud" );
+ document.getElementById( "timer" ).innerHTML =
+ '' +
+ xml.documentElement.getAttribute( "dl" ) +
+ ' downloads' + ( ( numUD > 0 ) ? ( ' (+' + numUD + ' unmappable)' ) : '' ) +
+ ' & ' +
+ xml.documentElement.getAttribute( "abs" ) +
+ ' abstracts' + ( ( numUD > 0 ) ? ( ' (+' + numUA + ' unmappable)' ) : '' ) +
+ ' from ' +
+ markerlist.length +
+ ' cities (' +
+ xml.documentElement.getAttribute( "ips" ) +
+ ' IP addresses), page generated in ' +
+ ( endTime - startMillis ) +
+ ' ms.';
+ } );
+ }
+}