// toggle divs and adds a given selction to a field
// divs has to "register" using AddDiv

// Testet i Netscape 4.73, 6.2, Exploder 5.0 og Opera 5.12

// Browser peculiarities: 
// Netscape 4.73: DIV'er må ikke indeholde STYLE attributter. 
//                "border" SKAL have en enhedsangivelse.
//                Positionering fejler ved resize. -> kræver reload.

// bruger BrowserCheck.js
// client-side JavaScript client sniff. Version 3.03
// (C) Netscape Communications 1999-2001.




function getObj(name) {
  // returner objekt
  if (document.getElementById) {
    this.obj = document.getElementById(name);
  } else if (document.all) {
    this.obj = document.all[name];
  } else if (document.layers) {
    this.obj = document.layers[name];
  }
  return this.obj;
}


function getObjNodes(elementID) {
  // find "børn"; returner array.
  var myDocumentElements = new Array();
  var MyElement = getObj(elementID);
  if ( MyElement != null ) {
    if ( is_ie5up ) {
      myDocumentElements = MyElement.children;
    } else if ( is_gecko || is_nav6up ) {
      myDocumentElements = MyElement.getElementsByTagName("*");
    } 
  }
  return myDocumentElements;
}


// array med "block" elementer til showElements(elementID)
blockTags = new Array(
  "P", "DIV", "UL", "OL", "DL", "DD", "FORM", "LI", "PRE", 
  "H1", "H2", "H3", "H4", "H5", "H6", "ADDRESS", "BLOCKQUOTE"
)


function showElements(elementID) {

  var MyElement = getObj(elementID);
  MyElement.style.display = "block";

  var elementArray = new Array();
  elementArray = getObjNodes(elementID);
  var l = elementArray.length;

  for (var i=0; i<l; i++) {
    var displayVal = '';
    var thisElement = elementArray.item(i);
    if ( thisElement.className != "menu" ) { // elementer i undermenuer skal ikke ændres
      for (var n=0; n<blockTags.length; n++) {
        if ( thisElement.tagName == "TABLE" ) {
          displayVal = "table";
        }
        if ( thisElement.tagName == "TD" || thisElement.tagName == "TH" ) {
          displayVal = "table-cell";
        }
        if ( thisElement.tagName == blockTags[n] ) {
          displayVal = "block";
        }
      }
      if ( displayVal == '' ) displayVal = "inline";
      thisElement.style.display = displayVal;
    }

    // alert ('Show ' + thisElement.tagName + ' : ' + thisElement.style.display);
  }
}


function hideElements(elementID) {

  var MyElement = getObj(elementID);
  MyElement.style.display = "none";

  var elementArray = new Array();
  elementArray = getObjNodes(elementID);
  var l = elementArray.length;
  for (var i=0; i<l; i++) {
    var thisElement = elementArray.item(i);
    thisElement.style.display = "none";
    // alert ('Hide ' + thisElement.id + ' : ' + thisElement.style.display);
  }
}


function showHideElements(elementID) {

  var MyElement = getObj(elementID);
  if ( MyElement.style.display == "none" || MyElement.style.display == "" ) { 
    showElements(elementID);
  } else {
    hideElements(elementID);
  }
}

