var PNGimageArray = new Array();
var isPrinting = false;

var blankSrc = "/images/spacer.gif";

var browser = new Browser();

function getallpng(){ 
	var allImgObjs = document.getElementsByTagName('IMG');
	for(var i=0; i<allImgObjs.length; i++)
		addPngImage(allImgObjs[i]);
} 
//window.onload=getallpng;

if (browser.isIE) {
	window.attachEvent("onbeforeprint", function () { beforePrint(); } );
	window.attachEvent("onafterprint", function () { afterPrint(); } );
}
if (browser.isNS) {
	window.addEventListener("onbeforeprint", function () { beforePrint(); }, true );
	window.addEventListener("onafterprint", function () { afterPrint(); }, true);
}

function Browser() {
	var ua, s, i;
	this.isIE    = false;
	this.isNS    = false;
	this.version = null;

	ua = navigator.userAgent;

	s = "MSIE";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isIE = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	}

	s = "Netscape6/";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	}

	s = "Gecko";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = 6.1;
		return;
	}
}

function addPngImage(element){
	if(element){
		if (/\.png$/i.test(element.src)) {
			fixImage(element);
			element.attachEvent("onpropertychange", function (){ propertyChanged(); } );
			PNGimageArray[PNGimageArray.length] = element;
		}
	}
}
function fixImage(element) {
	if(element){
		element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + element.src + "', sizingMethod='scale')";
		element.src = blankSrc;
	}
}

function propertyChanged() {
	if (isPrinting) return;
	var element = event.srcElement;
	var pName = event.propertyName;
	if (pName != "src") return;
	if (!new RegExp(blankSrc).test(element.src))
	fixImage(element);
}

function beforePrint() {
	isPrinting = true;
	var element;
	for(var i = 0; i < PNGimageArray.length; i++){
		element = PNGimageArray[i];
		element.src = element.filters[0].src;
		element.runtimeStyle.filter = "";
	}
}

function afterPrint() {
	isPrinting = false;
	var element;
	for(var i = 0; i < PNGimageArray.length; i++){
		element = PNGimageArray[i];
		fixImage(element);
	}
}
