OGame : Smilies

By Black Cat Last update Jun 22, 2009 — Installed 9,548 times. Daily Installs: 6, 10, 6, 7, 6, 11, 7, 7, 7, 2, 5, 10, 4, 11, 10, 9, 3, 11, 8, 3, 2, 5, 8, 4, 4, 4, 5, 7, 6, 2, 9, 1

There are 1 previous version of this script.

// ==UserScript==
// @name OGame : Smilies
// @namespace http://userscripts.org/users/36331
// @description OGame : Smilies in messages
// @date 2009-06-22
// @creator Black Cat
// @include http://uni*.ogame.*/game/index.php?page=messages*
// @include http://uni*.ogame.*/game/index.php?page=writemessages*
// @include http://uni*.ogame.*/game/index.php?page=allianzen*&a=17*
// @exclude
// ==/UserScript==

(function(){

	var smilies = new Array();
	smilies.push(new Array(":D","http://board.ogame.de/wcf/images/smilies/biggrin.gif"));
	smilies.push(new Array(":tongue:","http://board.ogame.de/wcf/images/smilies/tongue2.gif"));
	smilies.push(new Array(":evil:","http://board.ogame.de/wcf/images/smilies/evil.gif"));
	smilies.push(new Array(":baby:","http://board.ogame.de/wcf/images/smilies/baby.gif"));
	smilies.push(new Array(":rolleyes:","http://board.ogame.de/wcf/images/smilies/rolleyes.gif"));
	smilies.push(new Array(";)","http://board.ogame.de/wcf/images/smilies/wink.gif"));
	smilies.push(new Array(":P","http://board.ogame.de/wcf/images/smilies/tongue.gif"));
	smilies.push(new Array(":)","http://board.ogame.de/wcf/images/smilies/smile.gif"));
	smilies.push(new Array("X(","http://board.ogame.de/wcf/images/smilies/mad.gif"));
	smilies.push(new Array("=)","http://board.ogame.de/wcf/images/smilies/happy.gif"));
	smilies.push(new Array(":O","http://board.ogame.de/wcf/images/smilies/redface.gif"));
	smilies.push(new Array("?(","http://board.ogame.de/wcf/images/smilies/confused.gif"));
	smilies.push(new Array("8-)","http://board.ogame.de/wcf/images/smilies/cool.gif"));
	smilies.push(new Array(";(","http://board.ogame.de/wcf/images/smilies/crying.gif"));
	smilies.push(new Array("8o","http://board.ogame.de/wcf/images/smilies/eek.gif"));
	smilies.push(new Array(":]","http://board.ogame.de/wcf/images/smilies/pleased.gif"));
	smilies.push(new Array(":(","http://board.ogame.de/wcf/images/smilies/frown.gif"));
	smilies.push(new Array(":supa:","http://board.ogame.de/wcf/images/smilies/applaus.gif"));
	smilies.push(new Array(":ra:","http://board.ogame.de/wcf/images/smilies/rauch08.gif"));

	if (document.location.href.indexOf('=messages') != -1) {
		function sort_smilies(a,b) { return b[0].length-a[0].length; }
		smilies.sort(sort_smilies);
		var rows = document.getElementById("content").getElementsByTagName("table")[1].getElementsByTagName("tbody")[0].childNodes;
		for (var i = 0; i < smilies.length; i++) {
			var smiley = smilies[i][0];
			smiley = smiley.replace(/\\/g,"\\\\");
			smiley = smiley.replace(/\[/g,"\\\[").replace(/\]/g,"\\\]");
			smiley = smiley.replace(/\(/g,"\\\(").replace(/\)/g,"\\\)");
			smiley = smiley.replace(/\{/g,"\\\{").replace(/\}/g,"\\\}");
			smiley = smiley.replace(/\./g,"\\\.").replace(/\+/g,"\\\+").replace(/\*/g,"\\\*").replace(/\?/g,"\\\?");
			smiley = smiley.replace(/\^/g,"\\\^").replace(/\$/g,"\\\$").replace(/\|/g,"\\\|").replace(/\-/g,"\\\-");
			var expression = new RegExp("(^|[^\"'=])"+smiley+"([^\"']|$)","gi");
			for (var j = 0; j < rows.length; j++) {
				var row = rows.item(j);
				if (row.nodeName.toLowerCase() == "tr") {
					var cell = row.getElementsByTagName("td")[1];
					if (cell && row.getElementsByTagName("table").length==0) { // Replace twice
						cell.innerHTML = cell.innerHTML.replace(expression,"$1<img src='"+smilies[i][1]+"' alt='"+smilies[i][0]+"' border='0' />$2");
						cell.innerHTML = cell.innerHTML.replace(expression,"$1<img src='"+smilies[i][1]+"' alt='"+smilies[i][0]+"' border='0' />$2");
					}
				}
			}
		}
	} else {
		var script = document.createElement('script');
		script.setAttribute("type","text/javascript");
		script.setAttribute("language","javascript");
		script.text = 
		'function addSmiley(smiley) {' +
			'var message = document.getElementsByName("text")[0];' +
			'var str = " " + smiley;' +
			'message.focus();' +
			'if (message.isTextEdit) {' +
				'var sel = document.selection;' +
				'var rng = sel.createRange();' +
				'rng.text = str;' +
				'rng.collapse(false);' +
				'rng.select();' +
			'} else {' +
				'var start = message.selectionStart;' +
				'var starttext = message.value.substring(0,start);' +
				'var endtext = message.value.substring(message.selectionEnd,message.textLength);' +
				'message.value = starttext + str + endtext;' +
				'start += str.length;' +
				'message.selectionStart = start;' +
				'message.selectionEnd = start;' +
			'}' +
			'message.focus();' +
		'}';
		var form = document.getElementsByTagName('form')[0];
		form.parentNode.insertBefore(script,form);
		var cell = document.getElementById("cntChars").parentNode;
		var div = document.createElement("div");
		for (var i = 0; i < smilies.length; i++) {
			div.innerHTML += "<a href=\"javascript:addSmiley('"+smilies[i][0]+"')\"><img src='"+smilies[i][1]+"' alt='"+smilies[i][0]+"' border='0' /></a> ";
		}
		cell.style.width = "150px";
		div.setAttribute("align","center");
		div.style.width = "99%";
		div.style.height = "100px";
		div.style.overflow = "auto";
		cell.appendChild(document.createElement("br"));
		cell.appendChild(document.createElement("br"));
		cell.appendChild(div);
	}
})();