DS Dörferanzahl in Spielerinfo

By C1B1 Last update Jan 17, 2009 — Installed 1,847 times.
// ==UserScript==
// @name          DS Dörferanzahl in Spielerinfo
// @namespace     c1b1.de
// @include       http://de*.die-staemme.de/game.php*screen=info_player*
// ==/UserScript==

// ds.countVillagesPlayerInfo.user.js

// Version 1.0

// (c) C1B1SE / c1b1.de

var elist = findByInner(document,'Koordinaten')[0].parentNode.parentNode.getElementsByTagName('tr');
var villages = elist.length - 1;
elist[0].getElementsByTagName('th')[0].firstChild.appendData(' ('+villages+')');
for(var i = 1, len = elist.length, sum = 0; len > i; sum += parseInt(grabText(elist[i++].getElementsByTagName('td')[2],1)));
elist[0].getElementsByTagName('th')[2].setAttribute('title','Schnitt: '+Math.round(sum/villages,3));

function findByInner(obj,value)
    {
    var len = obj.getElementsByTagName('*').length;
    var list = new Object();
    var  a = 0;
    for(var i = 0; i < len; i++)
      {
      if(obj.getElementsByTagName('*')[i].firstChild)
        {
        if(obj.getElementsByTagName('*')[i].firstChild.data)
          {
          if(obj.getElementsByTagName('*')[i].firstChild.data.indexOf(value) != -1)
            {
            list[a] = obj.getElementsByTagName('*')[i];
            a++;
            }
          }
        }
      }
    list['length'] = a;
    return list;
    }

function grabText(node,maxDepth)
    {
    if(3 == node.nodeType)
      return node.nodeValue;
    else if((1 == node.nodeType) && (0 < maxDepth))
      {
      var result = '';
      for(var i = 0; i < node.childNodes.length; i++)
        {
        result += grabText(node.childNodes[i],maxDepth - 1);
        }
      return result;
      }
    return '';
    }