Код:
<script type="text/javascript">

str_hide = "ваша ссылка на картинку"     //картинка, которая показывается когда категория развёрнута
str_show = "ваша ссылка на картинку"      //картинка, которая показывается когда категория свёрнута
tit_hide = "Скрыть категорию"     //всплывающая подсказка для картинки которая показывается когда категория развёрнута
tit_show = "Показать категорию"     //всплывающая подсказка для картинки которая показывается когда категория свёрнута
offset=0
tableOffset=0
catCount=0

str=document.URL
page=str.substring(str.lastIndexOf('/')+1)

if( true/*page=="" || page=="index.php"*/ ) {
  findT();
  findO();

  //Добавляйте категории здесь
  hideCat("ИМЯ_КАТЕГОРИИ_1")
  hideCat("ИМЯ_КАТЕГОРИИ_1","close")

  window.onunload = saveCookie
}

function checkCookie(name,index) {
if(window.navigator.appName!="Microsoft Internet Explorer")
  return false
cook = unescape(document.cookie)
         if( (pos=cook.indexOf(name))!=-1 )
{
    state=cook.substring(pos-2,pos)
    if(state=="op")
    showCat(index)
    else if(state=="cl") closeCat(index)
    
    return true
}
return false
}

function saveCookie() {
if(window.navigator.appName!="Microsoft Internet Explorer")
  return
s=""
for(i=0;i<20;i++)
{
    elem=document.getElementById("inp"+i)
    if(elem)
    {
    if(document.getElementById("tab"+i).style.display=="none") state="cl"
    else state="op"
    name = document.getElementById("tab"+i).name
    s+=escape(state+name+'\n');
    
    catCount--
    }
    
    if(catCount==0)
    break;
}
document.cookie=s+'; expires=Fri, 01-Jan-2010 00:00:01 GMT';
}

function hideCat(name, state){
  index = findCat(name)

  if(index==-1) return -1
  catCount++

  str  = "<div class=\"catleft\"><!-- --></div>"
  str += "<img title=\"" + tit_show + "\" align=\"right\" style=\"cursor: hand;\" src=" + str_show + " id=inp"+index+" onclick='changeCat("+index+")'>"    
  str += name
  str += "<div class=\"catright\"><!-- --></div>"
  document.getElementsByTagName ("h2") [index+offset] .innerHTML = str
  
  document.getElementsByTagName ("table") [index+tableOffset] .id = "tab"+index
  document.getElementById("tab"+index).name = name

  cl=checkCookie(name,index)
  if(state=="close" && !cl)
  closeCat(index)  
}

function findT() 
{
  i=0
  arr=document.getElementsByTagName ("table")
  
  while(arr[i].summary.toLowerCase().substring(0,27)!="список форумов в категории:")
    i++

  tableOffset = i
}
function findO() 
{
  arr = document.getElementsByTagName ("h2")
  i=0
  while(arr[i].innerHTML.substring(0,2)!="<D")
    i++
  
  offset=i
}

function findCat(name)
{
  arr = document.getElementsByTagName ("h2")
  i=offset

  while(arr[i].innerHTML.substring(0,2)=="<D")
  {
if(arr[i].innerHTML.toLowerCase().indexOf(name.toLowerCase())!=-1)
    return (i-offset)
i++
  }
  
  return -1
}

function changeCat(index){
  if(index==-1) return

  if(  document.getElementById("tab"+index).style.display!="none") closeCat(index)
  else showCat(index)
}

function closeCat(index){
  document.getElementById("tab"+index).style.display="none"
  document.getElementById("inp"+index).src = str_show
  document.getElementById("inp"+index).title = tit_show + " " + document.getElementById("tab"+index).name
}

function showCat(index){
    document.getElementById("tab"+index).style.display="block"
document.getElementById("inp"+index).src = str_hide
document.getElementById("inp"+index).title = tit_hide + " " + document.getElementById("tab"+index).name
}
</script>

Разработчик - karpoff.
Чтобы сделать категорию скрывающейся и изначально скрыть её, после строки //Добавляйте категории здесь  вставьте строку hideCat("ИМЯ_КАТЕГОРИИ","close"), чтобы по умолчанию категория оставалась открытой, вставьте hideCat("ИМЯ_КАТЕГОРИИ") - примечание Lexx.