Вот этот небольшой скрипт:
<script type="text/javascript">
    function UnHide( eThis ){
        if( eThis.innerHTML.charCodeAt(0) == 43 ){
            eThis.innerHTML = '−'
            eThis.parentNode.parentNode.parentNode.className = '';
        }else{
            eThis.innerHTML = '+'
            eThis.parentNode.parentNode.parentNode.className = 'cl';
        }
        return false;
    }
</script>
в своем 
оригинальном примере прекрасно работает. Однако, стоило выкинуть из примера div'ы и увеличить количество уровней, то список потерял функционал - только маркеры свернуто/развернуто меняются, не разворачивая текст. Мой список: 
http://learn.javascript.ru/play/S3fpab
Если же убрать класс .cl для пунктов списка (
http://learn.javascript.ru/play/YbGrdb), то текст наоборот виден, а +/- текст не сворачивает, т.е. display: none для .cl тупо прячет пункты, а скрипт не вовлекается в это вовсе.
Подскажите пожалуйста, как подрихтовать скрипт под мой список.
Заранее благодарен.