/**
 * DenkXweb, Version 1.0.0
 * Copyright (c) 2005 rjm business solutions GmbH
 * All rights reserved, license restrictions apply
 *
 * $Id$
 *
 * Behandlung von Mausereignissen auf der Kartenanzeige:
 * Unterstützt werden klickbare Bereiche (s. hover.js) und
 * das Ziehen von Messlienen (s. measurement.js)
 */


var map = new Map("map", 400);
var areaMan = new AreaManager(map);
var measureMan = new MeasureManager(map, "mapCanvas");

var measureMode = false;
var measuring = false;


function handleDocMouseDown(e) {
  var mouseEvent = new MouseEvent(e);

  if (measureMode || mouseEvent.getCtrlKey()) {
    if (! measureMode)
      map.setImgCursor("crosshair");

    measuring = measureMan.setStartPt(mouseEvent);
    
    // evtl. gerade angezeigter Tooltip entfernen,
    // damit Mess-Linie komplett angezeigt werden kann
    if (measuring) {
      areaMan.hideTooltip();

      // keine weiteren Handler zulassen
      return false;  
    }
  }
}

function handleDocMouseMove(e) { 
  var mouseEvent = new MouseEvent(e);

  if (measuring)
    measureMan.setNewEndPt(mouseEvent);
  else
    if (!measureMode)
      areaMan.hover(mouseEvent);
}

function handleDocMouseUp(e) {
  var mouseEvent = new MouseEvent(e);

  if (measuring) {
    measureMan.setNewEndPt(mouseEvent);
    measuring = false;

    if (!measureMode)
      map.setImgCursor("default");
  } else
    if (!measureMode)
      areaMan.redirect(mouseEvent);
}



if (! isIE) {
  document.captureEvents(Event.MOUSEDOWN);
  document.captureEvents(Event.MOUSEUP);
  document.captureEvents(Event.MOUSEMOVE);
 }

document.onmousedown = handleDocMouseDown;
document.onmousemove = handleDocMouseMove;
document.onmouseup   = handleDocMouseUp;


