Udělal bych to tak, že bych v PHP rekurzivně projel celý zadaný adresář a pak to nějak šikovně vyplivl do HTML... Skrývání a odkrývání částí se dělá pomocí CSS vlastnosti visibility. Já nejčastěji používám na skrývání a odkrývání tag
Kód:
<div></div>
...