Что делает скрипт:
Делает категории форума скрывающимися
Даёт возможность установить начальное состояние категории (скрыта или нет)
Скрипт использует куки, чтобы запомнить какие категории были скрыты, а какие - нет
Запускается только на главной странице
<script type="text/javascript">
str_hide = "http://uploads.ru/images/k/karpoff/up.gif"
str_show = "http://uploads.ru/images/k/karpoff/down.gif"
tit_hide = "Скрыть категорию."
tit_show = "Показать категорию"
offset=0
tableOffset=0
catCount=0
str=document.URL
page=str.substring(str.lastIndexOf('/')+1)
if( page=="" || page=="index.php" ) {
findT();
findO();
//Добавляйте категории здесь
hideCat("Общение")
hideCat("Ысчо одна категория","close")
hideCat("Админка","close")
}
function checkCookie(name,index) {
if(window.navigator.appName!="Microsoft Internet Explorer")
return false
cook = unescape(document.cookie)
if( pos=cook.indexOf(name) )
{
state=cook.substring(pos-2,pos)
if(state=="op")
showCat(index)
else closeCat(index)
return true
}
return false
}
function saveCookie() {
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';
}
window.onunload = saveCookie
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>
Чтобы сделать категорию скрывающейся и изначально скрыть её, после строки //Добавляйте категории здесь вставьте строку hideCat("ИМЯ_КАТЕГОРИИ","close"), чтобы по умолчанию категория оставалась открытой, вставьте hideCat("ИМЯ_КАТЕГОРИИ")
В первых строчках скрипта можно менять названия кнопок Скрыть/Показать и картинки, которые отображаются справа от названия категории.