/*
Correctly handle PNG transparency in Win IE 5.5 & 6.

Original from http://homepage.ntlworld.com/bobosola. Which was last updated on 18-Jan-2006.
New version by Hoppinger. Which was last updated on 09-Dec-2008.

Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 6]>
<script defer type="text/javascript" src="/javascript/pngfix.js"></script>
<![endif]-->
*/

function fixPngImages()
{
	// Using the hoppinger version :)
	fixPngImages_v2();
}

// new function, added support for onclick etc and DOM correct
function fixPngImages_v2()
{
	var arVersion = navigator.appVersion.split("MSIE");
	var version = parseFloat(arVersion[1]);

	if ((version >= 5.5) && (document.body.filters))
	{
		var i_mod = 0;
		var collection = document.images;

		for(var i=0; i < collection.length; i++)
		{
			var img = collection[i];
			var newImage = document.createElement('img');
			var imageContainer = document.createElement('span');
			var insertElement;
			var imgName = img.src.toUpperCase();
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
			{
				if(img.id) newImage.id = img.id;
				if(img.className) newImage.className = img.className;
				if(img.title) newImage.title = img.title;

				if(img.style.cssText) newImage.style.cssText = img.style.cssText;
				if(img.style.cssText) imageContainer.style.cssText = img.style.cssText;

				newImage.style.border = '';

				// -- no longer needed since an image is already the correct display type
				//if(!newImage.style.display) newImage.style.display = 'inline-block';
				if(!imageContainer.style.display) imageContainer.style.display = 'inline';

				if(img.width) newImage.style.width = img.width;
				if(img.height) newImage.style.height = img.height;
				newImage.style.fontSize = "1px";

				if(img.width) imageContainer.style.width = img.width;
				if(img.height) imageContainer.style.height = img.height;
				imageContainer.style.fontSize = "1px";

				if(imageContainer.style.border)
				{
					if(img.align == "left") imageContainer.style.styleFloat = 'left';
					if(img.align == "right") imageContainer.style.styleFloat = 'right';
				}
				else
				{
					newImage.align = img.align;
				}

				//if(imageContainer.style.styleFloat) imageContainer.style.marginRight = "-3px";

				if(img.onclick) newImage.onclick = img.onclick;
				if(img.onmouseover) newImage.onmouseover = img.onmouseover;
				if(img.onmouseout) newImage.onmouseout = img.onmouseout;
				if(img.onmousedown) newImage.onmousedown = img.onmousedown;
				if(img.onmouseup) newImage.onmouseup = img.onmouseup;

				if (img.parentNode.href) imageContainer.style.cursor = 'pointer';
				if (img.parentNode.href) newImage.style.cursor = 'pointer';

				newImage.src = "/images/blank.gif";
				newImage.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src + "', sizingMethod='image')";

				/*newImage.onload = function () {
					if(this.src.indexOf("/images/blank.gif") == -1)
					{
						this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "', sizingMethod='image')";
						this.src = "/images/blank.gif";
					}
				};*/
				if(imageContainer.style.border)
				{
					imageContainer.appendChild(newImage);
					img.parentNode.replaceChild(imageContainer, img);
				}
				else
				{
				img.parentNode.replaceChild(newImage, img);
				}
				i = i-i_mod;
			}
		}
	}
}

// old function, no support for onclick etc and DOM incorrect
function fixPngImages_v1()
{
	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])

	if ((version >= 5.5) && (document.body.filters))
	{
		for(var i=0; i<document.images.length; i++)
		{
			var img = document.images[i];
			var newImage = document.createElement('img');
			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;
				var imgOnclick = (img.onclick) ? img.onclick : "";
				//alert(img.onclick);
				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;
				i = i-1;
			}
		}
	}
}

window.addEvent("domready", function () {
	fixPngImages();
});