// ==UserScript==
// @name          MozillaZine Forums Menu
// @namespace     http://forums.mozillazine.org/profile.php?mode=viewprofile&u=85938
// @include       http://forums.mozillazine.org/*
// @description	  Adds menu for subforums when hover the mouse on Forum Links on sidebar for easy navigation
// ==/UserScript==
// Changelog:
// * 2005-08-08:
//   - Changed menu positions
//   - Added index to insertMenu function
//   - Added User Links menu
// * 2005-08-13: Reorder menu due to changes in the forums
// * 2006-06-12: Reorder menu due to changes in the forums
// * 2006-06-20: Reorder menu due to changes in the forums
// * 2006-07-31: Updated to new *#&*@(* layout

var head = document.getElementsByTagName('head')[0];
if(!head) return;

var sidebar = document.getElementById('sidebar');
if(!sidebar) return;

var headers = ['User Links', 'Forums Links'];
var ul = sidebar.getElementsByTagName('div')[0].getElementsByTagName('ul');
for(var i = 0; i < ul.length; i++) {
  var header = document.createElement('li');
  var strong = document.createElement('strong');
  strong.appendChild(document.createTextNode(headers[i]));
  header.appendChild(strong);
  ul[i].insertBefore(header, ul[i].firstChild);
}

var mzf = {
  addStyle: function(css) {
    style = document.createElement('style');
    style.setAttribute('type', 'text/css');
    style.innerHTML = css;
    head.appendChild(style);
  },
  addMenu: function(menu, index) {
    submenu = document.createElement('ul');
    submenu.innerHTML = menu;
    sidebar.getElementsByTagName('strong')[index].parentNode.appendChild(submenu);
  }
}

var css, fLinks, uLinks;

css = (
  '.sidebar li strong:before {\n' +
  '  content: "\u00ab ";' +
  '}\n\n' +

  '.sidebar li strong {\n' +
  '  cursor: pointer;' +
  '}\n\n' +

  '.sidebar li > ul {\n' +
  '  display: none;\n' +
  '  float: left;\n' +
  '  background-color: #faf9f6;\n' +
  '  border: 1px solid black;\n' +
  '  -moz-border-radius: 10px;\n' +
  '  position: absolute;\n' +
  '  z-index: 3;\n' +
  '  margin-top: -1.5em;\n' +
  '  margin-left: -13em;\n' +
  '  width: 15em;\n' +
  '  padding: .5em;\n' +
  '}\n\n' +

  '.sidebar li > ul ul {\n' +
  '  position: absolute;\n' +
  '  margin-top: -2em;\n' +
  '  margin-left: -16.5em;\n' +
  '  width: 15em;\n' +
  '}\n\n' +

  '.sidebar li > ul > li {\n' +
  '  text-align: left;\n' +
  '  padding-left: 1em;\n' +
  '}\n\n' +

  '.sidebar li > ul > li > ul > li {\n' +
  '  text-align: right;\n' +
  '  padding-right: 1em;\n' +
  '  padding-left: 0;\n' +
  '}\n\n' +

  '.sidebar li ul li a {\n' +
  '  display: block;\n' +
  '}\n\n' +

  '.sidebar li a:hover {\n' +
  '  text-decoration: underline;\n' +
  '}\n\n' +

  '.sidebar  ul > li:hover > ul,\n' +
  '.sidebar  ul ul li:hover > ul {\n' +
  '  display: block;\n' +
  '}\n\n'
);

fLinks = (
  '<li><a href="/?c=4">Mozilla Firefox</a>' +
  '<ul>' +
  '<li><a href="/viewforum.php?f=38">Firefox Support</a></li>' +
  '<li><a href="/viewforum.php?f=7">Firefox General</a></li>' +
  '<li><a href="/viewforum.php?f=23">Firefox Builds</a></li>' +
  '<li><a href="/viewforum.php?f=8">Firefox Features</a></li>' +
  '<li><a href="/viewforum.php?f=9">Firefox Bugs</a></li>' +
  '</ul>' +
  '</li>' +
  '<li><a href="/?c=8">Mozilla Thunderbird</a>' +
  '<ul>' +
  '<li><a href="/viewforum.php?f=39">Thunderbird Support</a></li>' +
  '<li><a href="/viewforum.php?f=28">Thunderbird General</a></li>' +
  '<li><a href="/viewforum.php?f=29">Thunderbird Builds</a></li>' +
  '<li><a href="/viewforum.php?f=30">Thunderbird Features</a></li>' +
  '<li><a href="/viewforum.php?f=31">Thunderbird Bugs</a></li>' +
  '</ul>' +
  '</li>' +
  '<li><a href="/?c=3">SeaMonkey</a>' +
  '<ul>' +
  '<li><a href="/viewforum.php?f=40">SeaMonkey Support</a></li>' +
  '<li><a href="/viewforum.php?f=3">SeaMonkey General</a></li>' +
  '<li><a href="/viewforum.php?f=6">SeaMonkey Builds</a></li>' +
  '<li><a href="/viewforum.php?f=4">SeaMonkey Features</a></li>' +
  '<li><a href="/viewforum.php?f=5">SeaMonkey Bugs</a></li>' +
  '</ul>' +
  '</li>' +
  '<li><a href="/?c=5">Other Mozilla Discussion</a>' +
  '<ul>' +
  '<li><a href="/viewforum.php?f=12">Camino</a></li>' +
  '<li><a href="/viewforum.php?f=46">Calendar</a></li>' +
  '<li><a href="/viewforum.php?f=47">Minimo</a></li>' +
  '<li><a href="/viewforum.php?f=32">Miscellaneous Support</a></li>' +
  '<li><a href="/viewforum.php?f=34">Other Applications and Distributions</a></li>' +
  '<li><a href="/viewforum.php?f=44" style="display: none;">Mozilla Marketing</a></li>' +
  '</ul>' +
  '</li>' +
  '<li><a href="/?c=11">Extensions and Themes</a>' +
  '<ul>' +
  '<li><a href="/viewforum.php?f=48">Extension/Theme Releases</a></li>' +
  '<li><a href="/viewforum.php?f=19">Extension Development</a></li>' +
  '<li><a href="/viewforum.php?f=18">Theme Development</a></li>' +
  '</ul>' +
  '</li>' +
  '<li><a href="/?c=7">Development</a>' +
  '<ul>' +
  '<li><a href="/viewforum.php?f=27">Mozilla Development</a></li>' +
  '<li><a href="/viewforum.php?f=25">Web Development</a></li>' +
  '<li><a href="/viewforum.php?f=42">Unofficial Builds</a></li>' +
  '</ul>' +
  '</li>' +
  '<li><a href="/?c=2">MozillaZine</a>' +
  '<ul>' +
  '<li><a href="/viewforum.php?f=11">MozillaZine Site Discussion</a></li>' +
  '<li><a href="/viewforum.php?f=43">MozillaZine BackPage</a></li>' +
  '<li><a href="/viewforum.php?f=37">MozillaZine Tech</a></li>' +
  '<li><a href="/viewforum.php?f=22">MozillaZine AfterDark</a></li>' +
  '<li><a href="/viewforum.php?f=26">Locked Posts</a></li>' +
  '</ul>' +
  '</li>'
);

uLinks = (
  '<li><a href="/search.php?search_id=newposts">View new posts</a></li>' +
  '<li><a href="/search.php?search_id=egosearch">View your posts</a></li>' +
  '<li><a href="/search.php?search_id=unanswered">View unanswered posts</a></li>' +
  '<li><a href="/viewonline.php">View online users</a></li>'
);

mzf.addStyle(css)
mzf.addMenu(uLinks, 0);
mzf.addMenu(fLinks, 1);

