заранее прошу прощение за портянку кода.
в следующем шаблоне генерится раскрывающееся меню.
все пункты меню свернуты, за исключением текущего пункта
при попытке свернуть текущий раздел, при первом клике ничего не происходит, сворачивается меню только после второго клика.
подскажите, пожалуйста, что нужно дописать, чтобы открытый раздел меню сворачивался при первом клике?
Код:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div id="categoryTree" class="globalModule">
<h3>{$lang.dwb_category}</h3>
<!-- {foreach from=$categories item=cat} -->
<div class="toggleblock">
<h4 class="toggletitle"><!-- {if $cat.children} --><span>{if $cat.menuexp==1}<img src="../images/icon_list_down.gif" alt="-" />{else}<img src="../images/icon_list_up.gif" alt="+" />{/if}</span><!-- {/if} --><a href="{$cat.url}">{$cat.name|escape:html}</a></h4>
<!-- {if $cat.children} -->
<ul {if $cat.menuexp==1}{else}style="display:none;"{/if} >
<!-- {foreach from=$cat.children item=child} -->
<li><a href="{$child.url}">{$child.name|escape:html}</a></li>
<!-- {/foreach} -->
</ul>
<!-- {/if} -->
</div>
<!-- {/foreach} -->
</div>
<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='../images/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='../images/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("slideshow(this)");
}
//]]>
</script>