function findText(element, pattern, callback) {
	for (var childi= element.childNodes.length; childi-->0;) {
		var child= element.childNodes[childi];
		if (child.nodeType==1) {
			findText(child, pattern, callback);
		} else if (child.nodeType==3) {
			var matches= [];
			var match;
			while (match= pattern.exec(child.data))
				matches.push(match);
			for (var i= matches.length; i-->0;)
				callback.call(window, child, matches[i]);
		}
	}
}

findText(document.body, /\bAdoptionWorks\b/g, function(node, match) {
	var span= document.createElement('span');
	span.className= 'highlight';
	node.splitText(match.index+13);
	span.appendChild(node.splitText(match.index+8));
	node.parentNode.insertBefore(span, node.nextSibling);
});

findText(document.body, /\bCounselingWorks\b/g, function(node, match) {
	var span= document.createElement('span');
	span.className= 'highlight';
	node.splitText(match.index+15);
	span.appendChild(node.splitText(match.index+10));
	node.parentNode.insertBefore(span, node.nextSibling);
});

findText(document.body, /\bGriefWorks\b/g, function(node, match) {
	var span= document.createElement('span');
	span.className= 'highlight';
	node.splitText(match.index+10);
	span.appendChild(node.splitText(match.index+5));
	node.parentNode.insertBefore(span, node.nextSibling);
});

findText(document.body, /\bKidWorks\b/g, function(node, match) {
	var span= document.createElement('span');
	span.className= 'highlight';
	node.splitText(match.index+8);
	span.appendChild(node.splitText(match.index+3));
	node.parentNode.insertBefore(span, node.nextSibling);
});

findText(document.body, /\bChristianWorks\b/g, function(node, match) {
	var span= document.createElement('span');
	span.className= 'highlight';
	node.splitText(match.index+14);
	span.appendChild(node.splitText(match.index+9));
	node.parentNode.insertBefore(span, node.nextSibling);
});