/* This script requires:
 *  1. OpenLayers (http://www.openlayers.org/api/OpenLayers.js)
 *  2. OpenStreetMap (http://www.openstreetmap.org/openlayers/OpenStreetMap.js)
 */

var map, overlay;
var overview, lutherhaus, schillerkirche, marienkirche;

function init(tight) {
  var tight = (tight == null) ? false : tight;
  var options = {
    numZoomLevels: 18,
    projection: new OpenLayers.Projection("EPSG:900913"),
    displayProjection: new OpenLayers.Projection("EPSG:4326"),
    controls: []
  }
  map = new OpenLayers.Map('map',options);

  map.addLayer(new OpenLayers.Layer.OSM.Mapnik('Mapnik'));
  map.addLayer(new OpenLayers.Layer.OSM.Osmarender('Osmarender'));

  setPositions();

  overlay = new OpenLayers.Layer.Markers('Overlay', {visibility: true, displayInLayerSwitcher: false});
  addMarkers();
  map.addLayer(overlay);

  if (!tight) {
    map.addControl(new OpenLayers.Control.PanZoom());
    map.addControl(new OpenLayers.Control.LayerSwitcher());
    map.addControl(new OpenLayers.Control.Navigation({zoomWheelEnabled:false}));
  }
}

function lonLat(lon, lat) {
  return new OpenLayers.LonLat(lon, lat).clone().transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
}

function setPositions() {
  overview       = lonLat(11.604   , 50.928   );
  lutherhaus     = lonLat(11.592371, 50.924489);
  schillerkirche = lonLat(11.600500, 50.932486);
  marienkirche   = lonLat(11.625115, 50.919959);
}

function addMarkers() {
  addMarker(lutherhaus, '/images/map-marker/l.png');
  addMarker(schillerkirche, '/images/map-marker/s.png');
  addMarker(marienkirche, '/images/map-marker/m.png');
}

function addMarker(position, image) {
  var icon = new OpenLayers.Icon(
    image,
    new OpenLayers.Size(20, 34),
    new OpenLayers.Pixel(-10, -34),
    null
  );
  overlay.addMarker(new OpenLayers.Marker(position, icon));
}

function goTo(position, zoom) {
  map.setCenter(position, zoom);
}

// vim: set sw=2 sts=2:

