/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


var Accordion =
{
    widgets : null,

    init : function()
    {
        Accordion.widgets = new Array();
        var ul = Core.getElementsByClass("accordion");
        for (var i = 0; i < ul.length; i++) {
            Accordion.widgets[ul[i].id] = ul[i];
        }

        var a = document.getElementsByTagName("a");
        for (var j = 0; j < a.length; j++) {
            if (Core.hasClass(a[j], "accordion")) {
                a[j].onclick = Accordion.foldAction;
            }
        }
    },

    foldAction : function()
    {
        var fold = this.parentNode;
        var widget = fold.parentNode;
        Accordion.collapseAll(widget);
        if (Core.hasClass(fold, "expanded")) {
            Accordion.collapseFold(fold);
        } else if (Core.hasClass(fold, "collapsed")) {
            Accordion.expandFold(fold);
        }
        return false;
    },

    collapseFold : function(fold)
    {
        Core.removeClass(fold, "expanded");
        Core.addClass(fold, "collapsed");
    },

    expandFold : function(fold)
    {
        Core.removeClass(fold, "collapsed");
        Core.addClass(fold, "expanded");
    },

    expandAll : function(widget)
    {
        var li = widget.getElementsByTagName("li");
        for (var k = 0; k < li.length; k++) {
            if (Core.hasClass(li[k], "collapsed")) {
                Accordion.expandFold(li[k]);
            }
        }
    },

    collapseAll : function(widget)
    {
        var li = widget.getElementsByTagName("li");
        for (var k = 0; k < li.length; k++) {
            if (Core.hasClass(li[k], "expanded")) {
                Accordion.collapseFold(li[k]);
            }
        }
    },

    getWidget : function(widgetId)
    {
        return Accordion.widgets[widgetId];
    }





};

Core.start(Accordion);
