//------------------------- CONFIG und INFO
// wichtig!: Include und onmousemove='blende();' im Body-tag nicht vergessen!

// Klassendefinition fźr layeraufrufende Zellen

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

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

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


window.aktDiv = new Array();
window.aktMen = new Array();
window.lastDiv = "";
function showDiv(ausloeser,ziel,xposition,padX,padY)
{	
	
	//Workaround Cleanup;
	if (window.aktDiv.length>0) {
		for (i=1;i<window.aktDiv.length;i++) {
			oldlayer=document.getElementById(window.aktDiv[window.aktDiv.length-1]);
			oldlayer.style.visibility = "hidden";
		}
			window.aktDiv.length=window.aktDiv.length-1;
	} 
	if (window.lastDiv!="" && ziel!=window.lastDiv) {
			oldLayer=document.getElementById(window.lastDiv);
			oldLayer.style.visibility = "hidden";
			window.lastDiv="";
	}
	if (ausloeser.name != akt_menue_)
	{

		if(document.getElementById(ziel)==null)
		{	
			if (ausloeser.name)
			{
				
				Sel(ausloeser.name);
			}
			return;
		}
	
	
		newLayer = document.getElementById(ziel);
		alert(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
		{
			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";
		
		window.lastDiv = ziel;
	
		////////// Sel-DeSel-Effekt bei Menuepunkten
		if (ausloeser.name)
		{	
			elem=window.aktMen[window.aktMen.length-1];
			if (elem) {
				if (elem.name!=ausloeser.name) {
					Desel(elem.name);
					window.aktMen.length--;
				}
			}
			Sel(ausloeser.name);
			if (window.aktMen[window.aktMen.length-1]!=ausloeser) window.aktMen[window.aktMen.length] = ausloeser;
		}
		///////// Sel-DeSel Ende

	
		
	
		if (ausloeser.className == cssnormal)
		{
			csswechsel(ausloeser,cssselected);
		}
	
		
	} else {
		
	}
}



function ausblenden(ausloeser, ziel)
{
		
		if(document.getElementById(ziel)==null)
		{	
			if (ausloeser.name)
			{
				Desel(ausloeser.name);
				//if (ausloeser.name=window.aktMen[window.aktMen.length]) window.aktMen.length=window.aktMen.length-1;
			}
			return;
		}


	if (ausloeser.name != akt_menue_)
	{
	
	newLayer = document.getElementById(ziel);
	
	if (testMousepos(ziel) == true)
	{
		window.aktDiv[window.aktDiv.length] = ziel;
	}
	else
	{
		//
		
		
		Desel(ausloeser.name);
		newLayer.style.visibility = "hidden";
		
		/// CSS
		cssreload();
		
		//if (ausloeser.name!=window.aktMen.name) {ausblenden(null,window.aktMen);}
		
		////////// Sel-DeSel-Effekt bei Menuepunkten
		if (ausloeser.name)
		{	
			Desel(ausloeser.name);
		} else {
		   
		}
	
		///////// Sel-DeSel Ende
	}
	
	}
}


function blende()
{
	
	/*menLen=window.aktMen.length;divLen=window.aktDiv.length;
	moniInfo="Elemente in aktDiv:"+divLen+
	"<br/>Elemente in aktMen:"+menLen+"<br/>"+
	"letzten 3 Elemente in aktMen:<br/><pre>";
	for (i=menLen-1;i>menLen-4;i--) {
		elem=window.aktMen[i];
		if (elem) moniInfo = moniInfo+elem.name+"\r\n"; else moniInfo = moniInfo+"undefined\r\n";
	}
	window.moni.innerHTML=moniInfo;
	*/
	if (window.aktDiv.length >0)
	
	{
		i = window.aktMen.length-1;
		ausloeser = window.aktMen[i];
		i = window.aktDiv.length-1;
		ziel = window.aktDiv[i];
		if(!testMousepos(ziel) && !testMousepos(ausloeser))
		{
			//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)
			{
				Desel(ausloeser.name);
			}
			else
			{
				//---- Letzten Menuepunkt deselektieren
				var x = 1;
				while (window.aktMen[window.aktMen.length-x].name == false)
				{
					x++;
				}
			
				Desel(window.aktMen[window.aktMen.length-x].name);
			}
	
			///////// Sel-DeSel Ende
		} 
	}
}

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

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