function getPosition(element) {
/* This funtion was grapped from http://js-tut.aardon.de/js-tut/tutorial/position.html */
/* It takes an element and returns the absolut position of the top left corner */

  var elem=element,tagname="",x=0,y=0;

  /* solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt
  wird diese Schleife fuer das Element und all seine Offset-Eltern ausgefuehrt */
 
  while (elem && (typeof(elem)=="object") && (typeof(elem.tagName)!="undefined")) {
    y+=elem.offsetTop;     /* Offset des jeweiligen Elements addieren */
    x+=elem.offsetLeft;    /* Offset des jeweiligen Elements addieren */
    tagname=elem.tagName.toUpperCase(); /* tag-Name ermitteln, Grossbuchstaben */

    /* wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen */
    if (tagname=="BODY") {
      elem=0;
    }

    /* wenn elem ein Objekt ist und offsetParent enthaelt
    Offset-Elternelement ermitteln */
    if (typeof(elem)=="object") {
      if (typeof(elem.offsetParent)=="object") {
        elem=elem.offsetParent;
      }
    }
  }
  /* Objekt mit x und y zurueckgeben */
  position=new Object();
  position.x=x;
  position.y=y;
  return position;
}

function menuDropDown(parentId,subMenuId,show) {
  var objParent = document.getElementById(parentId);
  var objMenu = document.getElementById(subMenuId);
  if (show) {
    if (objMenu.style.display == 'block') {
	return;
    }
    var parentPos = getPosition(objParent);
    objMenu.style.display = 'block';
    objMenu.style.top = parentPos.y + 37 + 'px';
    objMenu.style.left = parentPos.x - 8 + 'px';
  } else {
    objMenu.style.display = 'none';
  }
}
/*
 * Use this to show or hide a block or table row
 * Omit the 'display' parameter to do the opposite of the current display
 */
function showHideBlock(blockId,display) {
  var obj = document.getElementById(blockId);
  var tagName = obj.tagName.toLowerCase();

  if (!obj) { return false; }

  //Just do the uppersite if display is omitted
  if (display === undefined) {
    display = (obj.style.display == 'none')?'block':'none';
  }
  
  if (display == 'none') {
    obj.style.display = 'none';
  } else if (display == 'block' && tagName != 'tr') {
    obj.style.display = 'block';
  } else {
    try {
      //Some browsers do not understand 'block' for table rows
      obj.style.display = 'table-row';        
    } catch(e) {
      obj.style.display = 'block';
    }
  }
  return true;
}
