diff --git a/lib/scripts/page.js b/lib/scripts/page.js
index 74dec37fb6ec311d6e64f7fed848d1d2c9080406..78943be7a96ca107b4e9146542c90550e86438d3 100644
--- a/lib/scripts/page.js
+++ b/lib/scripts/page.js
@@ -102,7 +102,7 @@ dw_page = {
      * @param selector handle What should be clicked to toggle
      * @param selector content This element will be toggled
      */
-    makeToggle: function(handle, content){
+    makeToggle: function(handle, content, state){
         var $handle, $content, $clicky, $child, setClicky;
         $handle = jQuery(handle);
         if(!$handle.length) return;
@@ -125,32 +125,44 @@ dw_page = {
             }
         };
 
-        // the state indicator
-        $clicky = jQuery(document.createElement('strong'));
+        $handle[0].setState = function(state){
+            var hidden;
+            if(!state) state = 1;
 
-        // click function
-        $handle.css('cursor','pointer')
-               .click(function () {
-                    var hidden;
+            // Assert that content instantly takes the whole space
+            $content.css('height', $content.height()).show();
 
-                    // Assert that content instantly takes the whole space
-                    $content.css('height', $content.height()).show();
+            // stop any running animation
+            $child.stop(true, true);
 
-                    // stop any running animation and get current state
-                    hidden = $child.stop(true, true).is(':hidden');
+            // was a state given or do we toggle?
+            if(state === -1) {
+                hidden = false;
+            } else if(state === 1) {
+                hidden = true;
+            } else {
+                hidden = $child.is(':hidden');
+            }
 
-                    // update the state
-                    setClicky(!hidden);
+            // update the state
+            setClicky(!hidden);
 
-                    // Start animation and assure that $toc is hidden/visible
-                    $child.dw_toggle(hidden, function () {
-                        $content.toggle(hidden);
-                    });
-                })
+            // Start animation and assure that $toc is hidden/visible
+            $child.dw_toggle(hidden, function () {
+                $content.toggle(hidden);
+            });
+        };
+
+        // the state indicator
+        $clicky = jQuery(document.createElement('strong'));
+
+        // click function
+        $handle.css('cursor','pointer')
+               .click($handle[0].setState)
                .prepend($clicky);
 
         // initial state
-        setClicky();
+        $handle[0].setState(state);
     }
 };
 
diff --git a/lib/tpl/dokuwiki/script.js b/lib/tpl/dokuwiki/script.js
index 75575608befb1074488aab547b5a268cb17750cf..d32cf5cffab8d9a7e5bfbf73534bc5de550f8361 100644
--- a/lib/tpl/dokuwiki/script.js
+++ b/lib/tpl/dokuwiki/script.js
@@ -1,14 +1,32 @@
 function tpl_dokuwiki_mobile(){
     // check if we are in mobile or tablet mode be sure to adjust the number
     // here when adjusting it in the css
-    if(document.body.clientWidth > 979) return;
+    var $handle = jQuery('#dokuwiki__aside h3.toggle');
+    var $toc = jQuery('#dw__toc h3');
+    if(document.body.clientWidth > 979) {
+        console.log('desktop');
+        // reset for desktop mode
+        $handle[0].setState(1);
+        $handle.hide();
+        $toc[0].setState(1);
+    } else {
+        console.log('mobile');
+        // toc and sidebar hiding
+        $handle.show();
+        $handle[0].setState(-1);
+        $toc[0].setState(-1);
+    }
+}
 
-    // toc and sidebar hiding
+jQuery(function(){
+    var resizeTimer;
     dw_page.makeToggle('#dokuwiki__aside h3.toggle','#dokuwiki__aside div.content');
 
-    jQuery('#dw__toc h3.toggle').click();
-    jQuery('#dokuwiki__aside h3.toggle').show().click();
-}
-
-jQuery(tpl_dokuwiki_mobile);
-jQuery(window).bind('resize',tpl_dokuwiki_mobile);
+    tpl_dokuwiki_mobile();
+    jQuery(window).bind('resize',
+        function(){
+            if (resizeTimer) clearTimeout(resizeTimer);
+            resizeTimer = setTimeout(tpl_dokuwiki_mobile,200);
+        }
+    );
+});