devi distinguere se la voce in questione appartiene al primo gruppo o al secondo e nascondere solo i livelli dello stesso gruppo, potresti procedere in tanti modi, vista la situazione contingente io farei cosi'
codice:
function swap(nome) {
    var gdivs = [
        "usciterecenti",
        "oldworks",
        "demosmini",
        "reportages",
        "interviste",
		"newsradar",
		"concerti_iniziative",
		"annunci_feedback"
    ];
    var min=0;
    var max=gdivs.length;
    var vGr=5;
    for(var q in gdivs){
      if(gdivs[q]==nome){
        if(q<vGr) max=vGr;
        else min=vGr;
      }
    }
    for (var i = min; i < max; i++) {
        document.getElementById(gdivs[i]).style.display = "none";
    }
    document.getElementById(nome).style.display = "block";

}
quel vGr e' il numero di voci del primo gruppo,
il tutto funzionera' finche' i gruppi rimarranno 2
ma mi sembra vedendo lo spazio/layout che non ne avrai + di 2
ciao