function show(i){
  document.getElementById("cb_data" + i).style.display = "block";
  document.getElementById("cb_toggle" + i).innerHTML = "&ndash;";
  var el = document.getElementById("cb_short" + i);
  if (el != null)
      el.style.display = "none";
}

function hide(i){
  document.getElementById("cb_data" + i).style.display = "none";
  document.getElementById("cb_toggle" + i).innerHTML = "+";
  var el = document.getElementById("cb_short" + i);
  if (el != null)
      el.style.display = "block";
}

function toggle_cb(i){
  if (document.getElementById("cb_data" + i).style.display == "block")
    hide(i);
  else
    show(i);
}

function expand(){
  for (var i = 1; document.getElementById("cb_data" + i) != null; i++)
      show(i);
  if (document.getElementById("cb_data" + 0) != null)
      show(0);
}

function collapse(){
  for (var i = 1; document.getElementById("cb_data" + i) != null; i++)
      hide(i);
  if (document.getElementById("cb_data" + 0) != null)
      hide(0);
}

function toggle_generic(elname, txtname, showval, hideval) {
    var el = document.getElementById(elname)
    var txt = document.getElementById(txtname);
    if (el && txt) {
	if(el.style.display == "block") {
	    el.style.display = "none";
	    txt.innerHTML = showval;
	} else {
	    el.style.display = "block";
	    txt.innerHTML = hideval;
	}    
    }
}

