var menuHeight=220; // 264
var dropPixel=25; //25
var blockHeight=36; //36
var postPoneStepping = 9;  //9




var dynMenu = {

  mainMenuPunkte: '',

  fubar: function(){
   setTimeout("dynMenu.init()",50);
  },

  addEvent: function(elm, evType, fn, useCapture) {
    // addEvent cross-browser event handling for IE5+, NS6 and Mozilla
    // By Scott Andrew
    if (elm.addEventListener) {
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent) {
      var r = elm.attachEvent('on' + evType, fn);
      return r;
    } else {
      elm['on' + evType] = fn;
    }
  },

  init: function() {

    // get the header links
    if (!document.getElementsByTagName || !document.getElementById)
      return;

       dynMenu.mainMenuPunkte = document.getElementById("nm-menu").getElementsByTagName("li");



	var navBlock = document.getElementById('nav-main');	
	links = navBlock.getElementsByTagName('a');
    for (var i = 0; i < links.length; i++) {
	    // install event listeners
    	dynMenu.addEvent(links[i], 'mouseover', dynMenu.mOver, false);
    }
	dynMenu.addEvent(navBlock, 'mouseout', dynMenu.mOut, false);
	
	var ids = ["page"]; // menu slides back on mouse hover over the mentioned div
	var objs;
	for (var j = 0; j < ids.length; j++ ) {
		objs=document.getElementById(ids[j]);
		if (objs) { 
		 dynMenu.addEvent(objs, 'mouseover', dynMenu.mCancel, false);
		 }
	}
	
	dynMenu.pageSub = document.getElementById('nav-main');

   	// remember what's happening
    dynMenu.pageSub.tipState = 'none';
	dynMenu.pageSub.postPone = postPoneStepping;
    dynMenu.pageSub.tipSpan = document.getElementById('nav-main-box');

    setInterval(dynMenu.moveLinks, 25); // test with 500
  },

  mOver: function(e) {
    var link;
    if (e && e.target)
      link = e.target;
    if (window.event && window.event.srcElement)
      link = window.event.srcElement;
    if (!link)
      return;
    if (dynMenu.pageSub.tipState != 'full' ) {
      dynMenu.pageSub.tipState = 'falling';
    }
  },

  mOut: function(e) {
    var link;
    if (e && e.target)
      link = e.target;
    if (window.event && window.event.srcElement)
      link = window.event.srcElement;
    if (!link)
      return;
	var navBlock = document.getElementById('nav-main');
    if (link != navBlock)
      return;
    
    if (dynMenu.pageSub.tipState != 'none' ) {
      dynMenu.pageSub.tipState = 'rising';
	  link.postPone = 0;
    }
  },

  mCancel: function(e) {
    var link;
    if (e && e.target)
      link = e.target;
    if (window.event && window.event.srcElement)
      link = window.event.srcElement;
    if (!link)
      return;
    
    if (dynMenu.pageSub.tipState != 'none' ) {
      dynMenu.pageSub.tipState = 'rising';
	  link.postPone = postPoneStepping;
    }
  },
  
  moveLinks: function() {
    
      var link = dynMenu.pageSub;



      if (link.tipState == 'none' ||
          link.tipState == 'full') {
        return;
      }

      var theSpan = link.tipSpan;
      var height = parseInt(theSpan.style.top);
      if (isNaN(height)) {
        height = -menuHeight;
      }
      if (link.tipState == 'rising') {
     
        // falls das meneu rauffährt versteck das unterkastl
        dynMenu.pageSub.shownav=0;
        if(!dynMenu.pageSub.hidenav)
	{
          dynMenu.pageSub.hidenav=1;
          for (var j = 0; j < dynMenu.mainMenuPunkte.length; j++ ) {
	       var krampf = dynMenu.mainMenuPunkte[j].getElementsByTagName("ul");


               for (var kj = 0; kj < krampf.length; kj++ ) {
                  dynMenu.mainMenuPunkte[j].getElementsByTagName("ul")[kj].style.display = 'none';

	       }
	      }
	  
        }

	  
        if (link.postPone <= 4) {
			link.postPone += 1;
			return;
		}





	
        if (height <= -menuHeight) {
          link.tipState = 'none';
	  

        } else {
	        height -= dropPixel;
	
	
        }
      } else {
 
        if (height >= -blockHeight) {
		  link.postPone = 0;
          link.tipState = 'full';

         dynMenu.pageSub.hidenav=0;
         if(!dynMenu.pageSub.shownav)
         {
          dynMenu.pageSub.shownav=1;
          for (var j = 0; j < dynMenu.mainMenuPunkte.length; j++ ) {

            var krampf = dynMenu.mainMenuPunkte[j].getElementsByTagName("ul");
            for (var kj = 0; kj < krampf.length; kj++ ) {
                       dynMenu.mainMenuPunkte[j].getElementsByTagName("ul")[kj].style.display = 'block';

             }

			 
              }
        }



        } else {
	        height += dropPixel;
		}
      }
      theSpan.style.top = height + 'px';
  },

  pageSub: ' '

};

dynMenu.addEvent(window, 'load', dynMenu.fubar, false); 
