﻿//--- Initialisiert die Menuegrafiken. Falls gemischte Formate (jpeg und gif) verwendet werden muss f?r jedes Format eine eigene Schleife verwendet werden  
//--- Die Variablen "menues_", "homepfad_" und "menuepfad_" werden im "init-Script" der entsprechenden Seite initialisiert.


for(var i=1;i<menues_; i++)
{
	eval("menue"+i+" = new Image();");
	eval("menue"+i+".src = '"+menuepfad_+"mo-menue"+i+".gif';");
}


//------- Event initialisieren
//document.onmousemove = blende;


// Klassendefinition f?r layeraufrufende Zellen
var open_sel_div_ ="";


if(typeof cssnormal == 'undefined')
{
	cssnormal = "subm-container";
}

if(typeof cssselected == 'undefined')
{
	cssselected = "subm-container-sel";
}

//------------------------- ENDE


window.aktDiv = new Array();
window.aktMen = new Array();



function menueMover(obj)
{
	// Autor : Andreas Jaehrling
	// Erstellt : 11.05.2006
	// Parameter: Menuegrafik als Objekt
	// Beschreibung : Sucht die entsprechende MO-Grafik. Dabei wird davon ausgegangen dass eine normale Menuegrafik z.B. "menue1" und die entsprechende MO-Grafik "mo-menue1" heisst.   
	
	var pfad=obj.src;
	var start=(pfad.lastIndexOf("/menue"))+6;
	var stop=pfad.lastIndexOf(".");
	var nummer = pfad.substring(start,stop);	
	var grafik="menue"+nummer+".";
	
	if(akt_menue_ != nummer)
	{
		obj.src=strReplace(grafik, "mo-"+grafik, pfad);
	}
}


function menueMout(obj)
{
	var pfad=obj.src;
	var start=(pfad.lastIndexOf("/mo-menue"))+9;
	var stop=pfad.lastIndexOf(".");
	var nummer = pfad.substring(start,stop);
	var grafik="menue"+nummer+".";
	
	if(akt_menue_ != nummer)
	{
		obj.src=strReplace("mo-"+grafik, grafik, pfad);
	}
}





function showDiv(ausloeser,ziel,xposition,padX,padY)
{	
		
	if(open_sel_div_ != ziel)
	{
	//	blende();
	}


	if (ausloeser.name != "menue"+akt_menue_)
	{
		
		if(document.getElementById(ziel)==null)
		{		
			if (ausloeser.src)
			{
				menueMover(ausloeser);
			}
			return;
		}
	
	
		newLayer = document.getElementById(ziel);
	
		///////////// Positionierung
	
		ausloeserX = getLeft(ausloeser);
		ausloeserY = getTop(ausloeser);
		ausloeserW = ausloeserX + ausloeser.offsetWidth;
		ausloeserH = ausloeserY + ausloeser.offsetHeight;
	
		//newLayer.style.position = "absolute";
	
		if (xposition == "topW")
		{
			newLayer.style.left = ausloeserW + padX;
			newLayer.style.top = ausloeserY + padY;
		}
		else if (xposition == "bottomX")
		{
			newLayer.style.left = ausloeserX + padX;
			newLayer.style.top = ausloeserH + padY;
		}
		else if (xposition == "topX") //---------------- Layer klappt nach links auf. 
		{
			newLayer.style.left = ausloeserX + padX - newLayer.offsetWidth;
			newLayer.style.top = ausloeserY + padY;
		}
		else if (xposition == "bottomW") //---------------- Layer klappt nach links auf. 
		{
			//alert(ausloeser.offsetWidth);
			//alert(ausloeserX);
			newLayer.style.left = ausloeserX + ausloeser.offsetWidth - 182;
			newLayer.style.top = ausloeserH + padY;
		}
		else
		{
			alert("divDirection ung?ltig");
		}
		///////////// Positionierung Ende
	
		// Check der Fenstergr??e
	
		if (getLeft(newLayer)+newLayer.offsetWidth >= document.body.offsetWidth)
		{
			if (xposition == "bottomX")
			{
				newLayer.style.left = ausloeserW - newLayer.offsetWidth;
			}
			else
			{
				newLayer.style.left = ausloeserX - newLayer.offsetWidth;
			}		
		}
		// /Check der Fenstergr??e


		newLayer.style.visibility = "visible";
		
	
		////////// Sel-DeSel-Effekt bei Menuepunkten
	
		if (ausloeser.src)//---------- falls der Ausl?ser eine Menuegrafik war...
		{
			menueMover(ausloeser);
		}
		///////// Sel-DeSel Ende

	
		window.aktMen[window.aktMen.length] = ausloeser;
	
		if (ausloeser.className == cssnormal)
		{
			csswechsel(ausloeser,cssselected);
		}
	
	}
}



function hideDiv(ausloeser, ziel)
{

	if(document.getElementById(ziel)==null)
	{	
		if (ausloeser.src)//---------- falls der Ausl?ser eine Menuegrafik war...
		{
			menueMout(ausloeser);
		}
		return;
	}


	if (ausloeser.name != "menue"+akt_menue_)
	{

		newLayer = document.getElementById(ziel);
		
		if (testMousepos(ziel) == true)
		{
			window.aktDiv[window.aktDiv.length] = ziel;
		}
		else
		{
			//alert("nope1");
			newLayer.style.visibility = "hidden";
			
			/// CSS
			cssreload();
			
			
			////////// Sel-DeSel-Effekt bei Menuepunkten
		
			if (ausloeser.src)//---------- falls der Ausl?ser eine Menuegrafik war...
			{
				menueMout(ausloeser);
			}
		
			///////// Sel-DeSel Ende
		}
	
	}
}

function blende2(Ereignis)
{

	if(!Ereignis)
		Ereignis=window.event;

	if(Ereignis)
	{
		if(Ereignis.pageX)
 		{
	 		MouseX_ = Ereignis.pageX;
 			MouseY_ = Ereignis.pageY;
  		}
		else
 		{
			MouseX_ = Ereignis.clientX+pageOffset().left;
			MouseY_ = Ereignis.clientY+pageOffset().top;
 		}
	}



	if (window.aktDiv.length >0)
	{
		i = window.aktDiv.length-1;
		ziel = window.aktDiv[i];
		
		i = window.aktMen.length-1;
		ausloeser = window.aktMen[i];
		
		if(testMousepos(ziel) == false && testMousepos(ausloeser) == false && open_sel_div_ != ziel)
		{
			//alert(ziel);
			newLayer = document.getElementById(ziel);
			newLayer.style.visibility = "hidden";
	
			window.aktDiv.length=window.aktDiv.length-1;
			
			/// CSS
			cssreload();

			////////// Sel-DeSel-Effekt bei Menuepunkten
	
			if (ausloeser.name)
			{
				if(isDefined(ausloeser.name))//---------- falls der Ausl?ser eine Menuegrafik war...
				{
					menueMout(ausloeser);
				}
			}
			else
			{
				//---- Letzten Menuepunkt deselektieren
				var x = 1;
			
				while (window.aktMen[window.aktMen.length-x].name == false)
				{
					x++;
				}
				
				if(isDefined(window.aktMen[window.aktMen.length-x].name))//---------- falls der Ausl?ser eine Menuegrafik war...
				{
					menueMout(document.getElementById(window.aktMen[window.aktMen.length-x].name));
				}

			}
	
			///////// Sel-DeSel Ende
		}
	}
}

function cssreload2()
{
	
	i = window.aktMen.length-1;
	ausloeser = window.aktMen[i];
			
	if (ausloeser.className == cssselected)
	{
		csswechsel(ausloeser,cssnormal);
		window.aktMen.length=window.aktMen.length-1;
	}	
}

function csswechsel2(ziel,cssneu)
{
	ziel.className = cssneu;
}



function getLeft(targetObject)
{
/*
	Info: Gibt die absolute x_Position eines Objektes im Dokument zur?ck (DOM 2)
	Autor: Thomas B?chler
	Erstellt: 05.02.2004
	Letzte ?nderung: 05.02.2004
	
*/
	if (targetObject.offsetParent) return (targetObject.offsetLeft + getLeft(targetObject.offsetParent));
	else return (targetObject.offsetLeft);
}


function getTop(targetObject)
{
/*
	Info: Gibt die absolute y_Position eines Objektes im Dokument zur?ck (DOM 2)
	Autor: Thomas B?chler
	Erstellt: 05.02.2004
	Letzte ?nderung: 05.02.2004
	
*/

	if (targetObject.offsetParent) return (targetObject.offsetTop + getTop(targetObject.offsetParent));
	else return (targetObject.offsetTop);
}


function pageOffset(win)
{
	/*
	Info: Hilft bei IE scrolloffset-Problem (wenn fenster gescrollt, mausposition falsch)
	Autor: Thomas B?chler
	Erstellt: 03.12.2004
*/

    if(!win) win = window;
    var pos = {left:0,top:0};
    pos.left = typeof win.pageXOffset != 'undefined' ?
               win.pageXOffset : // MZ
               (document.compatMode && document.compatMode == "CSS1Compat") ?
               document.documentElement.scrollLeft : // IE Strict Modus
               win.document.body.scrollLeft;

    pos.top = typeof win.pageYOffset != 'undefined' ?
              win.pageYOffset : // MZ
              (document.compatMode && document.compatMode == "CSS1Compat") ?
              document.documentElement.scrollTop : // IE Strict Modus
              win.document.body.scrollTop;
    return pos;
}

function testMousepos_old(targetDiv)
{
/*
	Info: Pr?ft die Position des Mauszeigers relativ zum gew?nschten Objekt >> true/false (DOM 2)
	Autor: Thomas B?chler
	Erstellt: 05.02.2004
	Letzte ?nderung: 3.12.2004
	
*/
	if (document.getElementById(targetDiv))
	{
		var targetDiv = document.getElementById(targetDiv);
	}
	
	var targetDivX = getLeft(targetDiv);
	var targetDivY = getTop(targetDiv);

	var targetDivW = targetDivX + targetDiv.offsetWidth;
	var targetDivH = targetDivY + targetDiv.offsetHeight;
	
	var browsertyp=navigator.userAgent.toLowerCase();
	
	//alert(browsertyp);
	
	if(((browsertyp.indexOf("netscape") != -1 || browsertyp.appName == "Netscape" || browsertyp.indexOf("mozilla") != -1) && browsertyp.indexOf("opera") == -1 && browsertyp.indexOf("msie") == -1) && browsertyp.indexOf("safari") == -1)
	{				
		function handleMove(pos)
		{
			window.mousX=pos.clientX+pageOffset().left;
			window.mousY=pos.clientY+pageOffset().top;
		}
		document.addEventListener("mousemove", handleMove, true);
		document.addEventListener("mouseover", handleMove, true);
		document.addEventListener("mouseout", handleMove, true);
	}
	else  if(browsertyp.indexOf("msie") != -1 || browsertyp.indexOf("opera") != -1)
	{
			e = window.event;
			window.mousX = e.x+pageOffset().left;
			window.mousY = e.y+pageOffset().top;
	}
	else  if((browsertyp.indexOf("safari") != -1 ))
	{
			e = window.event;
			window.mousX = e.x;
			window.mousY = e.y;
	}
	
	if(!((MouseX_ <= targetDivW) && (MouseY_ <= targetDivH) && (MouseX_ >= targetDivX) && (MouseX_ >= targetDivY)) &&  MouseX_ != -1 && MouseY_ != -1)
	{
		return false;
	}
	else
	{
		return true;
	}
}

