Ticket #140: moretools.js

File moretools.js, 1.8 KB (added by morac99-firefox@…, 18 months ago)

replacement moretools.js

Line 
1(function() {
2
3// duplicate original window (drastic, but anything else either prevents node insertion or throws an exception)
4var originalWindow = document.lastChild.cloneNode(true);
5
6function mungeMenus(event) {
7    window.removeEventListener('DOMContentLoaded', mungeMenus, true);
8
9    var toolsMenu=
10        document.getElementById('menu_ToolsPopup') || // firefox
11        document.getElementById('taskPopup') ;        // thunderbird
12
13    var moreToolsMenu=document.getElementById('more-tools-menupopup');
14
15    // Find the original tools menu popup
16    var originalMenuPopups = originalWindow.getElementsByTagName("menupopup");
17    var originalToolsMenu=null;
18    for (i=0; i<originalMenuPopups.length; i++) {
19        if (originalMenuPopups[i].id == "menu_ToolsPopup" || // firefox
20            originalMenuPopups[i].id == "taskPopup") {       // thunderbird
21           originalToolsMenu = originalMenuPopups[i];
22       }
23   }
24   originalMenuPopups = null;
25       
26    var mungeFlag=false;
27   
28    // loop through the original menu toolbar and the current menu toolbar.  Move anything
29    // that's in the current one that wasn't there originally
30    var i=0;
31    for (j=0; j<originalToolsMenu.childNodes.length; j++) {
32      while ((originalToolsMenu.childNodes[j].id != toolsMenu.childNodes[i].id) &&
33                 (originalToolsMenu.childNodes[j].id != toolsMenu.childNodes[i].id)) {
34       
35           var el = toolsMenu.childNodes[i];
36           //dump(el.id + "\n");
37            toolsMenu.removeChild(el);
38            moreToolsMenu.appendChild(el);
39           
40            mungeFlag=true;
41       }
42       i++;
43   }
44   
45   originalToolsMenu = null;
46   originalWindow = null;
47
48    if (mungeFlag) {
49        // we did munge something into this menu; remove the label and separator
50        document.getElementById('more-tools-label').setAttribute('hidden', true);
51        document.getElementById('more-tools-sep').setAttribute('hidden', true);
52    }
53}
54
55
56window.addEventListener('DOMContentLoaded', mungeMenus, true);
57
58
59})();