$(document).ready(function(){
    
    $('.menu-levels .control-1')
        .click(function(){
            var $this = $(this);
            switch( true ) {
                case $this.hasClass('open'):
                    close( $this, 1 );
                break;
                case $this.hasClass('closed'):
                    open( $this, 1 );
                break;
            }
            return false;
        });       
        
    $('.menu-levels .control-3')
        .click(function(){
            var $this = $(this);
            switch( true ) {
                case $this.hasClass('open'):
                    close( $this, 2 );
                break;
                case $this.hasClass('closed'):
                    open( $this, 2 );
                break;
            }
            return false;
        });
        
    $('.menu-levels a:first-child')
        .click(function(){
            var $parent = $(this).parent();
            var $control = $parent.children('a.menu-control');
            if( $control.length > 0 && $control.hasClass('open') ) {
                close( $control );
                return false;
            }
        });
    
});

function open( $this, level ) {
    // close open 
    closeAll( level );
    // open current
    $this.removeClass('closed').addClass('open');
    $this.parent().children('ul').removeClass('closed').addClass('open');
}

function close( $this, level ) {
    // close open
    closeAll( level );
    // open current
    $this.removeClass('open').addClass('closed');
    $this.parent().children('ul').removeClass('open').addClass('closed');
}

function closeAll( level ) {
    var next = level+1;
    $('.menu-levels .control-'+level).removeClass('open').addClass('closed');
    $('.menu-levels .menu-level-'+next).removeClass('open').addClass('closed');
}
