Code

Moved to trunk/branches/tags structure
[gosa.git] / html / 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 \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