if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) { document.writeln(''); //Captures print events window.attachEvent("onbeforeprint", function () { beforePrint(); } ); window.attachEvent("onafterprint", function () { afterPrint(); } ); } //Array containing all PNG images on the page var PNGimageArray = new Array(); var isPrinting = false; //Path to the blank image (1x1 transparent) var blankSrc = "/global/spacer.gif"; //Tests if element is a PNG image, and if so fixes it function addPngImage(element){ if (/\.png$/i.test(element.src)) { fixImage(element); element.attachEvent("onpropertychange", function () { propertyChanged(); } ); PNGimageArray[PNGimageArray.length] = element; } } //Applies filter and changes source to blank function fixImage(element) { element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + element.src + "')"; element.src = blankSrc; } //If property "src" is changed fixs image (not if it is changed to blank though) 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); } //Turns image back to original before print (Explorer can't print filters) 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 = ""; } } //Fixes image after print function afterPrint() { isPrinting = false; var element; for(var i = 0; i < PNGimageArray.length; i++){ element = PNGimageArray[i]; fixImage(element); } }