Got an iPhone or iPad? We have a brand new Pastebin App for both devices, and it's totally free! Click here to download the new Pastebin App for iOS.
Guest

RazorXL

By: a guest on Jan 31st, 2009  |  syntax: JavaScript  |  size: 6.00 KB  |  hits: 202  |  expires: Never
download  |  raw  |  embed  |  report abuse
Copied
  1. // ==UserScript==
  2. // @name          MozillaZine Forums Menu
  3. // @namespace     http://forums.mozillazine.org/profile.php?mode=viewprofile&u=85938
  4. // @include       http://forums.mozillazine.org/*
  5. // @description   Adds menu for subforums when hover the mouse on Forum Links on sidebar for easy navigation
  6. // ==/UserScript==
  7. // Changelog:
  8. // * 2005-08-08:
  9. //   - Changed menu positions
  10. //   - Added index to insertMenu function
  11. //   - Added User Links menu
  12. // * 2005-08-13: Reorder menu due to changes in the forums
  13. // * 2006-06-12: Reorder menu due to changes in the forums
  14. // * 2006-06-20: Reorder menu due to changes in the forums
  15. // * 2006-07-31: Updated to new *#&*@(* layout
  16. // * 2009-01-31: Updated to new forum software by RazorXL
  17.  
  18. var head = document.getElementsByTagName('head')[0];
  19. if(!head) return;
  20.  
  21. var sidebar = document.getElementById('sidebar');
  22. if(!sidebar) return;
  23.  
  24. var headers = ['Forums Links','User Links'];
  25. var ul = sidebar.getElementsByTagName('div')[0].getElementsByTagName('ul');
  26. for(var i = 0; i < ul.length; i++) {
  27.   var header = document.createElement('li');
  28.   var strong = document.createElement('strong');
  29.   strong.appendChild(document.createTextNode(headers[i]));
  30.   header.appendChild(strong);
  31.   ul[i].insertBefore(header, ul[i].firstChild);
  32. }
  33.  
  34.  
  35. var mzf = {
  36.   addStyle: function(css) {
  37.     style = document.createElement('style');
  38.     style.setAttribute('type', 'text/css');
  39.     style.innerHTML = css;
  40.     head.appendChild(style);
  41.   },
  42.   addMenu: function(menu, index) {
  43.     submenu = document.createElement('ul');
  44.     submenu.innerHTML = menu;
  45.     sidebar.getElementsByTagName('strong')[index].parentNode.appendChild(submenu);
  46.   }
  47. }
  48.  
  49. var css, fLinks, uLinks;
  50.  
  51. css = (
  52.   '.sidebar li strong:before {\n' +
  53.   '  content: "\u00ab ";' +
  54.   '}\n\n' +
  55.  
  56.   '.sidebar li strong {\n' +
  57.   '  cursor: pointer;' +
  58.   '}\n\n' +
  59.  
  60.   '.sidebar li > ul {\n' +
  61.   '  display: none;\n' +
  62.   '  float: left;\n' +
  63. '  background-color: #faf9f6;\n' +
  64.     '  border: 1px solid black;\n' +
  65.   '  -moz-border-radius: 10px;\n' +
  66.   '  position: absolute;\n' +
  67.   '  z-index: 3;\n' +
  68.   '  margin-top: -1.5em;\n' +
  69.   '  margin-left: -13em;\n' +
  70.   '  width: 16em;\n' +
  71.   '  padding: .5em;\n' +
  72.   '}\n\n' +
  73.  
  74.   '.sidebar li > ul ul {\n' +
  75.   '  position: absolute;\n' +
  76.   '  margin-top: -2em;\n' +
  77.   '  margin-left: -16.5em;\n' +
  78.   '  width: 16em;\n' +
  79.   '}\n\n' +
  80.  
  81.   '.sidebar li > ul > li {\n' +
  82.   '  text-align: left;\n' +
  83.   '  padding-left: 1em;\n' +
  84.   '}\n\n' +
  85.  
  86.   '.sidebar li > ul > li > ul > li {\n' +
  87.   '  text-align: right;\n' +
  88.   '  padding-right: 1em;\n' +
  89.   '  padding-left: 0;\n' +
  90.   '}\n\n' +
  91.  
  92.   '.sidebar li ul li a {\n' +
  93.   '  display: block;\n' +
  94.   '}\n\n' +
  95.  
  96.   '.sidebar li a:hover {\n' +
  97.   '  text-decoration: underline;\n' +
  98.   '}\n\n' +
  99.  
  100.   '.sidebar  ul > li:hover > ul,\n' +
  101.   '.sidebar  ul ul li:hover > ul {\n' +
  102.   '  display: block;\n' +
  103.   '}\n\n'
  104. );
  105.  
  106. fLinks = (
  107.   '<li><a href="/?c=4">Mozilla Firefox</a>' +
  108.   '<ul>' +
  109.   '<li><a href="/viewforum.php?f=38">Firefox Support</a></li>' +
  110.   '<li><a href="/viewforum.php?f=7">Firefox General</a></li>' +
  111.   '<li><a href="/viewforum.php?f=23">Firefox Builds</a></li>' +
  112.   '<li><a href="/viewforum.php?f=8">Firefox Features</a></li>' +
  113.   '<li><a href="/viewforum.php?f=9">Firefox Bugs</a></li>' +
  114.   '</ul>' +
  115.   '</li>' +
  116.   '<li><a href="/?c=8">Mozilla Thunderbird</a>' +
  117.   '<ul>' +
  118.   '<li><a href="/viewforum.php?f=39">Thunderbird Support</a></li>' +
  119.   '<li><a href="/viewforum.php?f=28">Thunderbird General</a></li>' +
  120.   '<li><a href="/viewforum.php?f=29">Thunderbird Builds</a></li>' +
  121.   '<li><a href="/viewforum.php?f=30">Thunderbird Features</a></li>' +
  122.   '<li><a href="/viewforum.php?f=31">Thunderbird Bugs</a></li>' +
  123.   '</ul>' +
  124.   '</li>' +
  125.   '<li><a href="/?c=3">SeaMonkey</a>' +
  126.   '<ul>' +
  127.   '<li><a href="/viewforum.php?f=40">SeaMonkey Support</a></li>' +
  128.   '<li><a href="/viewforum.php?f=3">SeaMonkey General</a></li>' +
  129.   '<li><a href="/viewforum.php?f=6">SeaMonkey Builds</a></li>' +
  130.   '<li><a href="/viewforum.php?f=4">SeaMonkey Features</a></li>' +
  131.   '<li><a href="/viewforum.php?f=5">SeaMonkey Bugs</a></li>' +
  132.   '</ul>' +
  133.   '</li>' +
  134.   '<li><a href="/?c=5">Other Mozilla Discussion</a>' +
  135.   '<ul>' +
  136.   '<li><a href="/viewforum.php?f=12">Camino</a></li>' +
  137.   '<li><a href="/viewforum.php?f=46">Calendar</a></li>' +
  138.   '<li><a href="/viewforum.php?f=47">Minimo</a></li>' +
  139.   '<li><a href="/viewforum.php?f=32">Miscellaneous Support</a></li>' +
  140.   '<li><a href="/viewforum.php?f=34">Other Applications and Distributions</a></li>' +
  141.   '<li><a href="/viewforum.php?f=44">Mozilla Marketing</a></li>' +
  142.   '</ul>' +
  143.   '</li>' +
  144.   '<li><a href="/?c=11">Extensions and Themes</a>' +
  145.   '<ul>' +
  146.   '<li><a href="/viewforum.php?f=48">Extension/Theme Releases</a></li>' +
  147.   '<li><a href="/viewforum.php?f=19">Extension Development</a></li>' +
  148.   '<li><a href="/viewforum.php?f=18">Theme Development</a></li>' +
  149.   '</ul>' +
  150.   '</li>' +
  151.   '<li><a href="/?c=7">Development</a>' +
  152.   '<ul>' +
  153.   '<li><a href="/viewforum.php?f=27">Mozilla Development</a></li>' +
  154.   '<li><a href="/viewforum.php?f=25">Web Development</a></li>' +
  155.   '<li><a href="/viewforum.php?f=42">Unofficial Builds</a></li>' +
  156.   '</ul>' +
  157.   '</li>' +
  158.   '<li><a href="/?c=2">MozillaZine</a>' +
  159.   '<ul>' +
  160.   '<li><a href="/viewforum.php?f=11">MozillaZine Site Discussion</a></li>' +
  161.   '<li><a href="/viewforum.php?f=43">MozillaZine BackPage</a></li>' +
  162.   '<li><a href="/viewforum.php?f=37">MozillaZine Tech</a></li>' +
  163.   '<li><a href="/viewforum.php?f=22">MozillaZine AfterDark</a></li>' +
  164.   '<li><a href="/viewforum.php?f=26">Locked Posts</a></li>' +
  165.   '</ul>' +
  166.   '</li>'
  167. );
  168.  
  169. uLinks = (
  170.   '<li><a href="/search.php?search_id=newposts">View new posts</a></li>' +
  171.   '<li><a href="/search.php?search_id=egosearch">View your posts</a></li>' +
  172.   '<li><a href="/search.php?search_id=unanswered">View unanswered posts</a></li>' +
  173.   '<li><a href="/viewonline.php">View online users</a></li>'
  174. );
  175.  
  176. mzf.addStyle(css)
  177. mzf.addMenu(fLinks, 0);
  178. mzf.addMenu(uLinks, 2);