function showhide(ebene,was) {
	/*** ebene sichtbar/unsichtbar ***/
	if (ebene!=strNoInfo) {
		if (was) {
			todo="visible";
			nstodo=true;
		}
		else {
			todo="hidden";
			nstodo=false;
		}
		if (ns6) {
			document.getElementById(ebene).style.visibility=todo;
		}
		else if (ns4) {
			document.layers[ebene].visibility=nstodo;
		}
		else if (ie) {
			document.all[ebene].style.visibility=todo;
		}
	}
}
//dragndrop
zmax=1;
abstandlinks=0;
abstandoben=0;
punktabstand=0;
ebenen=new Array();
//ortaktuell=""; //über welchem ort ist die maus
ebenennamen=new Array();


//alte x-y werte, um festzustellen, ob ein punkt verschoben wurde
altx=0;
alty=0;
//orte=new Array();
function checkBrowser() {
   if (document.all) {
      ie=true;
      ns4=false;
      ns6=false;
   }
   else if (document.getElementById) {
      ns6=true;
      ie=false;
      ns4=false;
   }
   else if (document.layers) {
      ns4=true;
      ns6=false;
      ie=false;
   }
}
function getCoords (x1,y1) {
	/*if (ortaktuell!="") {
		document.frm.elements[ortaktuell].value=x1+"*"+y1;		
	}*/
   document.frm.koordx.value=x1;
	document.frm.koordy.value=y1;
}
function init(){
	checkBrowser();
	ebenen=new Array();
	//alert(ebenennamen.length);
	for(i=0;i<ebenennamen.length;i++){		
		ebenen[i]=new dragObject(ebenennamen[i]);
		ebenen[i].bezeichnung.onmouseover=mover;
		ebenen[i].bezeichnung.onmouseout=mout;
	}
	if(ns4) 
      document.captureEvents(Event.MOUSEMOVE | Event.MOUSEDOWN | Event.MOUSEUP);    
	document.onmousedown=mdown
	document.onmouseup=mup
	document.onmousemove=mmove;
}
function dragObject(obj){
   if (ns4) {
		this.stylebez = eval("document.layers." +obj);
      this.bezeichnung = eval("document.layers." +obj);
      this.x = this.bezeichnung.left;
      this.y = this.bezeichnung.top;
   }
   else if (ie) {
      this.stylebez = document.all[obj].style;
      this.bezeichnung = document.all[obj];
      this.x = this.stylebez.pixelLeft;
      this.y = this.stylebez.pixelTop;
   }
   else if (ns6) {
      this.stylebez = document.getElementById(obj).style;
      this.bezeichnung = document.getElementById(obj);
      var temp = this.stylebez.left;
      var ende = temp.indexOf("p");
      var wert=temp.slice(0,ende);
      this.x = wert;
      temp = this.stylebez.top;
      ende = temp.indexOf("p");
      wert=temp.slice(0,ende);
      this.y = wert;
   }
   this.moveIt=b_moveIt;
	this.drueber=false;
   this.ziehbar=false;
   this.clickedX=0;
   this.clickedY=0;
   return this;
}
function b_moveIt(x,y){
   status=x;
   this.x=x; 
   this.y=y;
	this.stylebez.left=this.x-punktabstand;
	this.stylebez.top=this.y-punktabstand;
   xneu=this.x;
   yneu=this.y;
   //getCoords(xneu-abstandlinks,yneu-abstandoben);
   //status = y;
}
function mover(e){ 
  if (ns4 || ns6) {
      index = e.target.id.substr(1,2);
		//alert (index);
      ebenen[parseInt(index)].drueber=true;
  }
  else if (ie) {
  		//alert (window.event.srcElement.tagName);
  		if(window.event.srcElement.tagName=='IMG' && window.event.srcElement.id!="") {
         index = window.event.srcElement.id.substr(1,2);
			ebenen[parseInt(index)].drueber=true;
      }
  }
  //alert (orte[parseInt(index)]);
  //ortzeigen(orte[parseInt(index)],1);
}
function mout(e){
	if (ns4 || ns6) {
      index = e.target.id.substr(1,2);
      ebenen[parseInt(index)].drueber=false;
  }
  else if (ie) {
      if(window.event.srcElement.tagName=='IMG' && window.event.srcElement.id!="") {
         index = window.event.srcElement.id.substr(1,2);
         ebenen[parseInt(index)].drueber=false;
      }
  }
  //ortzeigen(orte[parseInt(index)],0);
}
function mup(){
   for(var i=0; i<ebenen.length;i++){
		if(ebenen[i].drueber) {
			ebenen[i].ziehbar=false;
			weg=0;
			if (weg!=1) {
				if (ebenen[i].x!=altx || ebenen[i].y!=alty) {
					gesetzt(ebenen[i].x,ebenen[i].y,"");
				}
			}
		}	
	}
}
function mdown(e) {
	
	x=(ns4 || ns6)?e.pageX:event.x;
   y=(ns4 || ns6)?e.pageY:event.y;
	
	for(var i=0; i<ebenen.length;i++){
		//alert (ebenen[i].drueber);
		if(ebenen[i].drueber) {
			//alert ("hier");
			ebenen[i].ziehbar=true;
			ebenen[i].clickedX=x-ebenen[i].x;
         ebenen[i].clickedY=y-ebenen[i].y;
			zmax ++;
			ebenen[i].stylebez.zIndex=zmax;
			altx=ebenen[i].x;
  			alty=ebenen[i].y;
			//alert (altx);
      }
	}
}
function mmove(ev){
   x=(ns4 || ns6)?ev.pageX:event.x;
   y=(ns4 || ns6)?ev.pageY:event.y;
   for(var i=0; i<ebenen.length;i++){
		if(ebenen[i].ziehbar){
         ebenen[i].moveIt(x-ebenen[i].clickedX,y-ebenen[i].clickedY);
         //status=x-ebenen[0].clickedX;
		}
	}
   return false;      
}
var strNoInfo="";
function gesetzt(koordx,koordy,jpoint) {
	/*** ein ebenenobjekt von der eingabeebene erstellen und positionieren ***/
	eingabefenster=new dragObject('jpoint');
	eingabefenster.moveIt(koordx+20,koordy);
	/*** sichtbar machen ***/
	showhide('jpoint',1);
	/*** wenn eine schon vorhandener jpoint geklickt wurde ***/
	if (jpoint!="") {
		eingabefenster.moveIt(koordx+20+difflinks,koordy+diffoben);
		/*** den text des geklickten jpoints ins eingabefenster ***/
		document.frm.jpointtext.value=document.frm.elements[jpoint+"text"].value;
		/*** die position des jpoints im array ins hidden field ***/
		document.frm.jpointposition.value=document.frm.elements[jpoint+"position"].value;
		/*** die Infoebene unsichtbar machen ***/
		showhide(jpoint,0);
		/*** die infoebene merken, damit sie nicht mehr erscheint ***/
		strNoInfo=jpoint;		
	}
	else
		document.frm.jpointposition.value=-1;
	document.frm.jpointx.value=koordx;
	document.frm.jpointy.value=koordy;	
}

