var infoToggleDuration = 200;

function addEvent(obj, evType, fn, useCapture){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } /*else {
    alert("Handler could not be attached");
  }*/
};
    
var infoPanes = function() {    
    document.getElementsByClassName('info').each( 
        function(element)
        {     
            element.fx = new fx.Height(element, 
                {
                    duration: 200, onComplete: function()
                    {
                        if (element.offsetHeight > 0) 
                            element.style.height = "auto";
                    }
                });
            element.fx.hide();            
        }
    );
    
    document.getElementsByClassName('toggleinfo').each(
        function(element){ 
            element.onclick = function() {
                Element.find(element, 'nextSibling').fx.toggle();
                if(element.style.backgroundImage == 'url(/images/subject_minus.gif)')
                    {
                    element.style.backgroundImage = 'url(/images/subject_plus.gif)';
                    }
                else
                    {
                    element.style.backgroundImage = 'url(/images/subject_minus.gif)';
                    }
            }
        }
    );
};

var supaInit = function() {
    infoPanes();
};
addEvent(window, 'load', supaInit, false);
    
    function eAll()
    {
        document.getElementsByClassName('toggleinfo').each(
            function(element)
            {                 
                    //Element.find(element, 'nextSibling').fx.toggle();
                    element.style.backgroundImage = 'url(/images/subject_minus.gif)';                    
            }
        );
        document.getElementsByClassName('info').each( 
            function(element)
            {     
                element.fx = new fx.Height(element, 
                    {
                        duration: 200, onComplete: function()
                        {
                            if (element.offsetHeight > 0) 
                                element.style.height = "auto";
                        }
                    });
                element.fx.show();            
            }
        );
    }    
    function cAll()
    {    
        
        document.getElementsByClassName('toggleinfo').each(
            function(element)
            {                 
                    //Element.find(element, 'nextSibling').fx.toggle();
                    element.style.backgroundImage = 'url(/images/subject_plus.gif)';                    
            }
        );
        document.getElementsByClassName('info').each( 
            function(element)
            {     
                element.fx = new fx.Height(element, 
                    {
                        duration: 200, onComplete: function()
                        {
                            if (element.offsetHeight > 0) 
                                element.style.height = "auto";
                        }
                    });
                element.fx.hide();            
            }
        );
    }
    
    function expandAll(treeId)
    {
        var ul = document.getElementById(treeId);
        if(ul == null)
        {
            return false;
        }
        expandCollapseList(ul,nodeOpenClass);
    }
    function collapseAll(treeId)
    {
        var ul = document.getElementById(treeId);
        if(ul == null)
        {
            return false;
        }
        expandCollapseList(ul,nodeClosedClass);
    }

    function expandCollapseList(ul,cName,itemId)
    {
        if(!ul.childNodes || ul.childNodes.length==0)
        {
            return false;
        }
        for(var itemi=0;itemi<ul.childNodes.length;itemi++)
        {
            var item = ul.childNodes[itemi];
            if(itemId!=null && item.id==itemId)
            {
                return true;
            }
            if(item.nodeName == "LI")
            {
                var subLists = false;
                for(var sitemi=0;sitemi<item.childNodes.length;sitemi++)
                {
                    var sitem = item.childNodes[sitemi];
                    if(sitem.nodeName=="UL")
                    {
                        subLists = true;
                        var ret = expandCollapseList(sitem,cName,itemId);
                        if(itemId!=null && ret)
                        {
                            item.className=cName;
                            return true;
                        }
                    }
                }
                if(subLists && itemId==null)
                {
                    item.className = cName;
                }
            }
        }
    }
