/*

FontJazz 1.2

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;
	},
	
	transform: function(element, fontname) {
		
		if (!document.styleSheets) return;
		
		if (!FontJazz.initialized) FontJazz._initialize();
		
		var font = FontJazz._fonts[fontname];
		var text = element.firstChild.nodeValue + ' ';
		
		var div = document.createElement('div');
		div.className = "FontJazz-" + fontname;
		
		var html = '<span style="overflow:hidden; width:0px;">' + text + '</span>';
		var adjust = font[text.charAt(0)][2];
		
    var word = '', w = 0, wm = 0;
		for (var i=0; i<text.length; i++) {
			var c = text.charAt(i), metrics = font[c];
			if (metrics) {
        w += metrics[1]+(adjust-metrics[2]);
        if (word == '') wm = adjust-metrics[2];
        word += '<span style="' + (word == '' ? '' : 'margin-left: ' + (adjust-metrics[2]) + 'px;') + 'background-position: -' + metrics[0] + 'px 0px; width: ' + metrics[1] + 'px;"></span>';
        if (c == ' ') {
          html += '<div style="margin-left:' + wm + 'px; width:' + (w-wm) + 'px;">' + word + '</div>';
          word = ''; w = 0; wm = 0;
        }
        adjust = metrics[3]-metrics[1];
			}
		}
		
		div.innerHTML = html + "<br />";
		
		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<collection.length; i++)
			elements[i] = collection[i];
		
		for (var i=0; i<elements.length; i++)
			FontJazz.transform(elements[i], fontname);
		
	}
	
}

FontJazz.register('orange', {
	image: './java/orange.png',
	width: 2386,
	height: 71,
	'A': [0, 30, 1, 28],
	'B': [33, 41, 1, 39],
	'C': [79, 45, 1, 44],
	'D': [125, 38, 1, 37],
	'E': [164, 36, 1, 35],
	'F': [201, 27, 1, 26],
	'G': [229, 45, 1, 44],
	'H': [275, 28, 1, 27],
	'I': [304, 31, 1, 27],
	'J': [336, 33, 1, 31],
	'K': [370, 37, 1, 33],
	'L': [418, 39, 1, 45],
	'M': [457, 44, 1, 43],
	'N': [502, 36, 1, 39],
	'O': [539, 47, 1, 46],
	'P': [587, 36, 1, 34],
	'Q': [624, 43, 1, 41],
	'R': [668, 38, 1, 36],
	'S': [708, 40, 1, 38],
	'T': [765, 38, 1, 36],
	'U': [804, 33, 1, 30],
	'V': [838, 30, 1, 30],
	'W': [869, 44, 1, 42],
	'X': [914, 34, 1, 28],
	'Y': [949, 25, 1, 23],
	'Z': [975, 44, 1, 43],
	'a': [1020, 35, 1, 32],
	'b': [1056, 38, 1, 34],
	'c': [1095, 38, 1, 33],
	'd': [1134, 44, 1, 35],
	'e': [1179, 39, 1, 34],
	'f': [1220, 29, 1, 27],
	'g': [1250, 37, 1, 29],
	'h': [1288, 29, 1, 25],
	'i': [1318, 14, 1, 14],
	'j': [1333, 26, 1, 25],
	'k': [1360, 37, 1, 32],
	'l': [1398, 15, 1, 15],
	'm': [1414, 39, 1, 36],
	'n': [1454, 29, 1, 28],
	'o': [1484, 29, 1, 28],
	'p': [1514, 26, 1, 25],
	'q': [1541, 35, 1, 27],
	'r': [1577, 25, 1, 24],
	's': [1607, 36, 1, 38],
	't': [1645, 31, 1, 29],
	'u': [1675, 25, 1, 22],
	'v': [1701, 27, 1, 26],
	'w': [1729, 38, 1, 35],
	'x': [1768, 25, 1, 24],
	'y': [1794, 35, 1, 34],
	'z': [1830, 38, 1, 33],
	'0': [1869, 40, 1, 39],
	'1': [1910, 21, 1, 19],
	'2': [1932, 36, 1, 32],
	'3': [1969, 35, 1, 32],
	'4': [2005, 26, 1, 25],
	'5': [2032, 53, 1, 51],
	'6': [2086, 39, 1, 39],
	'7': [2126, 32, 1, 29],
	'8': [2159, 36, 1, 36],
	'9': [2196, 31, 1, 27],
	'&': [2228, 26, 1, 23],
	'!': [2255, 15, 1, 15],
	'?': [2271, 29, 1, 22],
	'-': [2301, 21, 1, 20],
	' ': [2323, 14, 1, 12],
	'.': [2338, 18, 1, 13],
	'\"': [2357, 16, 1, 15],
	'\'': [2374, 11, 1, 9]
});

FontJazz.register('grey', {
	image: './java/grey.png',
	width: 2386,
	height: 71,
	'A': [0, 30, 1, 28],
	'B': [33, 41, 1, 39],
	'C': [79, 45, 1, 44],
	'D': [125, 38, 1, 37],
	'E': [164, 36, 1, 35],
	'F': [201, 27, 1, 26],
	'G': [229, 45, 1, 44],
	'H': [275, 28, 1, 27],
	'I': [304, 31, 1, 27],
	'J': [336, 33, 1, 31],
	'K': [370, 37, 1, 33],
	'L': [418, 39, 1, 45],
	'M': [457, 44, 1, 43],
	'N': [502, 36, 1, 39],
	'O': [539, 47, 1, 46],
	'P': [587, 36, 1, 34],
	'Q': [624, 43, 1, 41],
	'R': [668, 38, 1, 36],
	'S': [708, 40, 1, 38],
	'T': [765, 38, 1, 36],
	'U': [804, 33, 1, 30],
	'V': [838, 30, 1, 30],
	'W': [869, 44, 1, 42],
	'X': [914, 34, 1, 28],
	'Y': [949, 25, 1, 23],
	'Z': [975, 44, 1, 43],
	'a': [1020, 35, 1, 32],
	'b': [1056, 38, 1, 34],
	'c': [1095, 38, 1, 33],
	'd': [1134, 44, 1, 35],
	'e': [1179, 39, 1, 34],
	'f': [1220, 29, 1, 27],
	'g': [1250, 37, 1, 29],
	'h': [1288, 29, 1, 25],
	'i': [1318, 14, 1, 14],
	'j': [1333, 26, 1, 25],
	'k': [1360, 37, 1, 32],
	'l': [1398, 15, 1, 15],
	'm': [1414, 39, 1, 36],
	'n': [1454, 29, 1, 28],
	'o': [1484, 29, 1, 28],
	'p': [1514, 26, 1, 25],
	'q': [1541, 35, 1, 27],
	'r': [1577, 25, 1, 24],
	's': [1607, 36, 1, 38],
	't': [1645, 31, 1, 29],
	'u': [1675, 25, 1, 22],
	'v': [1701, 27, 1, 26],
	'w': [1729, 38, 1, 35],
	'x': [1768, 25, 1, 24],
	'y': [1794, 35, 1, 34],
	'z': [1830, 38, 1, 33],
	'0': [1869, 40, 1, 39],
	'1': [1910, 21, 1, 19],
	'2': [1932, 36, 1, 32],
	'3': [1969, 35, 1, 32],
	'4': [2005, 26, 1, 25],
	'5': [2032, 53, 1, 51],
	'6': [2086, 39, 1, 39],
	'7': [2126, 32, 1, 29],
	'8': [2159, 36, 1, 36],
	'9': [2196, 31, 1, 27],
	'&': [2228, 26, 1, 23],
	'!': [2255, 15, 1, 15],
	'?': [2271, 29, 1, 22],
	'-': [2301, 21, 1, 20],
	' ': [2323, 14, 1, 12],
	'.': [2338, 18, 1, 13],
	'\"': [2357, 16, 1, 15],
	'\'': [2374, 11, 1, 9]
});

FontJazz.register('orange_small', {
	image: './java/orange-1.png',
	width: 1705,
	height: 50,
	'A': [0, 21, 1, 19],
	'B': [22, 32, 1, 27],
	'C': [55, 31, 1, 30],
	'D': [87, 27, 1, 25],
	'E': [115, 26, 1, 24],
	'F': [142, 20, 1, 19],
	'G': [163, 32, 1, 30],
	'H': [196, 19, 1, 18],
	'I': [216, 22, 1, 18],
	'J': [239, 23, 1, 20],
	'K': [263, 25, 1, 22],
	'L': [289, 33, 1, 31],
	'M': [323, 31, 1, 29],
	'N': [355, 26, 1, 27],
	'O': [382, 33, 1, 31],
	'P': [416, 26, 1, 23],
	'Q': [443, 30, 1, 28],
	'R': [474, 28, 1, 25],
	'S': [503, 40, 1, 26],
	'T': [544, 27, 1, 24],
	'U': [572, 24, 1, 21],
	'V': [597, 21, 1, 20],
	'W': [619, 31, 1, 29],
	'X': [651, 23, 1, 19],
	'Y': [675, 18, 1, 15],
	'Z': [694, 31, 1, 30],
	'a': [726, 25, 1, 22],
	'b': [752, 27, 1, 23],
	'c': [780, 27, 1, 22],
	'd': [808, 30, 1, 24],
	'e': [839, 28, 1, 23],
	'f': [868, 20, 1, 18],
	'g': [889, 26, 1, 20],
	'h': [916, 20, 1, 17],
	'i': [937, 10, 1, 9],
	'j': [948, 18, 1, 16],
	'k': [967, 26, 1, 21],
	'l': [994, 11, 1, 10],
	'm': [1006, 27, 1, 24],
	'n': [1034, 20, 1, 18],
	'o': [1055, 21, 1, 19],
	'p': [1077, 19, 1, 17],
	'q': [1097, 25, 1, 19],
	'r': [1123, 18, 1, 16],
	's': [1142, 28, 1, 26],
	't': [1171, 22, 1, 20],
	'u': [1194, 17, 1, 14],
	'v': [1212, 19, 1, 18],
	'w': [1232, 27, 1, 24],
	'x': [1260, 18, 1, 16],
	'y': [1279, 25, 1, 23],
	'z': [1305, 27, 1, 23],
	'0': [1333, 28, 1, 26],
	'1': [1362, 15, 1, 13],
	'2': [1378, 26, 1, 22],
	'3': [1405, 24, 1, 21],
	'4': [1430, 19, 1, 17],
	'5': [1450, 38, 1, 36],
	'6': [1489, 27, 1, 26],
	'7': [1517, 22, 1, 19],
	'8': [1540, 25, 1, 24],
	'9': [1566, 22, 1, 18],
	'&': [1589, 18, 1, 16],
	'!': [1608, 11, 1, 10],
	'?': [1620, 21, 1, 15],
	'-': [1642, 15, 1, 14],
	' ': [1658, 10, 1, 8],
	'.': [1669, 13, 1, 9],
	'\"': [1683, 12, 1, 11],
	'\'': [1696, 8, 1, 6]
});

FontJazz.register('grey_small', {
	image: './java/grey-1.png',
	width: 1705,
	height: 50,
	'A': [0, 21, 1, 19],
	'B': [22, 32, 1, 27],
	'C': [55, 31, 1, 30],
	'D': [87, 27, 1, 25],
	'E': [115, 26, 1, 24],
	'F': [142, 20, 1, 19],
	'G': [163, 32, 1, 30],
	'H': [196, 19, 1, 18],
	'I': [216, 22, 1, 18],
	'J': [239, 23, 1, 20],
	'K': [263, 25, 1, 22],
	'L': [289, 33, 1, 31],
	'M': [323, 31, 1, 29],
	'N': [355, 26, 1, 27],
	'O': [382, 33, 1, 31],
	'P': [416, 26, 1, 23],
	'Q': [443, 30, 1, 28],
	'R': [474, 28, 1, 25],
	'S': [503, 40, 1, 26],
	'T': [544, 27, 1, 24],
	'U': [572, 24, 1, 21],
	'V': [597, 21, 1, 20],
	'W': [619, 31, 1, 29],
	'X': [651, 23, 1, 19],
	'Y': [675, 18, 1, 15],
	'Z': [694, 31, 1, 30],
	'a': [726, 25, 1, 22],
	'b': [752, 27, 1, 23],
	'c': [780, 27, 1, 22],
	'd': [808, 30, 1, 24],
	'e': [839, 28, 1, 23],
	'f': [868, 20, 1, 18],
	'g': [889, 26, 1, 20],
	'h': [916, 20, 1, 17],
	'i': [937, 10, 1, 9],
	'j': [948, 18, 1, 16],
	'k': [967, 26, 1, 21],
	'l': [994, 11, 1, 10],
	'm': [1006, 27, 1, 24],
	'n': [1034, 20, 1, 18],
	'o': [1055, 21, 1, 19],
	'p': [1077, 19, 1, 17],
	'q': [1097, 25, 1, 19],
	'r': [1123, 18, 1, 16],
	's': [1142, 28, 1, 26],
	't': [1171, 22, 1, 20],
	'u': [1194, 17, 1, 14],
	'v': [1212, 19, 1, 18],
	'w': [1232, 27, 1, 24],
	'x': [1260, 18, 1, 16],
	'y': [1279, 25, 1, 23],
	'z': [1305, 27, 1, 23],
	'0': [1333, 28, 1, 26],
	'1': [1362, 15, 1, 13],
	'2': [1378, 26, 1, 22],
	'3': [1405, 24, 1, 21],
	'4': [1430, 19, 1, 17],
	'5': [1450, 38, 1, 36],
	'6': [1489, 27, 1, 26],
	'7': [1517, 22, 1, 19],
	'8': [1540, 25, 1, 24],
	'9': [1566, 22, 1, 18],
	'&': [1589, 18, 1, 16],
	'!': [1608, 11, 1, 10],
	'?': [1620, 21, 1, 15],
	'-': [1642, 15, 1, 14],
	' ': [1658, 10, 1, 8],
	'.': [1669, 13, 1, 9],
	'\"': [1683, 12, 1, 11],
	'\'': [1696, 8, 1, 6]
});