]> git.donarmstrong.com Git - roundcube.git/blobdiff - skins/default/pngbehavior.htc
Merge commit 'upstream/0.7'
[roundcube.git] / skins / default / pngbehavior.htc
index 24bfd4c7954bcde2cf251c652f3b590625e10e90..fb5f1c8d4e80bd33ec0d6719af40857f975cc5c7 100644 (file)
@@ -1,52 +1,84 @@
-<public:component>
+<public:component lightWeight="true">
 <public:attach event="onpropertychange" onevent="propertyChanged()" />
+<public:attach event="onbeforeprint" onevent="beforePrint()" for="window"/>
+<public:attach event="onafterprint" onevent="afterPrint()" for="window"/>
 <script>
 
-var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32";
-var realSrc;
-var blankSrc = "skins/default/images/blank.gif";
+/*
+ * PNG Behavior
+ *
+ * This script was created by Erik Arvidsson (http://webfx.eae.net/contact.html#erik)
+ * for WebFX (http://webfx.eae.net)
+ * Copyright 2002-2004
+ *
+ * For usage see license at http://webfx.eae.net/license.html
+ *
+ * Version: 1.02
+ * Created: 2001-??-?? First working version
+ * Updated: 2002-03-28 Fixed issue when starting with a non png image and
+ *                      switching between non png images
+ *          2003-01-06 Fixed RegExp to correctly work with IE 5.0x
+ *          2004-05-09  When printing revert to original
+ *
+ */
+
+var supported = /MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32",
+  realSrc,
+  blankSrc = "skins/default/images/blank.gif",
+  isPrinting = false;
 
 if (supported) fixImage();
 
 function propertyChanged() {
-   if (!supported) return;
+       if (!supported || isPrinting) return;
 
-   var pName = event.propertyName;
-   if (pName != "src") return;
-   // if not set to blank
-   if ( ! new RegExp(blankSrc).test(src))
-      fixImage();
+       var pName = event.propertyName;
+       if (pName != "src") return;
+       // if not set to blank
+       if (!new RegExp(blankSrc).test(src))
+               fixImage();
 };
 
 function fixImage() {
-   // get src
-   var src = element.src;
-
-   // check for real change
-   if (src == realSrc) {
-      element.src = blankSrc;
-      return;
-   }
-
-   if ( ! new RegExp(blankSrc).test(src)) {
-      // backup old src
-      realSrc = src;
-      element._original_src = realSrc;
-   }
-
-   // test for png
-   if ( /\.png$/.test( realSrc.toLowerCase() ) ) {
-      // set blank image
-      element.src = blankSrc;
-      // set filter
-      element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +
-                                     src + "',sizingMethod='crop')";
-   }
-   else {
-      // remove filter
-      element.runtimeStyle.filter = "";
-   }
+       // get src
+       var src = element.src;
+
+       // check for real change
+       if (src == realSrc && /\.png$/i.test(src)) {
+               element.src = blankSrc;
+               return;
+       }
+
+       if ( ! new RegExp(blankSrc).test(src)) {
+               // backup old src
+               realSrc = src;
+       }
+
+       // test for png
+       if (/\.png$/i.test(realSrc)) {
+               // set blank image
+               element.src = blankSrc;
+               // set filter
+               element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." +
+                                       "AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
+       }
+       else {
+               // remove filter
+               element.runtimeStyle.filter = "";
+       }
+}
+
+function beforePrint() {
+       isPrinting = true;
+       element.src = realSrc;
+       element.runtimeStyle.filter = "";
+       realSrc = null;
+}
+
+function afterPrint() {
+       isPrinting = false;
+       fixImage();
 }
 
 </script>
-</public:component>
\ No newline at end of file
+</public:component>