summaryrefslogtreecommitdiffstats
path: root/talks/reverse-engineering/ui/default/iepngfix.htc
blob: bba2db756285aed392475a0b912788d5ce1f2a02 (plain) (blame)
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
<public:component>
<public:attach event="onpropertychange" onevent="doFix()" />

<script>

// IE5.5+ PNG Alpha Fix v1.0 by Angus Turnbull http://www.twinhelix.com
// Free usage permitted as long as this notice remains intact.

// This must be a path to a blank image. That's all the configuration you need here.
var blankImg = 'ui/default/blank.gif';

var f = 'DXImageTransform.Microsoft.AlphaImageLoader';

function filt(s, m) {
 if (filters[f]) {
  filters[f].enabled = s ? true : false;
  if (s) with (filters[f]) { src = s; sizingMethod = m }
 } else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
}

function doFix() {
 if ((parseFloat(navigator.userAgent.match(/MSIE (\S+)/)[1]) < 5.5) ||
  (event && !/(background|src)/.test(event.propertyName))) return;

 if (tagName == 'IMG') {
  if ((/\.png$/i).test(src)) {
   filt(src, 'image');  // was 'scale'
   src = blankImg;
  } else if (src.indexOf(blankImg) < 0) filt();
 } else if (style.backgroundImage) {
  if (style.backgroundImage.match(/^url[("']+(.*\.png)[)"']+$/i)) {
   var s = RegExp.$1;
   style.backgroundImage = '';
   filt(s, 'crop');
  } else filt();
 }
}

doFix();

</script>
</public:component>