/*
 * ds-sleight: universal transparent-PNG enabler for MSIE/Win 5.5+
 * version 1.0.1 (2007)
 * by Daniel Sandler, http://dsandler.org, dsandler at that domain too
 * see also: http://dsandler.org/wp/archives/2007/08/22/ds-sleight
 * 
 * From original code: http://www.youngpup.net/?request=/snippets/sleight.xml
 * and background-image code: http://www.allinthehead.com/retro/69
 * ...plus the following enhancements:
 *  # use sizingMethod=crop to avoid scaling PNGs (who would do such a thing?)
 *  # only do this once, to make it compatible with CSS rollovers
 * 
 * Instructions for use:
 *  1. load ds-sleight.js in your page
 *  2. create a 1x1 pixel, completely transparent GIF and store it at
 *     /images/spacer.gif (or change the spacerPath variable below to
 *     point at such an image)
 *  3. enjoy
 */

if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
	document.writeln('<style type="text/css">img, input.image { visibility:hidden; } </style>');
	window.attachEvent("onload", fnLoadPngs);
}

function fnLoadPngs() {
	var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
	var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5 && Number(rslt[1]) < 7.0);

	for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--) {
		if (itsAllGood && img.src.match(/\.png$/i) != null) {
			fnFixPng(img);
			img.attachEvent("onpropertychange", fnPropertyChanged);
		}
		img.style.visibility = "visible";
	}

	var nl = document.getElementsByTagName("INPUT");
	for (var i = nl.length - 1, e = null; (e = nl[i]); i--) {
		if (e.className && e.className.match(/\bimage\b/i) != null) {
			if (e.src.match(/\.png$/i) != null) {
				fnFixPng(e);
				e.attachEvent("onpropertychange", fnPropertyChanged);
			}
			e.style.visibility = "visible";
		}
	}
}

function fnPropertyChanged() {
	if (window.event.propertyName == "src") {
		var el = window.event.srcElement;
		if (!el.src.match(/x\.gif$/i)) {
			el.filters.item(0).src = el.src;
			el.src = "images/x.gif";
		}
	}
}

function dbg(o) {
	var s = "";
	var i = 0;
	for (var p in o) {
		s += p + ": " + o[p] + "\n";
		if (++i % 10 == 0) {
			alert(s);
			s = "";
		}
	}
	alert(s);
}

function fnFixPng(img) {
	var src = img.src;
	img.style.width = img.width + "px";
	img.style.height = img.height + "px";
	img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"
	img.src = "images/x.gif";
}