///////////////////////////////////////////////////////
/* DRAG AND DROP-Tool mit DB created by webdrache.ch */
///////////////////////////////////////////////////////

window.addEventListener?window.addEventListener("load",init,false):window.attachEvent("onload",init);
function init() {
   // Im Array divs[] sammeln wir alle (positionierten) class-Ebenen der Seite:
   //divs = document.getElementsByClassName("ebenen");
   divs = $$(".ebenen");
   // Im Array divs[] sammeln wir alle (positionierten) div-Elemente der Seite:
   /*divs = (document.layers) ? document.layers :
          (document.all) ? document.all.tags("DIV") : 
          document.getElementsByTagName("DIV");*/
   // Ebenen positionieren:
   for (i=0; i<divs.length; i++) {
         if (document.layers) {
            divs[i].left = posleft[i];
            divs[i].top = postop[i];
         }
         else {
            divs[i].style.left = posleft[i];
            divs[i].style.top = postop[i];
 			//alert(posleft[i]);
 			//alert(postop[i]);
         }
   }
   // Jetzt weisen wir jeder Ebene den MouseDown-Handler zu - ausser den zwei letzten => das sind die zwei Ebenen mit den Formularen -2
   for (i=0; i<divs.length; i++) {
	 if(bName.indexOf("explorer") > -1) {
   // captureEvents-Befehl (veraltet) funktioniert auch im Netscape 4
     	if (divs[i].captureEvents)
         	divs[i].captureEvents(Event.MOUSEDOWN);
         	divs[i].onmousedown = mdown;
	 }
	 else {
   // addEventListener-Befehl funktioniert nicht im IE 
/*      	if (divs[i].addEventListener) {
	        divs[i].addEventListener("mousedown", mdown, true);
  	 	}*/ 
		Event.observe(divs[i], 'mousedown', mdown);
	 }
   }	
   // die andern Handler nicht vergessen:
	 if(bName.indexOf("explorer") > -1) {
   // captureEvents-Befehl (veraltet) funktioniert auch im Netscape 4
   		if (document.captureEvents)
      		document.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
	  		document.onmouseup = mup;
	  		document.onmousemove = mmove;
	 }
	 else {
   // addEventListener-Befehl funktioniert nicht im IE 
/*   		if (document.addEventListener) {
			document.addEventListener("mouseup", mup, true);
			document.addEventListener("mousemove", mmove, true);
		}*/
		Event.observe(this, 'mouseup', mup);
		Event.observe(this, 'mousemove', mmove);
	 }

   if (pos_ausDB != "") {
      // Array mit Wertpaaren erzeugen:
      var divPosArray = pos_ausDB.split("+");
      for (i=0; i<divs.length; i++) {
         // Werte aus Wertpaar lesen:
         var posX = divPosArray[i].split(",")[0];
         var posY = divPosArray[i].split(",")[1];
         // Elemente positionieren:
         if (document.layers) {
            divs[i].left = posX;
            divs[i].top = posY;
         }
         else {
            divs[i].style.left = posX;
            divs[i].style.top = posY;
         }
      }
   }
}

function mdown(e){
   // Wir muessen onmousedown herausfinden, welches div-Element aktiviert wurde. Dazu benutzen wir "this". 
   // Dann zaehlen wir den bislang höchsten z-Index Wert eins nach oben und weisen ihn dem aktiven div zu. Der Rest ist wie gehabt.
   aktivDiv = this;
   if (document.layers) aktivDiv.zIndex = aktivZindex++;
   else aktivDiv.style.zIndex = aktivZindex++;
   drag = "aktiv";
   aktivX = (e) ? e.pageX : event.clientX + document.body.scrollLeft;
   aktivY = (e) ? e.pageY : event.clientY + document.body.scrollTop; 
   return false;
}

function mmove(e){
   // fast keine Aenderungen im Vergleich zum einfachen Drag&Drop
   if (drag == "inaktiv") return;
   var neuX = (e) ? e.pageX : event.clientX + document.body.scrollLeft;
   var neuY = (e) ? e.pageY : event.clientY + document.body.scrollTop;
   var distX = (neuX-aktivX);
   var distY = (neuY-aktivY);
   aktivX = neuX;
   aktivY = neuY;
   if (document.layers) {
      aktivDiv.left += distX;
      aktivDiv.top += distY;
   }
   else {
      aktivDiv.style.left = parseInt(aktivDiv.style.left) + distX;
      aktivDiv.style.top = parseInt(aktivDiv.style.top) + distY;
   }
} 

var positionenString = "";

function mup(e){
   drag = "inaktiv";
   positionenString = "";
   // Positionen-String zusammenstellen:
   for (i=0; i<divs.length; i++) {
      var posX = (document.layers) ? divs[i].left : parseInt(divs[i].style.left);
      var posY = (document.layers) ? divs[i].top : parseInt(divs[i].style.top);
      if(i==0)positionenString += posX + "," + posY;
      else positionenString += "+" + posX + "," + posY;
   }
}
/////////////////////////////
/* Ende DRAG AND DROP-Tool */
/////////////////////////////
