Subversion Repositories wimsdev

Rev

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

Rev Author Line No. Line
13280 obado 1
/* wimsmenumodubox.js : New slide-in / slide-out menu
2
(used in Nikaia theme)
3
*/
5929 obado 4
 
13280 obado 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
 
13171 obado 18
document.addEventListener("DOMContentLoaded", function() {
19
 
13836 obado 20
  var wims_menu = document.getElementById("wimsmenumodubox");
21
  if (wims_menu){
13171 obado 22
 
13836 obado 23
    // Must be done after css transition
24
    setTimeout('dynapi_redraw()', 550);
13171 obado 25
 
13836 obado 26
    /* Extruder style */
27
    /*
28
    wims_menu.addClass("{title:'&#8593;&#8595;'}");
7671 bpr 29
 
13836 obado 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
    */
13171 obado 40
 
13836 obado 41
    /* Slideout style*/
13171 obado 42
 
13836 obado 43
    var body = document.getElementsByTagName("BODY")[0];
13171 obado 44
 
13836 obado 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
13171 obado 48
 
13836 obado 49
    var menu_panel = document.getElementById('wimsmenumodubox');
50
    menu_panel.classList.add("slide-menu");
13171 obado 51
 
13836 obado 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";
13171 obado 60
 
13836 obado 61
    var button = document.createElement("a");
62
    button.className = "wims_button wims_secondary_button";
13171 obado 63
 
13836 obado 64
    var span1 = document.createElement("span");
65
    var textnode = document.createTextNode("\u21e6");
66
    span1.appendChild(textnode);
67
    button.appendChild(span1);
13171 obado 68
 
13836 obado 69
    var span2 = document.createElement("span");
70
    var textnode = document.createTextNode("\u21e8");
71
    span2.appendChild(textnode);
72
    button.appendChild(span2);
13171 obado 73
 
13836 obado 74
    container.appendChild(button);
75
    menu_panel.insertBefore(container, menu_panel.childNodes[0]);
13171 obado 76
 
13836 obado 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");
13171 obado 82
 
13836 obado 83
      // Must be done after css transition
84
      setTimeout('dynapi_redraw()', 550);
13280 obado 85
 
13836 obado 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
    });
13171 obado 92
 
13836 obado 93
  }
6707 bpr 94
});