se lasci il posizionamento relativo e al posto di cambiare la visibilita' cambi il display, i livelli nascosti non dovrebbero occupare spazio
al posto di
organigramma.style.visibility="hidden";
organigramma.style.display="none";
al posto di
organigramma.style.visibility="visible";
organigramma.style.display="block";
sinceramente lo script non e' molto bello a vedersi,
prepara un array con tutti gli id,
cicla per esso nascondendo i livelli
e mostra solo quello che deve rimanere
ciao