transfer old project website
[mdictionary] / www / scripts / pngfix.js
1 var supersleight        = function() {\r
2         \r
3         var root = false;\r
4         var applyPositioning = false;\r
5         \r
6         // Path to a transparent GIF image\r
7         var shim                        = "images/spacer.gif";\r
8         \r
9         // RegExp to match above GIF image name\r
10         var shim_pattern        = /x\.gif$/i;\r
11         \r
12         \r
13         \r
14         var fnLoadPngs = function() { \r
15                 if (root) {\r
16                         root = document.getElementById(root);\r
17                 }else{\r
18                         root = document;\r
19                 }\r
20                 for (var i = root.all.length - 1, obj = null; (obj = root.all[i]); i--) {\r
21                         if (obj.className == "faq_switcher") continue;\r
22                         // background pngs\r
23                         //if (obj.currentStyle.backgroundImage.match(/\.png/i) !== null) {\r
24                         //      if(obj != document.body) bg_fnFixPng(obj);\r
25                         //}\r
26                         // image elements\r
27                         if (obj.tagName=='IMG' && obj.src.match(/\.png$/i) !== null){\r
28                                 el_fnFixPng(obj);\r
29                         }\r
30                         // apply position to 'active' elements\r
31                         if (applyPositioning && (obj.tagName=='A' || obj.tagName=='INPUT') && obj.style.position === ''){\r
32                                 obj.style.position = 'relative';\r
33                         }\r
34                 }\r
35         };\r
36 \r
37         var bg_fnFixPng = function(obj) {\r
38                 var mode = 'scale';\r
39                 var bg  = obj.currentStyle.backgroundImage;\r
40                 var src = bg.substring(5,bg.length-2);\r
41                 if (obj.currentStyle.backgroundRepeat == 'no-repeat') {\r
42                         mode = 'crop';\r
43                 }\r
44                 obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";\r
45                 obj.style.backgroundImage = 'url('+shim+')';\r
46         };\r
47 \r
48         var el_fnFixPng = function(img) {\r
49                 var src = img.src;\r
50                 img.style.width = img.width + "px";\r
51                 img.style.height = img.height + "px";\r
52                 img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";\r
53                 img.src = shim;\r
54         };\r
55         \r
56         var addLoadEvent = function(func) {\r
57                 var oldonload = window.onload;\r
58                 if (typeof window.onload != 'function') {\r
59                         window.onload = func;\r
60                 } else {\r
61                         window.onload = function() {\r
62                                 if (oldonload) {\r
63                                         oldonload();\r
64                                 }\r
65                                 func();\r
66                         };\r
67                 }\r
68         };\r
69         \r
70         return {\r
71                 init: function() { \r
72                         addLoadEvent(fnLoadPngs);\r
73                 },\r
74                 \r
75                 limitTo: function(el) {\r
76                         root = el;\r
77                 },\r
78                 \r
79                 run: function() {\r
80                         fnLoadPngs();\r
81                 }\r
82         };\r
83 }();\r
84 \r
85 // limit to part of the page ... pass an ID to limitTo:\r
86 // supersleight.limitTo("myWindow");\r
87 \r
88 supersleight.init();\r