var objDrag = null;     // Element, über dem Maus bewegt wurde
var zindexcounter=1000;
  var mouseX   = 0;       // X-Koordinate der Maus
  var mouseY   = 0;       // Y-Koordinate der Maus

  var offX = 0;           // X-Offset der Maus zur linken oberen Ecke des Elements
  var offY = 0;           // Y-Offset der Maus zur linken oberen Ecke des Elements

  var Breite = 0;
  var Hoehe  = 0;
    
  // Browserweiche
  IE = document.all&&!window.opera;
  DOM = document.getElementById&&!IE;
  init();

  function init(){
    // Initialisierung der Überwachung der Events
    document.onmousemove = doDrag;  // Bei Mausbewegung die Fkt. doDrag aufrufen
    document.onmouseup = stopDrag;  // Bei Loslassen der Maustaste die Fkt. stopDrag aufrufen
    Breite = Fensterbreite();
    Hoehe = Fensterhoehe();
  }


  // Wird aufgerufen, wenn die Maus über einer Box gedrückt wird
  function startDrag(objElem) {
    // Objekt der globalen Variabel zuweisen -> hierdurch wird Bewegung möglich
    objDrag = objElem;
    objDrag.style.zIndex=zindexcounter;zindexcounter++;
    // Offsets im zu bewegenden Element ermitteln
    offX = mouseX - objDrag.offsetLeft;
    offY = mouseY - objDrag.offsetTop;
  }

  // Wird ausgeführt, wenn die Maus bewegt wird
  function doDrag(ereignis) {
    
    // Aktuelle Mauskoordinaten bei Mausbewegung ermitteln
    mouseX = (IE) ? window.event.clientX : ereignis.pageX;
    mouseY = (IE) ? window.event.clientY : ereignis.pageY;

    // Wurde die Maus über einem Element gedrück, erfolgt eine Bewegung
    if (objDrag != null) {
      // Element neue Koordinaten zuweisen
      new_mouseX = mouseX - offX;
      if (new_mouseX < 1){new_mouseX=1;}
      if (new_mouseX > (Fensterbreite() - objDrag.offsetWidth)){new_mouseX =(Fensterbreite() - objDrag.offsetWidth-10);}
      new_mouseY = mouseY - offY;
      if (new_mouseY < 1){new_mouseY=1;}
      if (new_mouseY > (Fensterhoehe() - objDrag.offsetHeight)){new_mouseY =(Fensterhoehe() - objDrag.offsetHeight);}
      objDrag.style.left = new_mouseX + "px";
      objDrag.style.top = new_mouseY + "px";
    }
  }

  // Wird ausgeführt, wenn die Maustaste losgelassen wird
  function stopDrag(ereignis) {
    // Objekt löschen -> beim Bewegen der Maus wird Element nicht mehr verschoben
    objDrag = null;
  }
 //------------------------------------------------------------------------------- 
function Fensterbreite () {
  if (window.innerWidth) {
    return window.innerWidth;
  } else if (document.body && document.body.offsetWidth) {
    return document.body.offsetWidth;
  } else {
    return 0;
  }
}

function Fensterhoehe () {
  if (window.innerHeight) {
    return window.innerHeight;
  } else if (document.body && document.body.offsetHeight) {
    return document.body.offsetHeight;
  } else {
    return 0;
  }
}

