Merge branch 'qml' of ssh://drop.maemo.org/git/mdictionary into qml
[mdictionary] / www / scripts / pngfix.js
diff --git a/www/scripts/pngfix.js b/www/scripts/pngfix.js
new file mode 100644 (file)
index 0000000..1f54cf6
--- /dev/null
@@ -0,0 +1,88 @@
+var supersleight       = function() {\r
+       \r
+       var root = false;\r
+       var applyPositioning = false;\r
+       \r
+       // Path to a transparent GIF image\r
+       var shim                        = "images/spacer.gif";\r
+       \r
+       // RegExp to match above GIF image name\r
+       var shim_pattern        = /x\.gif$/i;\r
+       \r
+       \r
+       \r
+       var fnLoadPngs = function() { \r
+               if (root) {\r
+                       root = document.getElementById(root);\r
+               }else{\r
+                       root = document;\r
+               }\r
+               for (var i = root.all.length - 1, obj = null; (obj = root.all[i]); i--) {\r
+                       if (obj.className == "faq_switcher") continue;\r
+                       // background pngs\r
+                       //if (obj.currentStyle.backgroundImage.match(/\.png/i) !== null) {\r
+                       //      if(obj != document.body) bg_fnFixPng(obj);\r
+                       //}\r
+                       // image elements\r
+                       if (obj.tagName=='IMG' && obj.src.match(/\.png$/i) !== null){\r
+                               el_fnFixPng(obj);\r
+                       }\r
+                       // apply position to 'active' elements\r
+                       if (applyPositioning && (obj.tagName=='A' || obj.tagName=='INPUT') && obj.style.position === ''){\r
+                               obj.style.position = 'relative';\r
+                       }\r
+               }\r
+       };\r
+\r
+       var bg_fnFixPng = function(obj) {\r
+               var mode = 'scale';\r
+               var bg  = obj.currentStyle.backgroundImage;\r
+               var src = bg.substring(5,bg.length-2);\r
+               if (obj.currentStyle.backgroundRepeat == 'no-repeat') {\r
+                       mode = 'crop';\r
+               }\r
+               obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";\r
+               obj.style.backgroundImage = 'url('+shim+')';\r
+       };\r
+\r
+       var el_fnFixPng = function(img) {\r
+               var src = img.src;\r
+               img.style.width = img.width + "px";\r
+               img.style.height = img.height + "px";\r
+               img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";\r
+               img.src = shim;\r
+       };\r
+       \r
+       var addLoadEvent = function(func) {\r
+               var oldonload = window.onload;\r
+               if (typeof window.onload != 'function') {\r
+                       window.onload = func;\r
+               } else {\r
+                       window.onload = function() {\r
+                               if (oldonload) {\r
+                                       oldonload();\r
+                               }\r
+                               func();\r
+                       };\r
+               }\r
+       };\r
+       \r
+       return {\r
+               init: function() { \r
+                       addLoadEvent(fnLoadPngs);\r
+               },\r
+               \r
+               limitTo: function(el) {\r
+                       root = el;\r
+               },\r
+               \r
+               run: function() {\r
+                       fnLoadPngs();\r
+               }\r
+       };\r
+}();\r
+\r
+// limit to part of the page ... pass an ID to limitTo:\r
+// supersleight.limitTo("myWindow");\r
+\r
+supersleight.init();\r