/********************************/
/* Wahre Benutzernamen anzeigen */
/********************************/

// Fügt Benutzernamen in Links auf Benutzerseiten ein
//
// Einbinden mit includeJS aus meiner standard.js:
// includeJS(']');
//
// Beim Einbinden mittels anderer Methoden bitte obigen Wikilink
// explizit angeben (z.B. in einem Kommentar)

/* Hilfsfunktion: Dekodieren von UTF8 */

function decode_utf8(text)
{
  decoded = '';
  var tail = 0;
  var codepoint;
  for (var i = 0; i < text.length; ++i)
  {
    var charcode = text.charCodeAt(i);
    if (tail != 0)
    {
      codepoint = (codepoint << 6) + (charcode & 0x3f);
      --tail;
      if (tail == 0)
        decoded += String.fromCharCode(codepoint);
    }
    else
    {
      if (charcode < 0x80)
        decoded += String.fromCharCode(charcode);
      else
      {
        var tail = 1; // number of following 10xxxxxx values
        while ((charcode & (0x40 >> tail)) != 0)
          ++tail;
        codepoint = charcode & ((0x80 >> tail) - 1)
      }
    }
  }
  return decoded
}

function showusers()
{
  /* Benutzernamen aus Hyperlink extrahieren */
  function getusername(a)
  {
    if (!a.href)
      return null;

    if (a.host != "de.wikipedia.org")
      return null;

    var parts = /\/Benutzer:(*)(#.*)?$/.exec(a.href)
    if (!parts)
      return null;

    return decode_utf8(unescape(parts)).replace(/_/g,' ');
  }

  var links = document.links
  for (i = 0; i < links.length; ++i)
  {
    var username =getusername(links);
    var text = links.text
    text = text.substr(0,1).toUpperCase()+text.substr(1)
      
    if (username && username != text && "Benutzer:"+username != text)
    {
      var newtext = document.createTextNode(" (" + username + ")")
      var span = document.createElement("span")
      span.setAttribute("class", "loginname")
      span.appendChild(newtext)
      links.appendChild(span)
    }
  }
}

$(showusers)