/*
FontJazz 1.4
http://www.fontjazz.com
(C) Copyright Rasmus Schultz, all rights reserved.
Free for use on all private/commercial websites. You may not
sell this script or FontJazz-generated fonts. Removing this
copyright statement is a violation of the licensing terms.
*/
var FontJazz = {
_fonts: {},
_initialized: false,
_css: null,
_initialize: function() {
for (var fontname in FontJazz._fonts) {
if (!FontJazz._fonts[fontname].initialized) {
var image = FontJazz._fonts[fontname].image;
var height = FontJazz._fonts[fontname].height;
FontJazz._addRule(
".FontJazz-" + fontname + " div",
"float:left; display:inline; overflow:visible;"
);
FontJazz._addRule(
".FontJazz-" + fontname + " span",
"display:block; float:left; background-image:url(" + image + "); height:" + height + "px;"
);
FontJazz._addRule(
".FontJazz-" + fontname + " br",
"clear:both;"
);
FontJazz._fonts[fontname].initialized = true;
}
}
},
_addRule: function(selector, rule) {
if (!FontJazz._css) {
if (document.createStyleSheet) {
FontJazz._css = document.createStyleSheet();
} else {
FontJazz._css = document.createElement('style');
FontJazz._css.setAttribute('type', 'text/css');
document.getElementsByTagName("head")[0].appendChild(FontJazz._css);
}
}
if (FontJazz._css.addRule) {
FontJazz._css.addRule(selector, rule);
} else {
FontJazz._css.appendChild( document.createTextNode(selector + ' { ' + rule + " }\n") );
}
},
register: function(fontname, data) {
FontJazz._fonts[fontname] = data;
FontJazz.initialized = false;
},
decode: function(html) {
var div = document.createElement('div');
div.style.display = 'none';
div.innerHTML = '';
document.body.appendChild(div);
var area = document.getElementById('fontjazz_decode');
var text = area.value;
document.body.removeChild(div);
return text;
},
transform: function(element, fontname) {
if (!document.styleSheets) return;
if (!FontJazz.initialized) FontJazz._initialize();
var font = FontJazz._fonts[fontname];
var text = FontJazz.decode(element.innerHTML.replace(/(<([^>]+)>)/ig,"")) + ' ';
var div = document.createElement('div');
div.className = "FontJazz-" + fontname;
var html = '' + text + '';
var adjust = font[text.charAt(0)][2];
var word = '', w = 0, wm = 0;
for (var i=0; i';
if (c == ' ') {
html += '' + word + '
';
word = ''; w = 0; wm = 0;
}
adjust = metrics[3]-metrics[1];
}
}
div.innerHTML = html + "
";
element.parentNode.insertBefore(div, element);
element.parentNode.removeChild(element);
},
apply: function(tagname, fontname, rootnode) {
var collection = (rootnode || document.body).getElementsByTagName(tagname);
var elements = new Array();
for (var i=0; i