function switchNext2(el,tname,first) {
    var selcn="selected";
    var parent=el.parentNode;
    var tags=parent.getElementsByTagName(tname);
    var next=el.nextSibling;
    var last=parent.lastChild;
    while(last.nodeType != 1) last = last.previousSibling;
    while(next.nodeType != 1) next = next.nextSibling;
    next.style.display="none";
    if (first!=1){
        for (i=0; i<tags.length; i++) {
            var tohide=tags[i].nextSibling;
            while(tohide.nodeType != 1) tohide = tohide.nextSibling;
            if (tohide!=next){tohide.style.display="none";}
            tags[i].className=tags[i].className.replace(new RegExp(selcn+"\\b"), "");
            if (tags[i]==el){
                var rEx = new RegExp("(^|\\s)" + selcn + "(\\s|$)");
                if (rEx.test(tags[i].className)==false) {tags[i].className+=" "+selcn;}
            }
        }    
        var clone=next.cloneNode(true);
        clone.style.display="block";
        parent.removeChild(last);
        parent.appendChild(clone);
    }
    else {
        var firstone=tags[0].nextSibling;
        while(firstone.nodeType != 1) firstone = firstone.nextSibling;
        var clone=firstone.cloneNode(true);
        clone.style.display="block";
        if (last.innerHTML!=clone.innerHTML){parent.appendChild(clone);}
        var rEx = new RegExp("(^|\\s)" + selcn + "(\\s|$)");
        if (rEx.test(tags[0].className)==false) {tags[0].className+=" "+selcn;}
    }
}

function switchNextByIdAndTag2(el,tname) {
    var ccn="clicker";
    clickers=document.getElementById(el).getElementsByTagName(tname);
    for (i=0; i<clickers.length; i++) {
        clickers[i].className+=" "+ccn;
        clickers[i].onclick=function() {switchNext2(this,tname)}
        switchNext2(clickers[i],tname,1);
    }
}

window.onload=function(){switchNextByIdAndTag2('dlist','dt')}
