/* CatGraph für Alle
 *
 * Dieses Benutzerskript fügt auf Kategorie-Seiten zwei zusätzliche Links neben dem "Bearbeiten" Link ein,
 * mit denen man die Ober- und Unterkategorien mittels CatGraph visualisieren kann.
 * Um es verwenden zu können muss man dieses Script in das eigene Benutzerskript kopieren
 * (Vielleicht geht auch eine Weiterleitung?)
 *    Benutzer:DEIN_BENUTZER_NAME/monobook.js
 *
 *
 * Based on Duesentrieb's, Dbenbenn's and Essjay's monobook.js code.
 @author: Duesentrieb, ], Dbenbenn, ], Essjay ], ABCD ], JesseW ], ]
 @license: Dual licensed under the GFDL and GPL
 */

// Returns <li><a href="url">name</a></li>
function addlilink(url, name)
{
  var na = document.createElement('a');
  na.setAttribute('href', url);
 
  var txt = document.createTextNode(name);
  na.appendChild(txt);
 
  var li = document.createElement('li');
  li.appendChild(na);
  return li;
}
 
// Gets the URL version of the page title.
function get_tidy_title()
{
  var editlk = document.getElementById('ca-edit').getElementsByTagName('a').href;
  // cut everything up to "title=" from the start and everything past "&action=edit" from the end
  editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit'));
 
  return editlk;
}

// Adds "catgraph" tabs to pages.
function add_category_tab()
{
  var c1 = document.getElementById('column-one');
  if(!c1) return;
  var tabs = c1.getElementsByTagName('div').getElementsByTagName('ul');
 
  // use the "edit this page" tab to get already-tidied url
  var editlk = get_tidy_title();
  var editlko = get_tidy_title();
 
  editlk = editlk.substring(editlk.indexOf(':') + 1);
  var slloc = editlk.indexOf('/');
  if (slloc > 0)
    editlk = editlk.substring(0, slloc);
 
  // add "Obergraph" tab
  // 
  tabs.appendChild(addlilink('http://tools.wikimedia.de/~dapete/catgraph/graph.php?wiki=dewiki&cat=' + editlk + '&format=svg&links=wiki', 'Obergraph'));

  // add "untergraph" tab
  // &nbsp; 
  tabs.appendChild(addlilink('http://tools.wikimedia.de/~dapete/catgraph/graph.php?wiki=dewiki&cat=' + editlk + '&format=svg&links=wiki&sub=1', 'Untergraph'));

}

// Add links on load
function do_onload()
{
  var title = get_tidy_title();
  if (document.title.indexOf('Category:') == 0
      || document.title.indexOf('Kategorie:') == 0)
  {
    add_category_tab();
  }
}

// Hock on load function
if (window.addEventListener) 
  window.addEventListener("load", do_onload, false);
else if (window.attachEvent) 
  window.attachEvent("onload", do_onload);