1 if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent)\r
2 window.attachEvent("onload", pngLoadPngs);\r
3 \r
4 // parses all images //public\r
5 function pngLoadPngs()\r
6 {\r
7 var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');\r
8 var itsAllGood = (rslt != null && Number(rslt[1]) > 5.5);\r
9 \r
10 if (itsAllGood)\r
11 for (var i = 0; i < document.images.length; i++)\r
12 pngLoad(document.images[i]);\r
13 }\r
14 \r
15 // loads an image, src is optional // public\r
16 function pngLoad(img,src)\r
17 {\r
18 if (typeof img == "object" && typeof img.tagName == "string" && img.tagName == "IMG")\r
19 {\r
20 // this is an image\r
21 if (typeof src == "string")\r
22 {\r
23 // src parameter is present\r
24 if (src.match(/\.png$/i) != null)\r
25 {\r
26 // this is png image\r
27 img.style.width = null;\r
28 img.style.height = null;\r
29 img.style.filter = null;\r
30 img.src = src;\r
31 pngSwapPrepare(img);\r
32 }\r
33 else\r
34 {\r
35 // its not a png\r
36 img.src = src;\r
37 }\r
38 }\r
39 else if (img.src.match(/\.png$/i) != null)\r
40 {\r
41 // no src arameter, but its png -> simply swap\r
42 pngSwapPrepare(img);\r
43 }\r
44 }\r
45 \r
46 // swap (if complete) or shedule it to onload event // private\r
47 function pngSwapPrepare(img)\r
48 {\r
49 if (img.complete)\r
50 pngSwap(img);\r
51 else\r
52 img.attachEvent("onload",pngOnLoadSwap);\r
53 }\r
54 \r
55 // supposed to be called when image is loaded into memory //private\r
56 function pngOnLoadSwap()\r
57 {\r
58 event.srcElement.detachEvent("onload",pngOnLoadSwap);\r
59 pngSwap(event.srcElement)\r
60 }\r
61 \r
62 // Swaps img and background //private\r
63 function pngSwap(img)\r
64 {\r
65 with (img)\r
66 {\r
67 style.width = width + "px";\r
68 style.height = height + "px";\r
69 style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale') "\r
70 src = "images/null.gif";\r
71 }\r
72 }\r
73 }\r