var dtr = {
_url: 'dtr/[font]/[size]/-1/-1/[color]/[bcolor]/[text].fx',
_enableTransparency: true,
_forceHeight: true,
_forceWidth: false,
replace: function(tag, className, font) {
this.replaceIn(document, tag, className, font);},
replaceIn: function(root, tag, className, font) {
var elements = this.getElementsByClassName(root, tag, className);
this.replaceElements(elements, font);},
replaceElements: function(elements, font) {
for (var i = 0; i < elements.length; i++) {
var el = elements[i];
if (el.firstChild.nodeType != 3)
continue;
var text = el.firstChild.nodeValue;
var color = this.getStyle(el, 'color');
var bcolor = this.getStyle(el, 'backgroundColor');
var height = this.getStyle(el, 'height');
var width = this.getStyle(el, 'width');
var size = this.getStyle(el, 'fontSize');
if (color.indexOf('rgb') !=-1)
color = this.cssRgb2Hex(color);
if (bcolor == 'transparent' && !this._enableTransparency)
bcolor = '';
if (bcolor.indexOf('rgb') !=-1)
bcolor = this.cssRgb2Hex(bcolor);
color = color.replace('#', '');
bcolor = bcolor.replace('#', '');
size = size.replace('px', '');
if (size.indexOf('em') !=-1) {
size = size.replace('em', '');
size = size * 12;}
var url = this._url.replace('[text]', text).replace('[font]', font).replace('[bcolor]', bcolor).replace('[color]', color).replace('[size]', size);
if (this._forceWidth)
url = url.replace('[width]', width);
if (this._forceHeight)
url = url.replace('[height]', height);
var img = new Image();
img.target = el;
img.loadHandler = function() {
this.target.replaceChild(this, this.target.firstChild);};
img.onload = img.loadHandler;
img.src = url;
img.alt = text;
el.replaceChild(img, el.firstChild);}},
getStyle: function(el, prop) {
if (document.defaultView && document.defaultView.getComputedStyle) {
return document.defaultView.getComputedStyle(el, null)[prop];} else if (el.currentStyle) {
return el.currentStyle[prop];} else {
return el.style[prop];}},
cssRgb2Hex: function(color) {
var c = color.replace('rgb(', '').replace(')', '').split(',');
return this.rbg2hex(parseInt(c[0]), parseInt(c[1]), parseInt(c[2]));},
rbg2hex: function(red, green, blue) {
var r = red.toString(16);
var g = green.toString(16);
var b = blue.toString(16);
var c =((r.toString().length == 1) ? '0' : '')+r+((g.toString().length == 1) ? '0' : '')+g+((b.toString().length == 1) ? '0' : '')+b;
return c;},
getElementsByClassName: function(oElm, strTagName, strClassName) {
var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)"+strClassName+"(\\s|$)");
var oElement;
for (var i = 0; i < arrElements.length; i++) {
oElement = arrElements[i];
if (oRegExp.test(oElement.className)) {
arrReturnElements.push(oElement);}}
return (arrReturnElements)}};
