
var ccn="clicker";
var clcn="closed";
var opcn="open";

function toggleNextById(el) {
 var clicker=document.getElementById(el);
 clicker.className+=" "+ccn;
 clicker.onclick=function() {toggleNext(this)}
 toggleNext(clicker);
}

function toggleNext(el) {
 var next=el.nextSibling;
  el.className=el.className.replace(new RegExp(opcn+"\\b"), "");
 el.className=el.className.replace(new RegExp(clcn+"\\b"), "");
 while(next.nodeType != 1) next=next.nextSibling;
 next.style.display=((next.style.display=="none") ? "block" : "none");
 el.className+=((next.style.display=="block")? " "+opcn : " "+clcn);
}

function getElementsByTagAndClassName(tag,cname) {
 var tags=document.getElementsByTagName(tag);

 var cEls=new Array();
 for (i=0; i<tags.length; i++) {
  //var rE = new RegExp("(^|\s)" + cname + "(\s|$)");
  var rE = new RegExp(cname);
   if (rE.test(tags[i].className)) {
   cEls.push(tags[i]);
   }
  }
 return cEls;
}
function toggleNextByTagAndClassName(tag,cname) {
 clickers=getElementsByTagAndClassName(tag,cname);
 for (i=0; i<clickers.length; i++) {
  clickers[i].className+=" "+ccn;
  if(i==0){
	clickers[i].onclick=function(){toggleNextByTagAndClassName('span','toggle')}
  }else{
	clickers[i].onclick=function() {toggleNext(this)}
  }
  toggleNext(clickers[i]);
 }
}
//window.onload=function(){toggleNextByTagAndClassName('span','toggle')}