var visibleDivs = [];
var all_divs = document.getElementsByTagName('div');

/* 
Divs that have a display toggle must be a class with either "hide" or "show" 
as the first word in the class. If "hide" is the first word then when no 
classes are selected nothing will display. If it is "show" then when no classes
are selected everything will be displayed.
*/
function toggle(divID) {

  if (divID.checked) {
    visibleDivs.push(divID);
  }
  else {
    for (I=0;I < visibleDivs.length;I++) {
      if (visibleDivs[I] == divID) {
        visibleDivs.splice (I, 1);
      }
    }
  }

  for (I=0;I < all_divs.length;I++) {
    var tmp = "^" + "hide";
    if (all_divs[I].className.match(tmp)) {
      all_divs[I].style.display = 'none';
    }

    var tmp2 = "^" + "show";
    if (all_divs[I].className.match(tmp2)) {
      all_divs[I].style.display = 'none';
    }

  }

  for (I=0;I < all_divs.length;I++) {
	
    if (visibleDivs.length == 0) {
        var tmp = "^" + "hide";
    	if (all_divs[I].className.match(tmp)) {
      	   all_divs[I].style.display = 'none';
    	}

        var tmp2 = "^" + "show";
    	if (all_divs[I].className.match(tmp2)) {
      	   all_divs[I].style.display = 'block';
    	}

	//return false;
    }

    var count = 0;
    for (K=0;K < visibleDivs.length;K++) {

      var tmp = "(^|\\s)" + visibleDivs[K].getAttribute('name') + "(\\s|$)";

      if (all_divs[I].className.match(tmp)) {
        all_divs[I].style.display = 'block';
      }

    } 

  }

}