var PNGimageArray = new Array(); var isPrinting = false; var blankSrc = "/images/spacer.gif"; var browser = new Browser(); 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 (/\.png$/i.test(element.src)) { fixImage(element); element.attachEvent("onpropertychange", function (){ propertyChanged(); } ); PNGimageArray[PNGimageArray.length] = element; } } function fixImage(element) { element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + element.src + "')"; 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); } }