]> git.donarmstrong.com Git - roundcube.git/blob - skins/default/pngbehavior.htc
Imported Upstream version 0.5.4+dfsg
[roundcube.git] / skins / default / pngbehavior.htc
1 <public:component lightWeight="true">
2 <public:attach event="onpropertychange" onevent="propertyChanged()" />
3 <public:attach event="onbeforeprint" onevent="beforePrint()" for="window"/>
4 <public:attach event="onafterprint" onevent="afterPrint()" for="window"/>
5 <script>
6
7 /*
8  * PNG Behavior
9  *
10  * This script was created by Erik Arvidsson (http://webfx.eae.net/contact.html#erik)
11  * for WebFX (http://webfx.eae.net)
12  * Copyright 2002-2004
13  *
14  * For usage see license at http://webfx.eae.net/license.html
15  *
16  * Version: 1.02
17  * Created: 2001-??-??  First working version
18  * Updated: 2002-03-28  Fixed issue when starting with a non png image and
19  *                      switching between non png images
20  *          2003-01-06  Fixed RegExp to correctly work with IE 5.0x
21  *          2004-05-09  When printing revert to original
22  *
23  */
24
25 var supported = /MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32",
26   realSrc,
27   blankSrc = "skins/default/images/blank.gif",
28   isPrinting = false;
29
30 if (supported) fixImage();
31
32 function propertyChanged() {
33         if (!supported || isPrinting) return;
34
35         var pName = event.propertyName;
36         if (pName != "src") return;
37         // if not set to blank
38         if (!new RegExp(blankSrc).test(src))
39                 fixImage();
40 };
41
42 function fixImage() {
43         // get src
44         var src = element.src;
45
46         // check for real change
47         if (src == realSrc && /\.png$/i.test(src)) {
48                 element.src = blankSrc;
49                 return;
50         }
51
52         if ( ! new RegExp(blankSrc).test(src)) {
53                 // backup old src
54                 realSrc = src;
55         }
56
57         // test for png
58         if (/\.png$/i.test(realSrc)) {
59                 // set blank image
60                 element.src = blankSrc;
61                 // set filter
62                 element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." +
63                                         "AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
64         }
65         else {
66                 // remove filter
67                 element.runtimeStyle.filter = "";
68         }
69 }
70
71 function beforePrint() {
72         isPrinting = true;
73         element.src = realSrc;
74         element.runtimeStyle.filter = "";
75         realSrc = null;
76 }
77
78 function afterPrint() {
79         isPrinting = false;
80         fixImage();
81 }
82
83 </script>
84 </public:component>