Move notbenh's talk
[gitmo/moose-website.git] / object_meta_programming_slides / slides / ui / 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)|[6789])/.test(navigator.userAgent) &&
26                                 navigator.platform == "Win32";
27
28 var realSrc;
29 var blankSrc = "blank.gif";
30 var isPrinting = false;
31
32 if (supported) fixImage();
33
34 function propertyChanged() {
35         if (!supported || isPrinting) return;
36
37         var pName = event.propertyName;
38         if (pName != "src") return;
39         // if not set to blank
40         if (!new RegExp(blankSrc).test(src))
41                 fixImage();
42 };
43
44 function fixImage() {
45         // get src
46         var src = element.src;
47
48         // check for real change
49         if (src == realSrc && /\.png$/i.test(src)) {
50                 element.src = blankSrc;
51                 return;
52         }
53
54         if ( ! new RegExp(blankSrc).test(src)) {
55                 // backup old src
56                 realSrc = src;
57         }
58
59         // test for png
60         if (/\.png$/i.test(realSrc)) {
61                 // set blank image
62                 element.src = blankSrc;
63                 // set filter
64                 element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." +
65                                         "AlphaImageLoader(src='" + src + "',sizingMethod='image')";
66         }
67         else {
68                 // remove filter
69                 element.runtimeStyle.filter = "";
70         }
71 }
72
73 function beforePrint() {
74         isPrinting = true;
75         element.src = realSrc;
76         element.runtimeStyle.filter = "";
77         realSrc = null;
78 }
79
80 function afterPrint() {
81         isPrinting = false;
82         fixImage();
83 }
84
85 </script>
86 </public:component>
87