//
// Copyright 2005 by maninweb.de - all rights reserved
//

//
// Globals...
//	
	
   	var mlvpLayersArray    = new Array();
	
	var mlvpLayersHeight   = 175;
	var mlvpLayersTimer    = 0;
	var mlvpLayersDelay    = 75;
	var mlvpLayersStep     = 5;
	var mlvpLayersMove     = 64;
	
//
// Functions...
//
	
	function mlfhLayer(s)
	{
//		Objects...
		
		this.key = s;
		this.div = mlvpBrowser.dom ? document.getElementById(s)       :
                   mlvpBrowser.ie4 ? document.all[s]                  : null;
		this.css = mlvpBrowser.dom ? document.getElementById(s).style :
                   mlvpBrowser.ie4 ? document.all[s].style            : null;
		
//		Data...
		
		this.height = this.div ? parseInt(this.div.offsetHeight) : 0;
		this.top    = this.css ? mlvpBrowser.ns5 ? parseInt(this.div.offsetTop) : parseInt(this.css.pixelTop) : 0;
		
//		Return...
		
		return this;
	}
	
	function mlfpLayersAdd(k, s, r, c)
   	{
		var n = mlvpLayersArray.length;
		var p = 0;
		var u = "";
		
//		Add...
		
		mlvpLayersArray[n]       = new Array();		 // Array
		mlvpLayersArray[n][0]    = k;				 // Key
		mlvpLayersArray[n][1]    = s;				 // State		
		mlvpLayersArray[n][2]    = 1;				 // Active
		mlvpLayersArray[n][3]    = new Array();		 // Layers
		mlvpLayersArray[n][3][0] = new mlfhLayer(r); // Root
		
//		Childs...
		
		if (c.length > 0)
		{
//			Split...
			
			u = c.split(",");
			
//			Childs...
			
			for (p = 0; p < u.length; p++)
			{
				mlvpLayersArray[n][3][p + 1] = new mlfhLayer(u[p].toLowerCase());
			}
		}
   	}
	
	function mlfpLayersInitialize()
   	{
//		Typename...
		
		mlvpLayersArray[0] = "layers";
		
//		Add...
		
		mlfpLayersAdd("impress", "hidden", "impressfenster", "impresstext");
	}
	
	function mlfhScroll(k, d, r)
	{
		var p = (r > 0) ? mlvpLayersStep : mlvpLayersMove;
		var o = mlvpLayersArray[k][3][mlvpLayersArray[k][2]];
		
//		Check...
		
		if (o != null)
		{
//			Direction...
			
			switch (d)
			{
				case "down" :
				{
					if (o.top > mlvpLayersHeight - o.height - p)
					{
						o.css.top = String(o.top - p) + "px";
						o.top     = o.top - p;
					}
					
					break;
				}
				case "up"  :
				{
					if (o.top < 0)
					{
						o.css.top = String(o.top + p) + "px";
						o.top     = o.top + p;
					}
					
					break;
				}
				default        :
				{
					break;
				}
			}
			
//			Recall...
			
			if (r > 0)
			{
				mlvpLayersTimer = setTimeout("mlfhScroll('" + k + "','" + d + "'," + r + ")", mlvpLayersDelay);
			}
		}
	}
	
	function mlfpLayersScrollClear()
	{
//		Clear...
		
		clearTimeout(mlvpLayersTimer);
		
//		Reset...
		
		mlvpLayersTimer = 0;
	}
	
	function mlfpLayersScrollMove(k)
   	{
		var n = 0;
		var p = 0;
		var t = k.toLowerCase().split(".");
		
//		Check...
		
		if (t.length == 2)
		{
//			Check...
			
			if (mlvpBrowser.ok)
			{
//				Search...
				
				for (n = 1; n < mlvpLayersArray.length; n++)
				{
					if (t[0] == mlvpLayersArray[n][0].toLowerCase())
					{					
						if (mlvpLayersArray[n][3][mlvpLayersArray[n][2]] != null)
						{
							mlfhScroll(n,t[1].toLowerCase(),0);
						}
					}
				}
			}
		}
	}
	
	function mlfpLayersScrollRun(k)
   	{
		var n = 0;
		var p = 0;
		var t = k.toLowerCase().split(".");
		
//		Check...
		
		if (t.length == 2)
		{
//			Check...
			
			if (mlvpBrowser.ok)
			{
//				Search...
				
				for (n = 1; n < mlvpLayersArray.length; n++)
				{
					if (t[0] == mlvpLayersArray[n][0].toLowerCase())
					{					
						if (mlvpLayersArray[n][3][mlvpLayersArray[n][2]] != null)
						{
							mlvpLayersTimer = setTimeout("mlfhScroll('" + n + "','" + t[1].toLowerCase() + "',1)", mlvpLayersDelay);
						}
					}
				}
			}
		}
	}
	
	function mlfpLayersHoove(u, v)
   	{
		var s = null;
		var h = null;
		
//		Check...
		
		if (mlvpBrowser.ok)
		{
//			Show...
			
			if (u.length > 0)
			{
				s = mlvpBrowser.dom ? document.getElementById(u).style :
					mlvpBrowser.ie4 ? document.all[u].style            : null;
			}
			
//			Hide...
			
			if (v.length > 0)
			{
				h = mlvpBrowser.dom ? document.getElementById(v).style :
					mlvpBrowser.ie4 ? document.all[v].style            : null;
			}
			
//			Set...
			
			if (s != null)
			{
				s.visibility = "visible";
			}
			
			if (h != null)
			{
				h.visibility = "hidden";
			}
		}
	}
	
	function mlfpLayersShowRoot(k, v)
	{
		var n = 0;
		var o = null;
		
//		Check...
		
		if (mlvpBrowser.ok)
		{
			for (n = 1; n < mlvpLayersArray.length; n++)
			{
				if (k.toLowerCase() == mlvpLayersArray[n][0].toLowerCase())
				{
//					Object...
					
					o = mlvpLayersArray[n][3][0];
					
//					Check...
					
					if (o != null)
					{
//						Visibility...
						
						o.css.visibility = v;
						
//						Hide...
						
						if (v.toLowerCase() == "hidden")
						{
							mlvpLayersArray[n][3][mlvpLayersArray[n][2]].css.visibility = v;
						}
					}
				}
			}
			
//			Update...
			/*
			if (k.toLowerCase() == "down" && v.toLowerCase() == "hidden")
			{
//				Object...
				//alert(k+v);
				o = mlvpBrowser.dom ? document.getElementById("impress" + "update").style :
					mlvpBrowser.ie4 ? document.all["impress" + "update"].style            : null;
				
//				Show and hide...
						
				if (o)
				{
					//o.visibility = "visible";
					//o.visibility = "hidden";
				}
			}
			*/
		}
	}
	
	function mlfpLayersShow(k, c)
	{
		var n = 0;
		var p = 0;
		var s = "";
		var o = null;
		var r = null;
		
//		Check...
		
		if (mlvpBrowser.ok)
		{
			for (n = 1; n < mlvpLayersArray.length; n++)
			{
				if (k.toLowerCase() == mlvpLayersArray[n][0].toLowerCase())
				{
//					Childs...
					
					for (p = 1; p < mlvpLayersArray[n][3].length; p++)
					{
//						Objects...
						
						o = mlvpLayersArray[n][3][p];
						
//						Check...
						
						if (o != null)
						{
							if (c.toLowerCase() == o.div.id.toLowerCase())
							{
//								Show...
								
								s                = "visible";
								o.top            = 0;
								o.css.top        = "0px";
								o.css.visibility = "visible";
								
//								Active...
								
								mlvpLayersArray[n][2] = p;
							}
							else
							{
								o.css.visibility = "hidden";
							}
						}
					}

//					Check...
					
					if (s.length > 0)
					{
//						Range...
						
						r = mlvpBrowser.dom ? document.getElementById(k + "bereich").style :
							mlvpBrowser.ie4 ? document.all[k + "bereich"].style            : null;
							
						if (r)
						{
							r.visibility = s;
						}
					}
					
//					Impress...
					
					mlfpLayersSwap("impress","hidden");
				}
			}
		}
   	}
	
   	function mlfpLayersSwap(k, v)
   	{
		var n = 0;
		var p = 0;
		var o = null;
		var s = "";
		
//		Check...
		
		if (mlvpBrowser.ok)
		{
			for (n = 1; n < mlvpLayersArray.length; n++)
			{
				if (k.toLowerCase() == mlvpLayersArray[n][0].toLowerCase())
				{
					switch (mlvpLayersArray[n][1].toLowerCase())
         			{
           				case "visible" :
           				{
							s = (v.length > 0) ? v : "hidden";  break;
           				}
           				case "hidden"  :
           				{
							s = (v.length > 0) ? v : "visible"; break;
           				}
           				default        :
           				{
				 			break;
           				}
					}
					
//					Check...
					
					if (s.length > 0)
					{
//						Netscape...
						
						if (mlvpBrowser.nsx == "NS")
						{
//							Close...
							
							o = mlvpBrowser.dom ? document.getElementById(k + "close").style :
								mlvpBrowser.ie4 ? document.all[k + "close"].style            : null;
							
//							Show and hide...
							
							if (o)
							{	
								o.visibility = s;
							}
							
//							Window...
							
							o = mlvpBrowser.dom ? document.getElementById(k + "bereich").style :
								mlvpBrowser.ie4 ? document.all[k + "bereich"].style            : null;
							
//							Show and hide...
							
							if (o)
							{	
								o.visibility = s;
							}
							
//							Window...
							
							o = mlvpBrowser.dom ? document.getElementById(k + "text").style :
								mlvpBrowser.ie4 ? document.all[k + "text"].style            : null;
							
//							Show and hide...
							
							if (o)
							{	
								o.visibility = s;
							}
							
//							Window...
							
							o = mlvpBrowser.dom ? document.getElementById(k + "fenster").style :
								mlvpBrowser.ie4 ? document.all[k + "fenster"].style            : null;
							
//							Show and hide...
							
							if (o)
							{	
								o.visibility = s;
							}
							
//							Window...
							
							o = mlvpBrowser.dom ? document.getElementById(k + "update").style :
								mlvpBrowser.ie4 ? document.all[k + "update"].style            : null;
							
//							Show and hide...
							
							if (o)
							{	
								o.visibility = "visible";
								o.visibility = "hidden";
							}
						}
						else
						{
//							Range...
							
							o = mlvpBrowser.dom ? document.getElementById(k + "bereich").style :
								mlvpBrowser.ie4 ? document.all[k + "bereich"].style            : null;
							
//							Show and hide...
							
							if (o)
							{	
								o.visibility = s;
							}
							
//							Others...
							
							for (p = 0; p < mlvpLayersArray[n][3].length; p++)
							{
								if (mlvpLayersArray[n][3][p] != null)
								{
									mlvpLayersArray[n][3][p].css.visibility = s;
								}
							}
						}
						
//						Netscape...
						/*
						if (mlvpBrowser.ns5)
						{
//							Close...
							
							o = mlvpBrowser.dom ? document.getElementById(k + "close").style :
								mlvpBrowser.ie4 ? document.all[k + "close"].style            : null;
							
//							Show and hide...
							
							if (o)
							{	
								o.visibility = s;
							}
							
//							Update...
							
							o = mlvpBrowser.dom ? document.getElementById(k + "update").style :
								mlvpBrowser.ie4 ? document.all[k + "update"].style            : null;
							
//							Show and hide...
							
							if (o)
							{	
								//o.visibility = s;
								o.visibility = "visible";
								o.visibility = "hidden";
							}
						}
						*/
						
//						Zero...
						
						mlvpLayersArray[n][3][mlvpLayersArray[n][3].length - 1].top     = 0;
						mlvpLayersArray[n][3][mlvpLayersArray[n][3].length - 1].css.top = "0px";
						
//						State...
						
						mlvpLayersArray[n][1] = s;
					}
				}
			}
		}
   }

