var map;
var geo;
var lat,lng;

function showLocation(pos) {
  var c = pos.coords;
  lat = c.latitude;
  lng = c.longitude;
  var p = new GLatLng(lat,lng);
  var m = new GMarker(p);
  map.addOverlay(m);
  map.panTo(p);
}

function addMailLink() {
  var a = document.getElementById('mailLink');
  if (!a) return;
  a.onclick = function() {
    var msg = document.getElementById("status").value;
    var useLocation = document.getElementById('useLocation').checked;
    var subject = useLocation ? (lat + "," + lng) : '';
    document.location = 'mailto:?body=' + escape(msg) + '&subject=' + escape(subject);
  };
  a.innerHTML = 'mail';
  a.href = '#';
}

function beforePostSubmit() {
  document.getElementById('latInput').value = lat;
  document.getElementById('lngInput').value = lng;
  return true;
}


function errorLocation(error) {
  alert(error.code + ":" + error.message);
}

function onLoad() {

  // load the map
  map = new GMap2(document.getElementById("map"));
  map.setCenter(new GLatLng(37.4419, -122.1419), 13);
  map.setUIToDefault();
  
  // load the geolocation
  geo = navigator.geolocation;
  if (geo) {
    geo.getCurrentPosition(showLocation,errorLocation,
                           {enableHighAccuracy:true, maximumAge:600000});
  } else {
    alert("Couldn't create geolocation");
  }

  addMailLink();

}
