function showDivs(selectboxId, containerDivId) {
  var selectbox = document.getElementById(selectboxId);
  var selectedName = selectbox.options[selectbox.selectedIndex].text;

  var containerDiv = document.getElementById(containerDivId);
  
  var containerDivChildren = containerDiv.getElementsByTagName('div');
  if (containerDivChildren.length == 0) {
	  return;
  }
  var innerDivs = containerDivChildren[0].childNodes;
  
  for (var i=0; i<innerDivs.length; i++) {
    var innerDiv = innerDivs[i];
    var label = getLabel(innerDivs[i]);
    if (label) {
      innerDiv.style.display = (label == selectedName ? 'block' : 'none');
    }
  }
}

/**
 * Geht von einer festen HTML-Struktur aus und holt sich daraus einen Text.
 */
function getLabel(div) {
  var structure = new Array('table.dynaform_table', 'tbody.dynaform_table', 'tr', 'td', 'div', 'div.label', 'p', 'span');

  var currentElement = div;
  while (currentElement && structure.length > 0) {
    var nextElemName = structure.shift();
    var className = false;
    if (nextElemName.match('(.*)\\.(.*)')) {
      nextElemName = RegExp.$1;
      className = RegExp.$2;
    }
    var subElems = currentElement.getElementsByTagName(nextElemName);
    var j = 0;
    var nextElem = undefined;
    while (j < subElems.length && !nextElem) {
      if (!className || subElems[j].className == className) {
		nextElem = subElems[j];
      }
      j++;
    }

    currentElement = nextElem;
  }

  if (currentElement) {
    return currentElement.innerHTML;
  }
}

function activateChangeHandler(selectboxId, containerDivId) {
	document.getElementById(selectboxId).onchange = function (){
		showDivs(selectboxId, containerDivId);
		// Das Column-Sizer-Skript ausführen, um die richtige Spaltenhöhe zu erhalten
		ColumnSizer.setTallAll();
	};
	showDivs(selectboxId, containerDivId);
}

