var pngFixer = {

	run     : function() {
		if (this.isIE())
		   for(var i = 0; i < document.images.length; i++)
			  this.fix( document.images[i], true );
	},

	isIE    : function() {
		if (typeof this.checked != 'undefined') {
			var arVersion = navigator.appVersion.split("MSIE")
			var version   = parseFloat(arVersion[1])

			this.checked = ((version >= 5.5) && (version < 7.0) && (document.body.filters));
		}

		return this.checked;
	},

	fix     : function(img, force) {
		if (force || this.isIE()) {
			if (typeof img == 'undefined' || !img || !img.src)
				return;

			var imgName = img.src.toUpperCase();
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG") {
				var imgID = (img.id) ? "id='" + img.id + "' " : "";
				var imgClass = (img.className) ? "class='" + img.className + "' " : "";
				var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
				var imgStyle = "display:inline-block;" + img.style.cssText;
				if (img.align == "left") imgStyle = "float:left;" + imgStyle;
				if (img.align == "right") imgStyle = "float:right;" + imgStyle;
				if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;

				var strNewHTML = "<span " + imgID + imgClass + imgTitle
					+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
					+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
					+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>";

				img.outerHTML = strNewHTML;
			}
		}
	}
}

var pngfixAEOL = [];
if (typeof addEvent == 'undefined') {
	function addEvent(o, n, f, l)
	{
		if (n == 'DOMContentLoaded')
			n = 'load';

		var a = 'addEventListener', h = 'on'+n, b = '', s = '';
		if (o[a] && !l)
			return o[a](n, f, false);

		o._c |= 0;
		if (o[h]) {
			b = '_f' + o._c++; o[b] = o[h];
		}

		s = '_f' + o._c++;
		o[s] = f;
		o[h] = function(e) {
			e = e || window.event;
			var r = true;
			if (b) r = o[b](e) != false && r;
			r = o[s](e) != false && r;
			return r;
		};

		pngfixAEOL[pngfixAEOL.length] = { o: o, h: h };
	};
	addEvent(window, 'unload', function() { for (var i = 0; i < pngfixAEOL.length; i++) with (pngfixAEOL[i]) { o[h] = null; for(var c = 0; o['_f' + c]; c++) o['_f' + c] = null; } } );
}

// add an onload event to automatically fix any pngs
addEvent( window, 'DOMContentLoaded', function(){if (document.body && document.images) pngFixer.run();} );