function Headers()
{
	for ( var i = 0; i < arguments.length; ++i )
	{
		var aHeader = document.getElementsByTagName( arguments[ i ] );
		for ( var j = 0; j < aHeader.length; ++j )
			this.replace( aHeader[ j ] );
	}
};
Headers.prototype.replace = function( oElement )
{
	var sStyle   = "default";
	var aStyle   = oElement.className.split( " " );
	var sCaption = this._nodeText( oElement );
	var oImage   = document.createElement( "img" );

	if ( aStyle.length > 0 && aStyle[ 0 ] != "" )
		var sStyle = aStyle[ 0 ];

	oImage.src      = "/media/label/" + sStyle + "/" + escape( sCaption ).replace( / /g, "+" );
	oImage.alt      = sCaption;

	if ( document.all )
	{
		var nHeight = oElement.offsetHeight || oElement.style.height || 0;
		while( oElement.firstChild )
			oElement.removeChild( oElement.firstChild );
		oElement.appendChild( oImage );
		if ( nHeight > 0 )
			oElement.style.height = nHeight + "px";
	}
	else
	{
		oImage._element = oElement;
		oImage.onload   = this.__onload;
	}
};
Headers.prototype.__onload = function()
{
	var nHeight = this._element.offsetHeight || this._element.style.height || 0;
	while( this._element.firstChild )
		this._element.removeChild( this._element.firstChild );
	this._element.appendChild( this );
	if ( nHeight > 0 )
		this._element.style.height = nHeight + "px";
};
Headers.prototype._nodeText = function( oNode )
{
	var sReturn = "";
	for ( var i = 0; i < oNode.childNodes.length; ++i )
	{
		switch( oNode.childNodes[ i ].nodeType )
		{
			case 1: // DOMElement
				sReturn += " " + this._nodeText( oNode.childNodes[ i ] );
				break;
			case 3: // TextElement
				sReturn += oNode.childNodes[ i ].nodeValue;
				break;
		}
	}
	return sReturn;
};

