function load( startMillis, numEntries, showOnly, eprintIDs ) { if ( GBrowserIsCompatible() ) { // Create new map. var map = new GMap2( document.getElementById( "map" ) ); map.addControl( new GSmallMapControl() ); map.addControl( new GMapTypeControl() ); map.setCenter( new GLatLng(10, 0), 2 ); // Creates a marker at the given point with a label // containing the other remaining arguments. function createMarker( point, city, abstracts, downloads ) { var marker = new GMarker( point ); GEvent.addListener( marker, "click", function() { marker.openInfoWindowHtml( "<strong>" + city + "</strong> (" + abstracts + " abstracts, " + downloads + " downloads)" ); } ); return marker; } // Download the data and load it on the map. // The format we expect is: // <markers abs="200" ua="1" dl="100" ud="5" ips="27"> // <marker city="Timbuktu" lat="37.441" long="-122.141" abs="10" dl="0" /> // <marker city="West Bromwich" lat="37.322" long="-121.213" abs="22" dl="49" /> // </markers> GDownloadUrl( "google_map_generate_data.pl?top=" + numEntries + "&show=" + showOnly + "&eprint=" + eprintIDs, 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" ) ) ); } var numA = xml.documentElement.getAttribute( "abs" ); var numD = xml.documentElement.getAttribute( "dl" ); var numUA = xml.documentElement.getAttribute( "ua" ); var numUD = xml.documentElement.getAttribute( "ud" ); // 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(); document.getElementById( "timer" ).innerHTML = ( ( numD > 0 ) ? ( '<span style="color:red;">' + numD + ' downloads' + ( ( numUD > 0 ) ? ( ' (+' + numUD + ' unmappable)' ) : '' ) + '</span> ' + ( ( numA > 0 ) ? '& ' : '' ) ) : '' ) + ( ( numA > 0 ) ? ( '<span style="color:blue;">' + numA + ' abstracts' + ( ( numUD > 0 ) ? ( ' (+' + numUA + ' unmappable)' ) : '' ) + '</span> ' ) : '' ) + 'from ' + markerlist.length + ' cities (' + xml.documentElement.getAttribute( "ips" ) + ' IP addresses), page generated in ' + ( endTime - startMillis ) + ' ms.'; } ); } }