<?php

$def_image = '/pic/glasses.jpg';
$image = isset($_GET['image']) ? $_GET['image'] : $def_image;

require_once 'exifgps.inc.php';

function image_exif_gps($file) {
  if (
    ($exif = @exif_read_data($_SERVER['DOCUMENT_ROOT'] . '/' . $file, 0, true)) !== false &&
    isset($exif['GPS']) && $exif['GPS']
  ) {
    exif_gps_vars($exif, $lat, $lon, $alt);
    // $d = print_r($exif['GPS'], true);
    // Return a JavaScript dictionary containing all useful GPS info
    return "{isValid: true, lat: $lat, lon: $lon, alt: $alt, file: \"$file\"}" .
      (isset($d) ? "\n/* $d*/": '');
  }
  else
    return "{isValid: false, file: \"$file\"}";
}

require 'app.inc.php';
require 'appmenu.inc.php';

$app = new Application('A Google map from EXIF GPS data', $menu);

$app->js_includes[] = 'http://maps.google.com/maps?file=api&v=2&sensor=false&key=ABQIAAAAfJCC_y3t6PhD554YaP1N3BRzNbUJ5gPsIhhZDTbsJVnTmyE66xSPz4nmEa7HmbRS-3Yrms4FAbkBxg';
$app->js_includes[] = '/js/2butils.js';
$app->js_includes[] = '/js/gmap.js';

$app->head_add = "<script type='text/javascript'>

var gMap, gLat, gLon;

addLoadEvent(function() {
    gLat = document.getElementById('lat');
    gLon = document.getElementById('lon');

    if (!(gMap = GMinit('map')))
        return;

    gMap.addMarkerOverlay(47.0452, 7.2713, 'Home, sweet home!');
    var gps = gMap.gps = " . image_exif_gps($image) . ";
    if (gps.isValid) {
        gMap.setCenter(
            gMap.addMarkerOverlay(gps.lat, gps.lon, LatLngToHtml(gps.lat, gps.lon)),
            14, G_SATELLITE_MAP
        );
        gLat.value = gps.lat;
        gLon.value = gps.lon;
    }
    GEvent.addListener(gMap, 'click', function(obj, pos) {
        gLat.value = pos.lat();
        gLon.value = pos.lng();
    });
});
</script>";

$app->header();
?>

<h2><a href="<?php echo preg_replace('#^/album/#', '/album/-image/', $image) ?>"><?php echo $image ?></a></h2>
<p></p>

<div id="map" class="float" style="width: 500px; height: 500px; margin: 7px 14px 14px 0;"></div>

<div class="float">
<img src="<?php echo $image ?>" alt="<?php echo $image ?>" width="120" />
<?php if ($image == $def_image) { ?>
<p>© 2006 <a href="http://www.senklo.ch/">matthias hänni</a></p>
<?php } ?>
</div>

<div class="float">
<form method="post" action="exifupd.php">
<input type="hidden" name="image" value="<?php echo $image ?>" />
<label for="lat">Latitude:</label>
<input type="text" id="lat" name="lat" /><br />
<label for="lon">Longitude:</label>
<input type="text" id="lon" name="lon" /><br />
<button type="submit">Update</button>
</form>
</div>

<?php $app->footer() ?>