// This file can be included in any page to make elements with
// translucent PNG background images appear correctly in IE.

function FixTranslucentPNGStyles() {
	var ua = navigator.userAgent.toLowerCase();
	// Not necessary on browsers other than IE6.
	if(!(ua.indexOf("msie") >= 0 && ua.indexOf("msie 7") == -1))
		return;
		
	for(var i = 0; i < document.styleSheets.length; i++) {
		var stylesheet = document.styleSheets[i];
		var rules = stylesheet.rules ? stylesheet.rules : stylesheet.cssRules;
		
		for(var j = 0; j < rules.length; j++) {
			var style = rules[j].style;

			// If there's a png set as the background image, set the
			// background image property to "none" and set a filter
			// to display the image instead.
			if(style.backgroundImage && style.backgroundImage.indexOf("png") > -1) {
				var image = style.backgroundImage.replace(/^url\(/, "");
				image = image.replace(/^\.\.\//, "");
				image = image.replace(/\)$/, "");
				image = escape(image);

				style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + image + "', sizingMethod='crop')";
				style.backgroundImage = "none";
			}
		}
	}
}

function FixTranslucentPNGImage(img) {
	var ua = navigator.userAgent.toLowerCase();
	// Not necessary on browsers other than IE6.
	if(!(ua.indexOf("msie") >= 0 && ua.indexOf("msie 7") == -1))
		return;

	var src = img.src;
	var parent = img.offsetParent;

	// create div to replace img
	var div = document.getElementById("filterdiv_" + img.id);
	if(!div)
		div = document.createElement("div");
	div.id = "filterdiv_" + img.id;
	div.style.position = img.style.position;
	div.style.left = img.style.left;
	div.style.top = img.style.top;
	div.style.width = img.offsetWidth + "px";
	div.style.height = img.offsetHeight + "px";
	div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
	div.style.backgroundColor = "transparent";

	// hide img and add div
	parent.appendChild(div);
	img.style.display = "none";
}

FixTranslucentPNGStyles();