var TTFHeader = new Class
	({
		pxRatio: .8,
		
		initialize: function()
		{
		},
		
		replace: function(headerElement)
		{
			var textValue = headerElement.get('html');
			var textSize = headerElement.getStyle('font-size').toInt() * this.pxRatio;
			var textColor = headerElement.getStyle('color').match(/([a-f0-9]{6})/i)[1];
			
			var textElement = new Element
			(
				'span',
				{
					'text': textValue,
					'class': 'none'
				}
			);

			var imgElement = new Element
			(
				'img',
				{
					'src': './img/getText.php?t=' + textValue + '&s=' + textSize + '&c=' + textColor,
					'alt': textValue
				}
			).addEvent
			(
				'load',
				this.__imgToBackground.bind(this, [headerElement])
			);
			
			headerElement.empty();
			textElement.inject(headerElement);
			imgElement.inject(headerElement);
			headerElement.setStyles({'visibility' : 'visible'});
		},
		
		__imgToBackground: function(headerElement)
		{
			var imgElement = headerElement.getElement('img');
			var imgSize = imgElement.getSize();

			headerElement.setStyles
			({
				'background': 'url(\'' + imgElement.get('src') + '\') no-repeat',
				'width': imgSize.x,
				'height': imgSize.y
			});
			
			// IE6 alpha channel fix
			if (Browser.Engine.trident4)
			{
				headerElement.setStyles
				({
					'background': null,
					'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + imgElement.get('src').encodeDxUrl() + '&dx=1\', sizingMethod=\'crop\')'
				});
			}
			
			imgElement.destroy();
		}
	})

var TTFHeaders = new Class
({
	Extends: TTFHeader,
	
	initialize: function()
	{
		this.parent();

		var headerElements = document.getElements('.ttf');
		
		if (!headerElements)
			return;
			
		for (var i = 0; i < headerElements.length; i++)
		{
			this.replace(headerElements[i]);
		}
	}	
});


String.prototype.encodeDxUrl = function()
{
	var encodedUrl = this;
	var hash =
	{
		'Ę': '`E', 
		'Ó': '`O', 
		'Ą': '`A', 
		'Ś': '`S', 
		'Ł': '`L', 
		'Ż': '`Z', 
		'Ź': '`X', 
		'Ć': '`C', 
		'Ń': '`N', 
		'ę': '`e', 
		'ó': '`o', 
		'ą': '`a', 
		'ś': '`s', 
		'ł': '`l', 
		'ż': '`z', 
		'ź': '`x', 
		'ć': '`c', 
		'ń': '`n'
	}

	for (var k in hash)
	{
		encodedUrl = encodedUrl.replace(new RegExp(k, 'g'), hash[k])
	}
	
	return new String(escape(encodedUrl));
}