Greasy Fork is available in English.

Upup.us MCD 0

Adds an MCD:0 link to the charpane

// ==UserScript==
// @name           Upup.us MCD 0
// @namespace      http://kol.upup.us/scripts/
// @description    Adds an MCD:0 link to the charpane
// @include        http://*kingdomofloathing.com/charpane.php

// @version 0.0.1.20140812170324
// ==/UserScript==
if(unsafeWindow.top.canadian == undefined) {
	GM_xmlhttpRequest({
    method: 'GET',
    url: 'http://' + document.location.host + '/town.php',
    onload: function(details) {	    	
	  	var canadian = /canadia\.php/.test(details.responseText);
		  unsafeWindow.top.canadian = canadian;
		  if(canadian) addMCD();
		}
	});
}
else if(unsafeWindow.top.canadian) addMCD();
	
function addMCD() {
	var links = document.getElementsByTagName('a');
	if(links.length>2 && links[2].pathname != "/canadia.php" && (links.length<4 || links[3].pathname != "/canadia.php")){
		if(links[0].innerHTML.indexOf('<img') == 0) {
		//full mode
			df = document.createDocumentFragment();
			font = document.createElement('font');
			font.size = "2";
			font.innerHTML = '<a target="mainpane" href="canadia.php?place=machine">Mind Control</a>: <b>0</b>';
			df.appendChild(font);
			df.appendChild(document.createElement('br'));
			df.appendChild(document.createElement('br'));
			
			//links[2].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.previousSibling.parentNode.insertBefore(df,links[2].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.previousSibling);
			var center=getParent(links[2],'center');
			center.insertBefore(df,getParent(links[2],'font'));
			
			document.body.appendChild(df);
		} else {
			//compact mode
			tr = document.createElement('tr');
			td1 = document.createElement('td');
			td1.align = "right";
			td1.innerHTML = '<a target="mainpane" href="canadia.php?place=machine">MC</a>:';
			td2 = document.createElement('td');
			td2.innerHTML = "<b>0</b>";
			tr.appendChild(td1);
			tr.appendChild(td2);
			links[1].parentNode.parentNode.parentNode.appendChild(tr);
		}
	}
}

function getParent(el, pTagName) {
	if (el == null) {
		return null;
	} else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) {	// Gecko bug, supposed to be uppercase
		return el;
	} else {
		return getParent(el.parentNode, pTagName);
	}
}