Subversion Repositories wimsdev

Rev

Rev 13280 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* wimsmenumodubox.js : New slide-in / slide-out menu
  2. (used in Nikaia theme)
  3. */
  4.  
  5. /* Redraw Dynapi layers after menu sliding */
  6. var dynapi_redraw = function(){
  7.   //console.log("dynapi_redraw called");
  8.   if (typeof dynapi !== 'undefined') {
  9.     var childs=dynapi.document.getChildren();
  10.     var l = childs.length;
  11.     for(var i=0;i<l;i++) {
  12.       childs[i].updateAnchor();
  13.     }
  14.   }
  15. }
  16.  
  17.  
  18. document.addEventListener("DOMContentLoaded", function() {
  19.  
  20.   var wims_menu = document.getElementById("wimsmenumodubox");
  21.   if (wims_menu){
  22.  
  23.     // Must be done after css transition
  24.     setTimeout('dynapi_redraw()', 550);
  25.  
  26.     /* Extruder style */
  27.     /*
  28.     wims_menu.addClass("{title:'&#8593;&#8595;'}");
  29.  
  30.     wims_menu.buildMbExtruder({
  31.         position:"left",
  32.         width:250,
  33.         extruderOpacity:0.8,
  34.         textOrientation:"tb",
  35.         onExtOpen:function(){},
  36.         onExtContentLoad:function(){wims_menu.openPanel();},
  37.         onExtClose:function(){}
  38.     });
  39.     */
  40.  
  41.     /* Slideout style*/
  42.  
  43.     var body = document.getElementsByTagName("BODY")[0];
  44.  
  45.     // Get in sessionStorage if menu was previously opened.
  46.     var previous_state = sessionStorage.getItem("slide_menu_state");
  47.     previous_state = previous_state === null ? "closed" : previous_state; //default state
  48.  
  49.     var menu_panel = document.getElementById('wimsmenumodubox');
  50.     menu_panel.classList.add("slide-menu");
  51.  
  52.     if (previous_state == "closed"){
  53.       body.classList.add("slide-menu-closed");
  54.     }else{
  55.       body.classList.add("slide-menu-opened");
  56.     }
  57.     // Add a toggle button on top of the main panel
  58.     var container = document.createElement("div");
  59.     container.className = "toggle-button";
  60.  
  61.     var button = document.createElement("a");
  62.     button.className = "wims_button wims_secondary_button";
  63.  
  64.     var span1 = document.createElement("span");
  65.     var textnode = document.createTextNode("\u21e6");
  66.     span1.appendChild(textnode);
  67.     button.appendChild(span1);
  68.  
  69.     var span2 = document.createElement("span");
  70.     var textnode = document.createTextNode("\u21e8");
  71.     span2.appendChild(textnode);
  72.     button.appendChild(span2);
  73.  
  74.     container.appendChild(button);
  75.     menu_panel.insertBefore(container, menu_panel.childNodes[0]);
  76.  
  77.     button.addEventListener('click', function() {
  78.       //slideout.toggle();
  79.       //console.log("toggle clicked !");
  80.       body.classList.toggle("slide-menu-closed");
  81.       body.classList.toggle("slide-menu-opened");
  82.  
  83.       // Must be done after css transition
  84.       setTimeout('dynapi_redraw()', 550);
  85.  
  86.       previous_state = previous_state == "closed" ? "opened" : "closed"; //new state
  87.       /*if (previous_state=="closed"){
  88.         body.focus();
  89.       }*/
  90.       sessionStorage.setItem("slide_menu_state", previous_state);
  91.     });
  92.  
  93.   }
  94. });
  95.