// ==UserScript==
// @name          MozillaZine Forums [Beta] Menu
// @namespace     http://loucypher.wordpress.com/
// @include       http://boards-beta.mozillazine.org/*
// @description	  Adds menu for subforums when hover the mouse on Forum Links on sidebar for easy navigation
// ==/UserScript==
// Changelog:
// * 2007-07-05: boards-beta
// * 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: #cadceb;\n' +
  '  border: 1px solid #536482;\n' +
  '  -moz-border-radius: 5px;\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 ul ul {\n' +
  '  position: absolute;\n' +
  '  margin-top: -1.5em;\n' +
  '  margin-left: 0;\n' +
  '  width: 5em;\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="/viewforum.php?f=5">Firefox TESTING</a>' +
    '<ul>' +
      '<li><a href="/viewforum.php?f=6">Firefox Support</a></li>' +
      '<li><a href="/viewforum.php?f=7">Firefox General</a></li>' +
      '<li><a href="/viewforum.php?f=8">Firefox Bugs</a>' +
        '<ul>' +
          '<li><a href="/viewforum.php?f=9">2.0</a></li>' +
          '<li><a href="/viewforum.php?f=10">3.0</a></li>' +
        '</ul>' +
      '</li>' +
    '</ul>' +
  '</li>' +
  '<li><a href="viewforum.php?f=11">mozillaZine</a>' +
    '<ul>' +
      '<li><a href="/viewforum.php?f=12">mozillaZine AfterDark</a></li>' +
    '</ul>' +
  '</li>'
);

uLinks = (
  '<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="/search.php?search_id=newposts">View new posts</a></li>' +
  '<li><a href="/search.php?search_id=active_topics">Active topics</a></li>' +
  '<li><a href="/viewonline.php">View online users</a></li>'
);

mzf.addStyle(css)
mzf.addMenu(uLinks, 0);
mzf.addMenu(fLinks, 2);

