// ==UserScript==
// @name Symbol Font to Greek Entities
// @author Jefferson "jscher2000" Scher
// @namespace JeffersonScher
// @description Replace symbol font tags with Greek HTML entities (2015-11-05)
// @version 0.2
// @include http://www.wildwinds.com/coins/greece/*
// @copyright Copyright 2015 Jefferson Scher
// @license BSD 3-clause
// @grant none
// ==/UserScript==
// CHARACTERS NOT FOUND IN THE OBJECT REMAIN UNCHANGED IN THE CONVERTED STRING
var ge = {
"A": "Α",
"B": "Β",
"G": "Γ",
"D": "Δ",
"E": "Ε",
"Z": "Ζ",
"H": "Η",
"Q": "Θ",
"I": "Ι",
"K": "Κ",
"L": "Λ",
"M": "Μ",
"N": "Ν",
"X": "Ξ",
"O": "Ο",
"P": "Π",
"R": "Ρ",
"S": "Σ",
"T": "Τ",
"U": "Υ",
"F": "Φ",
"C": "Χ",
"Y": "Ψ",
"W": "Ω",
"a": "α",
"b": "β",
"g": "γ",
"d": "δ",
"e": "ε",
"z": "ζ",
"h": "η",
"q": "θ",
"i": "ι",
"k": "κ",
"l": "λ",
"m": "μ",
"n": "ν",
"x": "ξ",
"o": "ο",
"p": "π",
"r": "ρ",
"V": "ς",
"s": "σ",
"t": "τ",
"u": "υ",
"f": "φ",
"c": "χ",
"y": "ψ",
"w": "ω",
"J": "ϑ",
"j": "ϕ",
"v": "ϖ"
}
// define a new tag for the greek entity string, insert style rules
var getag = document.createElement("sftgetag");
var sty = document.createElement("style");
sty.type = "text/css";
sty.appendChild(document.createTextNode("font[SFTGE]{display:none;} sftgetag{display:inline;} sftgetag:hover{background:#cff;}"));
document.body.appendChild(sty);
// Read symbol font tags and built greek entity tags to replace them
var gf = document.querySelectorAll('font[face="SYMBOL"],font[face="symbol"]');
for (var i=0; i<gf.length;i++){
if (!gf[i].hasAttribute("SFTGE")){
var txt = gf[i].textContent, txtnew = "";
for (var j=0; j<txt.length; j++){
txtnew += ge[txt.substr(j,1)] || txt.substr(j,1);
}
var txttag = getag.cloneNode(true);
txttag.innerHTML = txtnew;
txttag.setAttribute("title", txt);
gf[i].parentNode.insertBefore(txttag, gf[i]);
gf[i].setAttribute("SFTGE", "done");
}
}