var observer;
(function() {
observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
for(var i = 0 ; i < mutation.addedNodes.length ; ++i) {
var next = mutation.addedNodes.item(i);
if(next) {
var nodes = getNodes(next);
for(var node in nodes) {
injectEmote(nodes[node]);
}
}
}
});
});
observer.observe(document, {childList: true, subtree: true});
})();
function getNodes(node) {
var next;
var nodes = [];
var treeWalker = document.createTreeWalker(node, NodeFilter.SHOW_TEXT, null, false);
while(next = treeWalker.nextNode()) {
nodes.push(next);
}
return nodes;
}
function injectEmote(node) {
if(typeof emotesTwitch === 'undefined') return;
if(!node.parentElement) return;
var parent = node.parentElement;
if(parent.tagName != "SPAN") return;
var parentInnerHTML = parent.innerHTML;
var words = parentInnerHTML.split(" ");
if(!words) return;
words.some(function(word) {
if (emotesTwitch.hasOwnProperty(word)) {
parentInnerHTML = parentInnerHTML.replace(word, "<\/img>");
} else if(typeof emotesFfz !== 'undefined') {
if(emotesFfz.hasOwnProperty(word)) {
parentInnerHTML = parentInnerHTML.replace(word, "<\/img>");
}
}
});
parent.innerHTML = parentInnerHTML;
}