Travianstats2phpBB

By tamiflu Last update Jun 14, 2008 — Installed 2,408 times.
// ==UserScript==
// @name Travianstats2phpBB
// @author tamiflu
// @description Adds a little Image link next to phpBB Usernames to a Travian-Statistics Website
// @version 1.2
// @include http://*.foren-city.*
// @include http://*.iphpbb3.com*
// @include http//*.siteboard.de*
// ==/UserScript==

var foo = GM_getValue(window.location.hostname, -1);
if ((foo == -1) || (foo == "")) {
	bar = prompt("Please enter travian world for " + window.location.hostname,"");
	if ((bar != "") && (bar != undefined)) {
		GM_setValue(window.location.hostname,bar);
		var welt = bar;
	} else {
		alert("Your input wasn't correct. This script will not work!");
		var welt = "";
	}
} else {
	var welt = foo;
}
document.getElementsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}
var tamiWeltContent = "<div id='tamiLightBoxBg' style='position:fixed; top:0px; left:0px; display:none; -moz-opacity:0.5; opacity:0.5; z-index:0; width:100%; height:100%; background-color:#666;'></div>";
var tamiWorldChanger = document.createElement("a");
tamiWorldChanger.id = "changeWorld";
tamiWorldChanger.href= "javascript:void(0)";
tamiWorldChanger.innerHTML = "Change Travian World" + tamiWeltContent;

if (document.getElementsByClassName("copyright").length > 0) {
	var copyrightCounter = document.getElementsByClassName("copyright").length -1;
	document.getElementsByClassName("copyright")[copyrightCounter].parentNode.appendChild(tamiWorldChanger);
} else if (document.getElementById("wrapfooter").innerHTML != "") {
	document.getElementById("wrapfooter").appendChild(tamiWorldChanger);
}
document.getElementById("changeWorld").addEventListener("click", editWorld, true);

function editWorld (baz) {
	bar = prompt("Please enter travian world for " + window.location.hostname,welt);
	if ((bar != "") && (bar != undefined)) {
	GM_setValue(window.location.hostname,bar);
	return true;
	} else {
		GM_setValue(window.location.hostname,"");
	return false;	
	}
}

var travUrl = "http://travian.ping-timeout.de/";
var img = "R0lGODlhDQAJALMPAPX19WKAn+3t7aKyw5SktcLM1snS3LvEzrbC0FNzlOjo6Pz8/OPj4////0Zmhwz/ACH5BAEAAA8ALAAAAAANAAkAAAQ28D3kqnVISjea94OjPc5iBoYpag5gGAEKrBuQ3HdBk8JxVAfBzqEoYowjB4HBZBJ2lEsl84gAADs%3D";
function check () {
	var bTag = document.getElementsByTagName("b");
	var spanTag = document.getElementsByTagName("span");
	var divTag = document.getElementsByTagName("div");
	var pTag = document.getElementsByTagName("p");
	writeAll(bTag);
	writeAll(spanTag);
	writeAll(divTag);
	writeAll(pTag);
}
function writeAll(tag) {
		for (i in tag) {
		if ((tag[i].innerHTML) && ((tag[i].className == "author") || (tag[i].className == "postauthor") || (tag[i].className == "name"))) {
			
			if (tag[i].getElementsByTagName("strong").length > 0) {
					var plainName = removeHTMLTags(tag[i].getElementsByTagName("strong")[0].innerHTML);
					var Statslink = writeLink(plainName,i);
					var old = tag[i].getElementsByTagName("strong")[0].innerHTML;
					tag[i].getElementsByTagName("strong")[0].innerHTML = "<span name='TravianName'>" + old + "</span> " + writeLink(plainName,i);
				}
				
				
			 else {
			var Statlink = writeLink(tag[i].innerHTML.replace(/<.*?>/gi, ''),i);
			var old = tag[i].innerHTML;
			tag[i].innerHTML = "<span name='TravianName'>" + old + "</span> " + Statlink;
			}
		}
	}
}
function writeLink(nick,i) {
	var statistik = "<a href='"+ travUrl + "index.php?m=spielersuche&s=" + nick + "&w=" + welt + "' target='_self' id='travAvatar' name='travAvatar' style='z-index:5; position:relative;'>"
					+ "<img src='data:image/gif;base64," + img + "' alt='statistik anzeigen' style='border:none; z-index:5;' onmouseover='this.nextSibling.style.display = \"block\"; document.getElementById(\"tamiLightBoxBg\").style.display=\"block\"' onmouseout='this.nextSibling.style.display = \"none\"; document.getElementById(\"tamiLightBoxBg\").style.display=\"none\"'>" + writeAvatar(nick,i) + "</a>";
	return statistik;
}
function writeAvatar(nick,i) {
	var avatarImg = "<div style='position:absolute; display:none;' id='TravTamiflu"+i+"' name='TravTamiflu'><img src='" + travUrl + "phpbb3/" + welt + "/" + nick + ".gif' alt=''></div>";
	return avatarImg;
}
function removeHTMLTags(htmlcode){
		return htmlcode.replace(/<\/?[^>]+(>|$)/g, "");
}
check();