| 1 | (function() { |
|---|
| 2 | |
|---|
| 3 | // duplicate original window (drastic, but anything else either prevents node insertion or throws an exception) |
|---|
| 4 | var originalWindow = document.lastChild.cloneNode(true); |
|---|
| 5 | |
|---|
| 6 | function 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 | |
|---|
| 56 | window.addEventListener('DOMContentLoaded', mungeMenus, true); |
|---|
| 57 | |
|---|
| 58 | |
|---|
| 59 | })(); |
|---|