summaryrefslogtreecommitdiff
path: root/skins/default/pngbehavior.htc
blob: 54ee968903e61001837cfcb184dd11a16f0f0d0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<public:component>
<public:attach event="onpropertychange" onevent="propertyChanged()" />
<public:attach event="onbeforeprint" for="window" onevent="beforePrint()" />
<public:attach event="onafterprint" for="window" onevent="afterPrint()" />
<script>

/*
 * PNG Behavior
 *
 * This script was created by Erik Arvidsson (erik(at)eae.net)
 * for WebFX (http://webfx.eae.net)
 * Copyright 2002
 * 
 * For usage see license at http://webfx.eae.net/license.html	
 *
 * Version: 1.01a
 *
 */
 
var IS_PNG = /\.png$/i;
var supported = /MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == 'Win32';
var realSrc, realHeight, realWidth;
var blankSrc = 'skins/default/images/blank.gif';
if (supported) fixImage();
function propertyChanged() {
  if (supported && event.propertyName == 'src') {
    var i = element.src.lastIndexOf(blankSrc);
    if (i == -1 || i != element.src.length - blankSrc.length) {
      fixImage();
    }
  }
}
function fixImage() {
  if (realSrc && element.src == realSrc) {
    // this is an attempt to set the image to itself!
    // pointless - leave the filter as-is, restore the blank image
    element.src = blankSrc;
  } else {
    // set the image to something different
    if (IS_PNG.test(element.src)) {
      // fixable PNG
      realSrc = element.src;
      realWidth = element.width;
      realHeight = element.height;
      element.src = blankSrc;
      element.style.width = realWidth + 'px';
      element.style.height = realHeight + 'px';
      element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + encodeURI(realSrc) + "',sizingMethod='scale')";
    } else {
      // ordinary image - make sure the fix is removed
      if (realSrc) {
        realSrc = null;
        element.runtimeStyle.filter = '';
      }
    }
  }
}
function beforePrint() {
  if (realSrc) {
    supported = false;
    element.src = realSrc;
    element.runtimeStyle.filter = '';
    supported = true;
  }
}
function afterPrint() {
  if (realSrc) {
    var rs = realSrc;
    realSrc = null;
    element.src = rs;
  }
}
</script>
</public:component>