(function() {
    var sideMenuContainer = jQuery('<div id="side-menu-container">')
    var sideMenuOpener = jQuery('<button class="side-menu-opener"></button>')
    var sideMenu = jQuery('<div id="side-menu">')
    var body = jQuery('body')
    var html = jQuery('html')
    var isTouchDevice = window.matchMedia("(pointer: coarse)").matches

    
    var targetBlankApps = [];

    body.on('side-menu.apps', function(e, apps) {
                                })

    body.on('side-menu.ready', function() {
        sideMenu = jQuery('#side-menu')

        var headerMenuOpener = jQuery('#header .side-menu-opener')
        var sideMenuOpener = jQuery('#side-menu .side-menu-opener')

        sideMenuFocus = function() {
            var a = sideMenu.find('.side-menu-app.active a')

            if (a.length === 0) {
                a = sideMenu.find('.side-menu-app:first-child a')
            }

            if (a.length > 0) {
                a.focus()
            }
        }

        
        headerMenuOpener.on('click', function() {
            sideMenu.addClass('open')
            sideMenu.find('.side-menu-app.active a').focus()
        })

                    sideMenuOpener.on('click', function() {
                sideMenu.removeClass('open')
            })
        
        jQuery(document).keydown(function(e) {
            var key = e.key || e.keyCode

            if ((key === 'o' || key === 79) && e.ctrlKey === true) {
                e.preventDefault()

                sideMenu.toggleClass('open')
                sideMenuFocus()
            }
        })
    })

    body.append(sideMenuContainer)
    sideMenuContainer.append(sideMenu)

            var pageLoader = jQuery('<div id="side-menu-loader">')
var pageLoaderBar = jQuery('<div id="side-menu-loader-bar">')

body.append(pageLoader)
pageLoader.append(pageLoaderBar)

var pageLoaderValue = 0

$(window).on('beforeunload', function() {
    setInterval(function() {
        pageLoaderBar.width(pageLoaderValue.toString() + '%')

        pageLoaderValue = Math.min(pageLoaderValue + .2, 100)
    }, 25)
})
    
            sideMenuOpener.insertBefore('#nextcloud')
    
    
    })();
