function FixPng(root)
{
	var version = getBrowserVersion();
	
	if (document.all && version < 7)
	{
		var root = root || document;
		
		var pngs = $A(root.getElementsByTagName("img")).findAll(function(element, index) {
			return /\.png/gi.test(element.src);// && element.hasClassName("Png");
		});
		
		var inputs = $A(root.getElementsByTagName("input")).findAll(function(element, index) {
			return /\image/gi.test(element.type) && /\.png/gi.test(element.src);// && element.hasClassName("Png");															 
		});
		
		inputs.each(function(element){
			pngs.push(element);						 
		});
		
		//pre-load 'em all since the DX filter may hang on the download of an image
		pngs.each(function(element) {
			var img = new Image();
			img.src = element.src;
		});
		
		pngs.each(function(element, index) {						   
			var span = document.createElement("span");
				
			if (element.id)
			{
				span.id = element.id;
			}
				
			if (element.title)
			{
				span.title = element.title;
			}
				
			var parentTag = element.parentNode.tagName.toLowerCase();
			
			Element.setStyle(span, {
				display: "inline-block",  
				cursor: parentTag == "a" || parentTag == "button" ? "hand" : "default",
				width: element.width + "px", 
				height: element.height + "px", 
				float: Element.getStyle(element, "float") ? Element.getStyle(element, "float") : "",
				filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"" + element.src + "\", sizingMethod=\"scale\")"
			});
			
			element.parentNode.insertBefore(span, element);
			Element.remove(element);
		});
	}
}

function getBrowserVersion()
{
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
	{ //test for MSIE x.x;
		var ieversion = new Number(RegExp.$1); // capture x.x portion and store as a number
		return ieversion;
	}
	else
	{
		return 0;
	}
	
}
FixPng();