
var menu;
var menuEnd;
var oldSitePos=0;
var lastRelocateSitePos=0;
var sitePos = getSitePosition();
var stdOffset = 0;
var moving = false;
var animationTime = 700;


function initMenu()
{
	menu = new getObj('leftMenu');
	menuEnd = new getObj('leftMenuEnd');
	stdOffset = document.getElementById('leftMenu').offsetTop;
	sitePos = getSitePosition();
	moveMenu();
	checkScrolling();
	//alert("menü gestartet");
	
}



function checkScrolling()
{
	//alert(document.getElementById('leftMenuEnd').offsetTop);
	if(!moving)
	{
		sitePos = getSitePosition();
		if (sitePos == oldSitePos)
		{
			if(lastRelocateSitePos != sitePos)
			{
				moveMenu();
				lastRelocateSitePos = sitePos;
			}
		}
	}
	oldSitePos = sitePos;
	//alert("Seitenpos: "+sitePos + "\n menüpos: "+document.getElementById('leftMenu').offsetTop);
	temp = setTimeout("checkScrolling()",100);}


function getSitePosition()
{
	sitePos = 0
	if (window.innerHeight)
	{
		  sitePos = window.pageYOffset
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	{
		sitePos = document.documentElement.scrollTop
	}
	else if (document.body)
	{
		  sitePos = document.body.scrollTop
	}
	return sitePos;
}

function moveMenu()
{
	if (scrolledUp())
	{
		moveMenuUp();
	}
	else
	{
		moveMenuDown();
	}
	
}

function moveMenuUp()
{
	abstand = xClientHeight()-300;
	if(sitePos+stdOffset + abstand < document.getElementById('leftMenu').offsetTop)
	{
		moveMenuTo(sitePos+15);
	}
	else if(sitePos < 10)
	{
		moveMenuTo(5);
	}
	
	
	//alert("Seitenpos: "+sitePos + "\n menüpos: "+document.getElementById('leftMenu').offsetTop);
	//if(document.getElementById('menuLeft.offsetTop)
}

function moveMenuDown()
{
	//alert(document.getElementById('leftMenuEnd.offsetTop);
	abstand = xClientHeight()-300;
	if(sitePos+xClientHeight()+stdOffset-abstand > document.getElementById('leftMenuEnd').offsetTop+document.getElementById('leftMenu').offsetTop 
		// wenn das untere ende 'abstand' vom unteren rand entfernt ist				 			
		&& sitePos+stdOffset > document.getElementById('leftMenu').offsetTop) //und das obere stück nach oben rausgescrollt ist
	{
		
		if((sitePos+stdOffset - document.getElementById('leftMenu').offsetTop)>  //  wenn differenz zwischen menüanfang und seitenposition
			(sitePos + xClientHeight() - document.getElementById('leftMenuEnd').offsetTop-document.getElementById('leftMenu').offsetTop)) 
		//größer als differenz zwischen menüende und seitenende
		{
			moveMenuTo(sitePos+xClientHeight()-document.getElementById('leftMenuEnd').offsetTop-5);//unteres ende zu unterem rand bewegen
		}
		else
		{
			moveMenuTo(sitePos+15); //menü an oberen rand bewegen
		}
		
	}
	
}

function moveMenuTo(pos)
{
	//alert("menü wird bewegt nach position : "+pos);
	moving = true;
	delay = 50;
	anfang = document.getElementById('leftMenu').offsetTop;
	strecke = - (document.getElementById('leftMenu').offsetTop - stdOffset - pos)-5;
	
	
	
	//durchschnittswert von sin im bereich von 0 bis PI
	anzDurchgaenge = 0;
	zeitpunkt = 0;
	gesammtwert = 0;
	while ( zeitpunkt < animationTime)
	{
		gesammtwert += Math.abs(Math.sin((anzDurchgaenge+1)*Math.PI/(animationTime/delay)));
		zeitpunkt+=delay;
		anzDurchgaenge++;
	}
	
	durchschnitt = gesammtwert/(animationTime/delay);
	
	
	
	
	zeitpunkt = 0;
	var tmr = setInterval(
		function() 
		{
			zeitpunkt+=delay;
			if (zeitpunkt <= animationTime) 
			{
				sinusWert = Math.abs(Math.sin((zeitpunkt/animationTime)*Math.PI));
				//window.defaultStatus = sinusWert;
				menu.style.top = sinusWert/(durchschnitt*(animationTime/delay))*strecke + document.getElementById('leftMenu').offsetTop-stdOffset + "px";
			}
			else
			{
				moving = false;
				clearInterval(tmr);
			}
		},delay);
}

function scrolledUp()
{
	return lastRelocateSitePos > sitePos;
}



function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}


// xClientHeight r5, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xClientHeight()
{
	if (window.innerHeight) {
 		var hoehe=window.innerHeight;
	} else if (document.compatMode && document.compatMode == "CSS1Compat") {
		var hoehe=document.documentElement.clientHeight;
	} else if (document.body.clientHeight) {
		var hoehe=document.body.clientHeight;
	} else {
		var hoehe=650;
	}
	return hoehe;
}

// xClientWidth r5, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xClientWidth()
{
  var v=0,d=document,w=window;
  if((!d.compatMode || d.compatMode == 'CSS1Compat') && !w.opera && d.documentElement && d.documentElement.clientWidth)
    {v=d.documentElement.clientWidth;}
  else if(d.body && d.body.clientWidth)
    {v=d.body.clientWidth;}
  else if(xDef(w.innerWidth,w.innerHeight,d.height)) {
    v=w.innerWidth;
    if(d.height>w.innerHeight) v-=16;
  }
  return v;
}


    function naviMouseOver(id)

    {
     if(! (document.getElementById(id).className == "naviActiveTd"))

	 {

		 document.getElementById(id).className = "naviHoverTd";

		 if (document.getElementById(id).getElementsByTagName("img")[0] && (document.getElementById(id).getElementsByTagName("img")[0].src.indexOf('navi/active.gif')> 0 || document.getElementById(id).getElementsByTagName("img")[0].src.indexOf('navi/normal.gif')> 0))

		 document.getElementById(id).getElementsByTagName("img")[0].src="http://www.audiophilfoto.de/images/navi/active.gif";

	 }

    }

    function naviMouseOut(id)

    {

     if(! (document.getElementById(id).className == "naviActiveTd"))

	 {

		 document.getElementById(id).className = "naviTd";

		 

		 if (document.getElementById(id).getElementsByTagName("img")[0]&& (document.getElementById(id).getElementsByTagName("img")[0].src.indexOf('navi/active.gif')> 0 || document.getElementById(id).getElementsByTagName("img")[0].src.indexOf('navi/normal.gif')> 0))

		 document.getElementById(id).getElementsByTagName("img")[0].src="http://www.audiophilfoto.de/images/navi/normal.gif";

	 }

	 

	 

    }







openMenuTable = 0;

activeMenu = 0;



function showOrHide(tableId,id)

{
  document.getElementById(id).className="naviActiveTd";

	if (document.getElementById(id).getElementsByTagName("img")[0])
  document.getElementById(id).getElementsByTagName("img")[0].src="http://www.audiophilfoto.de/images/navi/active.gif";
	if (document.getElementById(tableId))
  document.getElementById(tableId).style.display="";

  

  

  if(openMenuTable != 0)

  {

		

    activeMenu.className="naviTd";	

	activeMenu.getElementsByTagName("img")[0].src="http://www.audiophilfoto.de/images/navi/normal.gif";

    openMenuTable.style.display="none";

	

		

 

  }

  if(openMenuTable == document.getElementById(tableId))

  {

    openMenuTable = 0;

    activeMenu.className="naviHoverTd";

	activeMenu.getElementsByTagName("img")[0].src="http://www.audiophilfoto.de/images/navi/active.gif";

  }

  else

  {

    openMenuTable = document.getElementById(tableId);

    activeMenu = document.getElementById(id);

  }







}









function oeffne(src)

{

  window.location.href = src;

}
