	var MausPosX =0;		//Aktuelle Mausposition
	var MausPosY =0;		//Aktuelle Mausposition
	document.onmousemove = function(evt) {
		if (typeof evt == 'undefined') {
			myEvent = window.event;
		} else {
			myEvent = evt;
		}
		if(myEvent.clientX){
			MausPosX = myEvent.clientX+document.body.scrollLeft;
			MausPosY = myEvent.clientY+document.body.scrollTop;
		}
		else if(myEvent.pageX){
			MausPosX = myEvent.pageX+window.pageXOffset;
			MausPosY = myEvent.pageY+window.pageYOffset;
		} 
	
		drag(evt);
	};


function HrefReload()
  {
            var name = location.search;
            var customer = name.slice(1, name.length);

            arPar = new Array();
            arPar = customer.split("&");
            var MerkID;
			var MerkLang;
			var MerkUserid;
            for (var i =0; i < arPar.length; i++)
            {
                        var posGleich = 0;
                        if (arPar[i].slice(0, arPar[i].indexOf("=")) == "ID")
                        {
                                   MerkID = (arPar[i].slice(arPar[i].indexOf("=") +1, arPar[i].length));
                        }
                        if (arPar[i].slice(0, arPar[i].indexOf("=")) == "lang")
                        {
                                   MerkLang = (arPar[i].slice(arPar[i].indexOf("=") +1, arPar[i].length));
                        }
                        if (arPar[i].slice(0, arPar[i].indexOf("=")) == "userid")
                        {
                                   MerkUserid = (arPar[i].slice(arPar[i].indexOf("=") +1, arPar[i].length));
                        }
            };
            //alert(MerkID);#

            if (MerkID > 0)
            {
                        for (var i = 0; i < document.links.length; ++i)
                        {
                                   //alert(document.links[i].href);
                                   var tmphref = document.links[i].href;

									if (!(tmphref.indexOf("ID=") > 0))
									 {
										   if(tmphref.indexOf("?") > 0)
										   {
													   tmphref = tmphref + "&ID=" + MerkID + "&lang=" + MerkLang + "&benutzer=" + MerkUserid;
										   }
										   else
										   {
													   tmphref = tmphref + "?ID=" + MerkID + "&lang=" + MerkLang + "&benutzer=" + MerkUserid;
										   }
											document.links[i].href = tmphref;
									}
                        }
            } 
  }

		  var PopUpWindow;
		  function PopUp(val,vwidth,vheight) {
			if (val != "null") {
				if (PopUpWindow)
					{
						PopUpWindow.close();
					}
					PopUpWindow = window.open(val, "PopUp", "width="+ vwidth +",height="+ vheight +",status=yes,scrollbars=yes,resizable=yes,menubar=yes,location=yes,toolbar=yes");
				}
		  }


	ModuAr	= new Array(50000);

	//ModuAr	=  Array('s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s','s');
	function openUp(elem,i)
	{
		if((ModuAr[elem.substr(3)]=='s')||(ModuAr[elem.substr(3)]==undefined)){
		  ShowDiv(elem,i);
		  ModuAr[elem.substr(3)] = 'h';
		}else{
		  HideDiv(elem,i);
		  ModuAr[elem.substr(3)] = 's';
		}
	}

	function ShowDiv(elem,i) { displayn('s',elem,i);}
	function HideDiv(elem,i) { displayn('h',elem,i);}

	function getX(el) {
	   x = el.offsetLeft;
	   if (!el.offsetParent)  return x;
	   else return (x+getX(el.offsetParent));
	}

	function getY (el) {
		y = el.offsetTop;
		if (!el.offsetParent) return y;
		else return (y+getY(el.offsetParent));
	}

	function getWidth(el) {
	   x = el.offsetWidth;
	   if (!el.offsetParent) return x;
	   else return (x+getX(el.offsetParent));
	}

	function getHeight (el) {
		y = el.offsetHeight;
		if (!el.offsetParent) return y;
		else return (y+getY(el.offsetParent));
	}



function leftOffset(objElem){
  var objBody = null;
  var intOffsetX = 0;

  // Passendes Body-Objekt ermitteln
  if(document.all && !window.opera)
    objBody =(window.document.compatMode == "CSS1Compat")? window.document.documentElement : window.document.body || null;
  else
    objBody = document.documentElement;

  // Scrollbreite ermitteln
  if (window.pageXOffset) {
    intOffsetX = window.pageXOffset;
  } else if(typeof objBody.scrollLeft == "number") {
    intOffsetX = objBody.scrollLeft;
  }
  return intOffsetX;
}

function inWidth(objElem){
  var objBody = null;
  var intWidth = 0;

  // Passendes Body-Objekt ermitteln
  if(document.all && !window.opera)
    objBody =(window.document.compatMode == "CSS1Compat")? window.document.documentElement : window.document.body || null;
  else
    objBody = document.documentElement;

  // Scrollbreite ermitteln
  if (window.innerWidth) {
    intWidth = window.innerWidth;
  } else if(typeof objBody.clientWidth == "number") {
    intWidth = objBody.clientWidth;
  }
  return intWidth;
}

function topOffset(objElem){
  var objBody = null;
  var intOffsetY = 0;

  // Passendes Body-Objekt ermitteln
  if(document.all && !window.opera)
    objBody =(window.document.compatMode == "CSS1Compat")? window.document.documentElement : window.document.body || null;
  else
    objBody = document.documentElement;

  // Scrollhöhe ermitteln
  if (window.pageYOffset) {
    intOffsetY = window.pageYOffset;
  } else if(typeof objBody.scrollTop == "number") {
    intOffsetY = objBody.scrollTop;
  }
  return intOffsetY;
}

function inHeight(objElem){
  var objBody = null;
  var intHeight = 0;

  // Passendes Body-Objekt ermitteln
  if(document.all && !window.opera)
    objBody =(window.document.compatMode == "CSS1Compat")? window.document.documentElement : window.document.body || null;
  else
    objBody = document.documentElement;

  // Scrollbreite ermitteln
  if (window.innerHeight) {
    intHeight = window.innerHeight;
  } else if(typeof objBody.clientHeight == "number") {
    intHeight = objBody.clientHeight;
  }
  return intHeight;
}

	var checkTableHeight = 0;
	var checkTableWidth = 0;

	function displayn(mode,ele,i){
		//der 2. Funktionsparameter wird nicht mehr benötigt

		var browserName=navigator.appName;
		if(mode=='s'){
			document.getElementById(ele).style.visibility='visible';
			document.getElementById(ele).style.display='inline';
		}else{
			document.getElementById(ele).style.display='none';
			document.getElementById(ele).style.visibility='hidden';
			modus = 's';
		}
		var divWidth = getWidth(document.getElementById(ele));
		var divHeight = getHeight(document.getElementById(ele));
		var id = "pos"+ele.substr(3);
		checkTableHeight = getHeight(document.getElementById(ele));
		checkTableWidth = getWidth(document.getElementById(ele));

		//umbenenen der id für kombinierte Reports
		$("#"+ele).siblings("div[style][id*='pos']").attr("id",id);
		document.getElementById(ele).style.left = getX(document.getElementById(id));
		//document.getElementById(ele).style.top = getY(document.getElementById('pos' + i));
		document.getElementById(ele).style.top = getY(document.getElementById(id));
		//document.getElementById(ele).style.top = getY(document.getElementById('pos' + i));

		var xPos = getX(document.getElementById(ele));
		var yPos = getY(document.getElementById(ele));

		//document.getElementById(ele).style.top = MausPosY-10;					   //Position=genau auf dem blauen balken		
		//alert(MausPosX + ">" + (checkTableWidth/2) );
		var winWidth = inWidth(ele);
		var scrWidth = leftOffset(ele)-12;
		var minLeft= 20;
		
		if (MausPosX > (checkTableWidth/2)) 
		{ 
			if (((checkTableWidth /2) + MausPosX) > winWidth + scrWidth )
			{
				//Es müßte nach rechts gescrollt werden, um das Fenster ganz zu sehen
				if ((winWidth + scrWidth - checkTableWidth) > minLeft)
				{
					// Ansonsten wird versucht zu schieben das nicht gescrollt werden muss.
					document.getElementById(ele).style.left = winWidth + scrWidth - checkTableWidth ;
				} else {
					// Wenn fenster breiter als Rand wird das Fenster auf die minimale position gesetz
					document.getElementById(ele).style.left = minLeft +scrWidth;
				}
			} else {
				if ((MausPosX - (checkTableWidth/2)) < scrWidth)
				{
					// Wenn fenster auf mitte Mausposition gesetzt werden würde, wäre es aufgrund des bereits gecrollten Weges nicht ganz zu sehen
					// daher wird es an den linken Rand des sichtbaren Bereiches gesetzt
					document.getElementById(ele).style.left = minLeft +scrWidth;
				} else {
				    // Normalfall, position wird von der Maus abhängigi gemacht, obere kante, mittig
					document.getElementById(ele).style.left = (MausPosX - (checkTableWidth/2));
				}
			}
		} else 	{
			//Minimaler abstand von links
			document.getElementById(ele).style.left = minLeft + scrWidth;
		}
		//Höhe #############################################################

		var winHeight = inHeight(ele);
		var scrHeight = topOffset(ele)-12; // Abzug für scrollbar
		var minDiff= 50;
		var minHeight = scrHeight + minDiff;
		if ((MausPosY + checkTableHeight) > (winHeight + scrHeight))
		{
			// Es müßte nach unten gescrollt werden, um das Fernster vollständig zu sehen
			var tmpHeights = document.getElementById(ele).style.top;

			//document.getElementById(ele).style.top = winHeight + scrHeight - checkTableHeight;
			if ((winHeight + scrHeight - checkTableHeight ) < minHeight)
			{
				//Wenn das Fenster nach unten vollständig zu sehen ist, ist die Kopfzeile nicht zu sehen --> Fenster weitest möglich nach oben setzen
				document.getElementById(ele).style.top = minHeight;
			} else {
				//Unterkante des Fenster entpricht Unterkante des sichtbaren Bereich
				document.getElementById(ele).style.top = winHeight + scrHeight - checkTableHeight;
			}
		} else {
			//Obekante Fenstrer = Maus position
			document.getElementById(ele).style.top = MausPosY-10;
		}


		//Wenn Tabelle grösse als 900x500 -> dann begrenzen
		//if (checkTableHeight!=0 && checkTableWidth!=0)
		//{
			if (checkTableHeight > 500) 
			{
				//Änderung für Kombinierte Reports
				//document.getElementById('data'+i).style.height = 500;
				$("#"+ele+" div[style][id*='data']").css("height","500");
				//document.getElementById('data'+i).style.width = checkTableWidth + 20;
				$("#"+ele+" div[style][id*='data']").css("width", checkTableWidth + 20);
			}
			if (checkTableWidth > 900)
			{
				document.getElementById(ele).style.width = 900;
			}
		//}
	}


	//Das Objekt, das gerade bewegt wird.
	var dragobjekt = null;

	// Position, an der das Objekt angeklickt wurde.
	var dragx = 0;
	var dragy = 0;

	// Mausposition
	var posx = 0;
	var posy = 0;

	function draginit() {
	 // Initialisierung der Überwachung der Events
	  //document.onmousemove = drag;
	  document.onmouseup = dragstop;
	  HrefReload();
	}


	function dragstart(element) {
	   //Wird aufgerufen, wenn ein Objekt bewegt werden soll.

	  dragobjekt = element;
	  dragx = posx - dragobjekt.offsetLeft;
	  dragy = posy - dragobjekt.offsetTop;
	}


	function dragstop() {
	  //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.
	  dragobjekt=null;
	}


	function drag(ereignis) {
	  //Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.
	  posx = document.all ? window.event.clientX : ereignis.pageX;
	  posy = document.all ? window.event.clientY : ereignis.pageY;
	  if(dragobjekt != null) {
		dragobjekt.style.left = (posx - dragx) + "px";
		dragobjekt.style.top = (posy - dragy) + "px";
	  }
	}


