
var menuOffsX;
var menuOffsY;

function initIt(){
	tempColl = document.getElementsByTagName("a");
	for (i=0;i<tempColl.length; i++) {
		tempColl[i].addEventListener("mouseover", mousePos, true);
	}
}

function mousePos(Ereignis){
	MouseX = Ereignis.pageX;
	MouseY = Ereignis.pageY;
}

var activeopen;
var active;
function startopen(el, path, id, OffsX, OffsY){
     activeopen = window.setTimeout("expandIt('"+el+"','"+path+"','"+id+"',"+OffsX+","+OffsY+")",10);
}
function startclose(){
     if(activeopen){
       window.clearTimeout(activeopen);
     }
     active = window.setTimeout("closeAll()",400);
}
function stopclose(){
     if(active){
       window.clearTimeout(active);
     }
}

function _expandIt(el, id, OffsX, OffsY) {
	var coords;
	coords = {x: OffsX, y: OffsY};
	var element = document.images['POSER_'+id];
	while (element) {
		coords.x += element.offsetLeft;
		coords.y += element.offsetTop;
		element = element.offsetParent;
	}
	if (coords){
		var poserX = coords['x'];
		var poserY = coords['y'];
	}
	var MouseX=(poserX+1);
	var MouseY=(poserY+1);
	var whichEl = document.getElementById(el);
	whichEl.style.top = MouseY+"px";
	whichEl.style.left = MouseX+"px";
	whichEl.style.display = "block";
	whichEl.style.visibility = "visible";
	var MainNav = document.getElementById('MainNav');
	if (MainNav) {
	  if (MouseX+parseInt(whichEl.offsetWidth)>MainNav.offsetWidth) {
	    whichEl.style.left = (MainNav.offsetWidth-parseInt(whichEl.offsetWidth)-parseInt(document.images['POSER_'+id].offsetWidth))+"px";
	  }
	}
}

function closeAll(){
  closeAllByClassName("child");
  closeAllByClassName("subchild");
}

function closeAllByClassName(name){
  stopclose();
  $("div."+name).css( { display: "none", visibility: "hidden"});
}

/**
 *
 */
function expandIt(el, path, id, OffsX, OffsY)
{
  var whichEl = document.getElementById(el);
  if (whichEl) {
    _expandIt(el, id, OffsX, OffsY);
  }
  else {
    menuOffsX = OffsX;
    menuOffsY = OffsY;
    setxmlMenu(path, id);
  }
}

function setxmlMenu(path, id)
{
  // Set wait-cursor.
  $(document.body).css( "cursor", "wait");
  // JQuery.AJAX.get
  $.get( path+"/ajaxGetChildNodesNav.xml", processResponseMenu);
}

/**
 * Process response.
 */
function processResponseMenu( data)
{
  // Reset wait-cursor.
  $(document.body).css( "cursor", "auto");
  // Get object-id.
  var id = $("pages",data).attr("id").replace(/\./,"_").replace(/\-/,"_");
  var abs_url = $("pages",data).attr("abs_url");
  var level = parseInt($("pages",data).attr("level"));
  // Get and iterate pages.
  var pages = $("pages",data).children("page");
  if (pages.length == 0) return;
  var cn = "Child";
  for (var i = 1; i < level; i++) {
    cn = "Sub" + cn;
  }
  var el = "el"+id+cn;
  var div = document.createElement( "div");
  div.setAttribute( "id", el);
  div.setAttribute( "class", cn.toLowerCase());
  div.setAttribute( "className", cn.toLowerCase());
  var divMenuDD = document.createElement( "div");
  divMenuDD.setAttribute( "class", "menuDropdown");
  divMenuDD.setAttribute( "className", "menuDropdown");
  for (var i = 0; i < pages.length; i++) {
    var page = pages[i];
    var page_id = page.getAttribute("id");
    var page_has_children = page.getAttribute("has_children")=="True";
    var divNavDD = document.createElement( "div");
    divNavDD.setAttribute( "class", "navDropdown");
    divNavDD.setAttribute( "className", "navDropdown");
    divNavDD.onmouseover = Function("stopclose(); closeAllByClassName('"+("Sub"+cn).toLowerCase()+"');");
    divNavDD.onmouseout = Function("startclose();");
    divNavDD.onfocus = Function("stopclose(); closeAllByClassName('"+("Sub"+cn).toLowerCase()+"');");
    divNavDD.onblur = Function("startclose();");
    var a = document.createElement( "a");
    a.setAttribute( "href", page.getAttribute("index_html"));
    a.appendChild( document.createTextNode( page.getAttribute("titlealt")));
    divNavDD.appendChild( a)
    divMenuDD.appendChild( divNavDD);
    if (cn.indexOf("Sub")<0 && page_has_children) {
      var sec_id = page_id.substring( page_id.indexOf("_")+1);
      var divNavArr = document.createElement( "div");
      divNavArr.setAttribute( "class", "navArrow");
      divNavArr.setAttribute( "className", "navArrow");
      var a = document.createElement( "a");
      a.setAttribute( "href", page.getAttribute("index_html"));
      a.onmouseover = Function("stopclose(); closeAllByClassName('"+("Sub"+cn).toLowerCase()+"'); expandIt('el"+sec_id+("Sub"+cn)+"','"+abs_url+'/'+sec_id+"','"+sec_id+"',8,4);");
      a.onmouseout = Function("startclose();");
      a.onfocus = Function("stopclose(); closeAllByClassName('"+("Sub"+cn).toLowerCase()+"'); expandIt('el"+sec_id+("Sub"+cn)+"','"+abs_url+'/'+sec_id+"','"+sec_id+"',8,4);");
      a.onblur= Function("startclose();");
      var img = document.createElement( "img");
      img.setAttribute( "id", "POSER_"+sec_id);
      img.setAttribute( "name", "POSER_"+sec_id);
      img.setAttribute( "src", "http://www.gs1-germany.de/common/images/icon_menu_arrow.gif");
      img.setAttribute( "alt", "");
      img.style.width = 12;
      img.style.height = 12;
      a.appendChild( img);
      divNavArr.appendChild( a);
      divMenuDD.appendChild( divNavArr);
    }
  }
  div.appendChild( divMenuDD);
  document.getElementsByTagName('body')[0].appendChild( div);
  _expandIt(el, id, menuOffsX, menuOffsY);
}
