Code

Create a non-project relevant tree
[gosa.git] / ListTest / 2 / include / png.js
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                 for (var i = 0; i < document.getElementsByTagName("input").length; i++) {\r
15                         var img = document.getElementsByTagName("input")[i];\r
16                         if(typeof img.type == "string" && img.type == "image") {\r
17                                 pngLoad(img);\r
18                         }\r
19                 }\r
20         }\r
21 }\r
22 \r
23 // loads an image, src is optional // public\r
24 function pngLoad(img,src)\r
25 {\r
26         if (typeof img == "object" && typeof img.tagName == "string" && img.tagName == "IMG")\r
27         {\r
28                 // this is an image\r
29                 if (typeof src == "string")\r
30                 {\r
31                         // src parameter is present\r
32                         if (src.match(/\.png$/i) != null)\r
33                         {\r
34                                 // this is png image\r
35                                 img.style.width = null;\r
36                                 img.style.height = null;\r
37                                 img.style.filter = null;\r
38                                 img.src = src;\r
39                                 pngSwapPrepare(img);\r
40                         }\r
41                         else\r
42                         {\r
43                                 // its not a png\r
44                                 img.src = src;\r
45                         }\r
46                 }\r
47                 else if (img.src.match(/\.png$/i) != null)\r
48                 {\r
49                                 // no src arameter, but its png -> simply swap\r
50                                 pngSwapPrepare(img);\r
51                 }\r
52         } else if (typeof img.tagName == "string" && img.tagName == "INPUT") {\r
53                 if(img.src.match(/\.png$/i) != null) {\r
54                         pngSwapPrepare(img);\r
55                 }\r
56         }\r
57 \r
58         // swap (if complete) or shedule it to onload event // private\r
59         function pngSwapPrepare(img)\r
60         {\r
61                 if (img.complete)\r
62                         pngSwap(img);\r
63                 else\r
64                         img.attachEvent("onload",pngOnLoadSwap);\r
65         }\r
66         \r
67         // supposed to be called when image is loaded into memory //private\r
68         function pngOnLoadSwap()\r
69         {\r
70                 event.srcElement.detachEvent("onload",pngOnLoadSwap);\r
71                 pngSwap(event.srcElement);\r
72         }\r
73 \r
74         // Swaps img and background //private\r
75         function pngSwap(img)\r
76         {\r
77                 with (img)\r
78                 {\r
79                         style.width = width + "px";\r
80                         style.height = height + "px";\r
81                         style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale') ";\r
82                         src = "images/null.gif";\r
83                 }\r
84         }\r
85 }\r