Да пожалуйста, только я сейчас подумал, а зачем гонять лишний раз циклы проверки, ведь лучше сделать всё сразу при загрузке страницы, что и сделал и так даже быстрее..
Код:
<script type="text/javascript">
//<![CDATA[
function getElementsByClassName(id,cls){
var o=document.getElementById(id);
var aelem=[];
oaelem=o.getElementsByTagName("*");
for(var i=0;i<oaelem.length;i++){
if (oaelem[i].className==cls ){
aelem[aelem.length]=oaelem[i];
}
}
return aelem;
}
function slideshow(obj){
obj.parentNode.parentNode.getElementsByTagName("ul")[0].style.display = "";
obj.innerHTML = "<img src='icon_list_down.gif' alt='-' />";
obj.onclick = new Function("slidehidden(this)");
}
function slidehidden(obj){
obj.parentNode.parentNode.getElementsByTagName("ul")[0].style.display = "none";
obj.innerHTML = "<img src='icon_list_up.gif' alt='+' />";
obj.onclick = new Function("slideshow(this)");
}
var a=getElementsByClassName("categoryTree","toggleblock");
for(var n=0;n<a.length;n++){
var olink=a[n].getElementsByTagName("h4")[0].firstChild;
olink.onclick = new Function("test(this)");
if(olink.parentNode.parentNode.getElementsByTagName("ul")[0].style.display=='none') { olink.onclick = new Function("slideshow(this)"); } else { olink.onclick = new Function("slidehidden(this)"); }
}
//]]>
</script>