﻿//------------------------- 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(ziel,ausloeser,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);
	
		///////////// 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 - newLayer.offsetWidth;
			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 if(xposition == "bottomW")
			{
				// Sprachmenu ganz rechts
			}
			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 {
		alert("blah");
	}
}



function ausblenden(ziel, ausloeser)
{
		
	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)
			{	
				//alert("Deselect by Menuverlassen:"+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)
			{
				//alert(window.aktMen[window.aktMen.length-x].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;
}
