JvEasySmiley

By Megaman Last update Dec 4, 2008 — Installed 166 times.

There are 3 previous versions of this script.

// ==UserScript==
// @name           JvEasySmiley
// @namespace       
// @description    Facilite l'utilisation des smileys lors de la rédaction d'un post
// @include        http://www.jeuxvideo.com/forums/3-*
// ==/UserScript==

function extraire(content) {
   temp = content.toLowerCase();
   var x = temp.indexOf("<table");
   var y = temp.lastIndexOf("</table>") + 8;
   return content.slice(x, y);   
}

function creer(i) {

	var debutCode = "oField = document.getElementById(\"newmessage\");";
	debutCode += "contenu = oField.value.toString();";
	debutCode += "text = \"\";";
	debutCode += "if ((contenu.length == 0) || (contenu.match(\"Ne postez pas d'insultes, évitez les majuscules, faites une recherche avant de poster pour voir si la question n'a pas déjà été posée...\")))";
	debutCode += "{text = '";
	var suiteCode = "' + ' ';}";
	suiteCode += "else";
	suiteCode += "{deb = oField.selectionStart;";
	suiteCode += "objectValueDeb = contenu.substring( 0 , deb );";
	suiteCode += "objectValueFin = contenu.substring(deb , oField.textLength );";
	suiteCode += "text = objectValueDeb + ' ' + '";
	var finCode = "' + ' ' + objectValueFin;}";
	finCode += "document.getElementById(\"newmessage\").value = text;window.close();oField.focus();";
	var td = document.getElementById("displayed_easysmiley").getElementsByTagName("td");
	var img = td[i].getElementsByTagName("a")[0];
	img.href = "javascript: " + debutCode + td[i + 1].innerHTML + suiteCode + td[i + 1].innerHTML + finCode + ";";
	return td[i].innerHTML;
}

function main () {

	req = new XMLHttpRequest();
	req.open("GET", "http://www.jeuxvideo.com/smileys/legende.htm", false);
	req.send(null);
	
	var smileys = "<div id='displayed_easysmiley' style='position: absolute; left: 655px; display: none; z-index: 1; padding-top: 0px;'>" + extraire(req.responseText) + "</div>";
	var code = document.getElementById("col1");
	var icone = "<a style='cursor: pointer;' onclick='javascript: if (document.getElementById(\"displayed_easysmiley\").style.display == \"none\") document.getElementById(\"displayed_easysmiley\").style.display = \"block\"; else document.getElementById(\"displayed_easysmiley\").style.display = \"none\";'><img src='http://image.jeuxvideo.com/smileys/11.gif'></a>";
	var liste = "<table cellpadding=0 cellspacing=0 style='text-align: center; width: 300px; height: 340px; padding: 10px; padding-left: 22px; background: url(\"http://www.noelshack.com/uploads/fond047017.png\") no-repeat;'><tr><td><table style='width: 100%;'><tr>";
	var a = 0;
	
	code.innerHTML = code.innerHTML.replace(/(<label for="newmessage">\* Message : <\/label>)/g, "<table style='width: 100%;'><tr><td>$1</td><td align=right>" + icone + "</td></tr></table>");
	code.innerHTML = code.innerHTML.replace(/(<a name="form_post"><\/a>)/g, smileys + "$1");
	
	for (var i = 0; i < 107; i += 2) {
		if (i != 46 && i != 52 && i != 62 && i != 94 && i != 100 && i != 102 && i != 104) {
			a++;
			liste += "<td>" + creer(i) + "</td>";
			if (a == 12) {liste += "</tr><tr>"; a = 0;}
		}
	}
	liste += "<td>" + creer(140) + "</td></tr></table>";
	liste += "<table style='width: 100%;'><tr><td>" + creer(46) + "</td><td>" + creer(52) + "</td><td>";
	liste += creer(94) + "</td><td>" + creer(100) + "</td><td>";
	liste += creer(102) + "</td><td>" + creer(62) + "</td><td>";
	liste += creer(104) + "</td><td>" + creer(138) + "</td></tr></table>";
	liste += "<table style='width: 100%;'><tr><td>";
	liste += creer(110) + "</td><td>" + creer(116) + "</td><td>";
	liste += creer(120) + "</td><td>" + creer(136) + "</td></tr><tr><td>";
	liste += creer(130) + "</td><td>" + creer(132) + "</td><td>";
	liste += creer(108) + "</td><td>" + creer(112) + "</td></tr><tr><td>";
	liste += creer(114) + "</td><td>" + creer(118) + "</td><td>";
	liste += creer(122) + "</td><td>" + creer(124) + "</td></tr></table><table style='width: 100%;'><tr><td>";
	liste += creer(126) + "</td><td>" + creer(128) + "</td><td>";
	liste += creer(134) + "</td></tr></table></td></tr></table>";
	
	document.getElementById("displayed_easysmiley").innerHTML = liste;
}

main();