﻿//Array containing all PNG images on the page
			var PNGimageArray = new Array();
			var isPrinting = false;

			//Path to the blank image (1x1 transparent)
			var blankSrc = "image/blank.gif";

			//Captures print events
			window.attachEvent("onbeforeprint", function () { beforePrint(); } );
			window.attachEvent("onafterprint", function () { afterPrint(); } );                               
			                                                      
			//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;
			}
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);

				}
			}
