/**
 * @author Andrius Jukna <endris.j[at]gmail.com, andrius[at]evp.lt>
 */
 
var Folding = {

    classMainClosed:    'foldingMain',
    classMainOpen:      'foldingMain_open',
    
    classSubClosed:     'foldingSub',
    classSubOpen:       'foldingSub_open',

    init: function(open) {
        var $Folding = this;
        
        $('.'+$Folding.classMainClosed).bind('click', function(){
            $Folding.makeAction(this);
        });
        
        if(open) $Folding.show('#'+open);
    },
    
    makeAction: function(el) {
        var $Folding = this;
        
        if($Folding.ishidden(el)) {
            $Folding.show(el);
        } else {
            $Folding.hide(el);
        }
    },
    
    ishidden: function(el) {
        var $Folding = this;
    
        return ($Folding.classMainClosed == $(el).attr('class'));
    },
    
    show: function(el) {
        var $Folding = this;
        var curr = $(el);
        
        $(el).attr('class', $Folding.classMainOpen);
    
        while(true) {
            curr = curr.next();
            if($Folding.classSubClosed != curr.attr('class') && $Folding.classSubOpen != curr.attr('class')) {
                break;
            }
            curr.attr('class', $Folding.classSubOpen);
        }
    },
    
    hide: function(el) {
        var $Folding = this;
        var curr = $(el);
        
        $(el).attr('class', $Folding.classMainClosed);
        
        while(true) {
            curr = curr.next();
            if($Folding.classSubClosed != curr.attr('class') && $Folding.classSubOpen != curr.attr('class')) {
                break;
            }
            curr.attr('class', $Folding.classSubClosed);
        }
    }
    
};

