//-----------------------------------------
//--------------- CREDITS -----------------
//-----------------------------------------
//	 fwdm.js by 			
//	 Freakworks GbR			
//	 web : www.freakworks.de		
//	 mail: info@freakworks.de		
//						
//	 script coded by Jan Jost		
//	 mail: jjscripts@freakworks.de	
//						
//	 if you use this script please	
//	 leave the credits inside		
//-----------------------------------------
//--------------- CREDITS -----------------
//-----------------------------------------

//-1--------------- initialisiert jjdm variables
function startjjdm()
{
	jjdm				= new Array();		//---va--- Container fuer globale wariablen (Ordnung)
	jjdm.actualDepth		= 0;			//---va--- speichert die menueTiefe des letzten mouseOver Events
	jjdm.MposX			= 0;			//---va--- mausPosition Horizontal
	jjdm.MposY			= 0;			//---va--- mausPosition Vertikal
	jjdm.lastX			= -100;			//---va--- mausPosition Horizontal beim letzten Interwall von collapser()
	jjdm.lastY			= -100;			//---va--- mausPosition Vertikal   beim letzten Interwall von collapser()
	jjdm.menuLayers			= new Array(); 		//---va--- Container fuer Werte von per setLayerPos() positionierten Layern
	jjdm.menuLayers[0]		= new Array();		//---va--- 
	jjdm.menuLayers[0].active	= 0; 			//---va--- 
	jjdm.menuLayers[0].name		= "kundenservice_kasten_1";		//---va--- 
}
startjjdm();
//-1--------------- initialisiert jjdm variables

//-2---------cb---- mausposition verfuegbar machen in jjdm.MposX , jjdm.MposY
function MouseSeek(Ereignis) 
{
	if(browser.dom==1 && browser.ns6==0)
	{ 
		jjdm.MposX=window.event.x; jjdm.MposY=window.event.y; 
	}
	if(browser.ns6 || browser.ns4)		
	{ 
		jjdm.MposX=Ereignis.pageX; jjdm.MposY=Ereignis.pageY; 
	}
}
if(document.all)	{document.onmousemove=MouseSeek;}
else			{window.captureEvents(Event.MOUSEMOVE); window.onmousemove=MouseSeek; } 
//-2---------cb---- mausposition verfuegbar machen in jjdm.MposX , jjdm.MposY

//-3---------ie---- recursive abfrage (für ie4+) zur bestimmung der absoluten Koordinaten
//-3---------in---- html object
//-3---------out--- int
function getYPos(thisObject) { return((thisObject.offsetParent) ? (thisObject.offsetTop + getYPos(thisObject.offsetParent)) : thisObject.offsetTop) ; }
function getXPos(thisObject) { return((thisObject.offsetParent) ? (thisObject.offsetLeft +getXPos(thisObject.offsetParent)) : thisObject.offsetLeft); }
//-3---------ie--- recursive abfrage (offsetParent) zur bestimmung der absoluten Koordinaten

//-4---------cb---- Ankerposition ermitteln
//-4---------in---- string , int 		= name des Ankers , menuetife des Layers der das mouseOver Event verursacht hat
//-4---------out--- [int,int] 			= [posX,posY]
function getAncorPosition(name,depth){
	if(browser.ns4){ 
		if(document.anchors[name]){ posX=document.anchors[name].x; posY=document.anchors[name].y; }				// AnkerPosition wenn Anker nicht in einem Layer liegt
		else{	for(i=0;i<document.layers.length;i++){										// AnkerPosition wenn Anker       in einem Layer liegt
				if(document.layers[i].document.anchors[name]){								// Netscape 4 gibt die Ankerposition innerhalb eines 
					posX=jjdm.menuLayers[depth-1].position[0]+document.layers[i].document.anchors[name].x;		// Layers relativ zu demselben an !!!
					posY=jjdm.menuLayers[depth-1].position[1]+document.layers[i].document.anchors[name].y;}}}}	//
	if(browser.ie4||browser.dom){ 
//		alert(name);
		posX=getXPos(document.getElementById(name)); 
		posY=getYPos(document.getElementById(name)); }
	position	= [posX,posY];
	return(position);
}
//-4---------cb--- Ankerposition ermitteln

//-5---------cb--- mouseOver Event fuer alle Meuepunkte ohne unterlayer (kollabieren)
//-----------in--- int 				= menuetife des Layers der das mouseOver Event verursacht hat
//-----------out-- int = jjdm.lastXY 		= XYposition der Maus beim mouseOver Event
//-----------out-- int = jjdm.actualDepth 	= menuetife des Layers der das mouseOver Event verursacht hat
function menuOver(depth) {
	jjdm.actualDepth=depth;
	for(i=depth;i<jjdm.menuLayers.length;i++) {
		if(browser.ns4)	{ 
			document.layers[jjdm.menuLayers[i].name].pageX=-1000; }
		if(browser.ie4||browser.ie5||browser.dom) { 
			document.getElementById(jjdm.menuLayers[i].name).style.left=-1000; }	}
	jjdm.lastX=jjdm.MposX;
	jjdm.lastY=jjdm.MposY;	
}
//-5---------cb--- mouseOver Event fuer alle Meuepunkte ohne unterlayer (kollabieren)

//-6---------cb--- mouseOver Event fuer alle Meuepunkte ohne unterlayer (kollabieren)
function setLayerPos(depth,ancorName,layerName,myOffsetX,myOffsetY,myOffsetYmozilla){
	jjdm.actualDepth=depth;
	jjdm.lastX=jjdm.MposX;
	jjdm.lastY=jjdm.MposY;
	if(jjdm.menuLayers[0].active==1) {
		for(i=depth;i<jjdm.menuLayers.length;i++) {
			if(browser.ns4) { 
				document.layers[jjdm.menuLayers[i].name].pageX=-1000; }
			if(browser.ie4||browser.ie5||browser.dom) { 
				document.getElementById(jjdm.menuLayers[i].name).style.left=-1000; }	} }
	position=getAncorPosition(ancorName,depth);
	if(!jjdm.menuLayers[depth]) { jjdm.menuLayers[depth]	= new Array(); }
	jjdm.menuLayers[depth].position	= position;
	jjdm.menuLayers[depth].name	= layerName;
	jjdm.menuLayers[depth].active	= 1;
	position[0]=position[0]+myOffsetX;
	position[1]=position[1]+myOffsetY;
	if(browser.ns6) {position[1]=position[1]-myOffsetYmozilla; }
	if(browser.ns4)	{ 
		document.layers[layerName].pageX=position[0]; document.layers[layerName].pageY=position[1]; }
	if(browser.ie4||browser.ie5||browser.dom) { 
		document.getElementById(layerName).style.left=position[0]; document.getElementById(layerName).style.top=position[1]; }
}

function collapse() 
{
	if((jjdm.lastX>jjdm.MposX+100 || jjdm.lastX<jjdm.MposX-100) || (jjdm.lastY>jjdm.MposY+50 || jjdm.lastY<jjdm.MposY-150)) { moved=1; }else {moved=0;}
	if( moved==1)
	{
			for(i=0;i<jjdm.menuLayers.length;i++) 
			{
				if(browser.ns4)	
				{ 
					document.layers[jjdm.menuLayers[i].name].pageX=-1000; 
				}
				else 
				{ 
					if(document.getElementById(jjdm.menuLayers[i].name)){document.getElementById(jjdm.menuLayers[i].name).style.left=-1000;} 
				}	
			} 
	}
}




//----------- Debuggong ------------
	
function Position(Ereignis) {
 	alert("x-Wert: " + Ereignis.screenX + " / y-Wert: " + Ereignis.screenY);
}
function checkAncorPos(name)
{
	alert(getAncorPosition(name));
}
function checkDaten() {
	alert(document.getElementById("layer_002").style.height);	
}