var request;
var output=document.getElementById('output');

function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = false;
      }
    }
  }

  if (!request) output.innerHTML='Error initializing XMLHttpRequest';
}

createRequest();

// on-domain, non-caching proxy for google latitude url
var url="http://www.bob-o-rama.com/includes/whereisbob/wheres-bob-json.php";

// really ought to be async
request.open("GET", url, false);

request.send(null);
var data  = eval('('+request.responseText+')');
var lng = data.features[0].geometry.coordinates[0];
var lat = data.features[0].geometry.coordinates[1];
var map = "http://maps.google.co.uk/maps?q=" + lat + "," + lng;
var place = data.features[0].properties.reverseGeocode;
var timestamp = data.features[0].properties.timeStamp;
var meters = data.features[0].properties.accuracyInMeters;
var now = Math.floor(new Date().getTime()/1000);
var ago = now-timestamp;
var pretty = ago + ' seconds ago';

if(ago>500) pretty = 'a few minutes ago';
if(ago>1800) pretty = 'half an hour ago';
if(ago>3600) pretty = 'about an hour ago';
if(ago>7200) pretty = floor(ago/60) + ' hours ago';
if(ago>86400) pretty = 'at least a day ago';
if(ago>259200) pretty = 'ages ago';

output.innerHTML = 'Bob was in <a href="' + map + '">' + place + '</a> ' + pretty + ' (inaccurate to about ' + meters + ' meters';

