<public:component>
<public:attach event="onpropertychange" onevent="doFix()" />
<script type="text/javascript">

    // This must be a path to a blank image.
    if (typeof blankImg == 'undefined') var blankImg = '/repository/include/javascript/iepngfix/spacer.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() {
        // Assume IE7 is OK.
        if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) || (event && !/(background|src)/.test(event.propertyName))) {
            return;
        }

        var bgImg = currentStyle.backgroundImage || style.backgroundImage;

        if (tagName == 'IMG') {
            if ((/\.png$/i).test(src)) {
                if (currentStyle.width == 'auto' && currentStyle.height == 'auto') {
                    style.width = offsetWidth + 'px';
                }
                filt(src, 'scale');
                src = blankImg;
            } else if (src.indexOf(blankImg) < 0) {
                filt();
            }
        } else if (bgImg && bgImg != 'none') {
            if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i)) {
                var s = RegExp.$1;
                if (currentStyle.width == 'auto' && currentStyle.height == 'auto') {
                    style.width = offsetWidth + 'px';
                }
                style.backgroundImage = 'none';
                filt(s, 'crop');
               
                // IE link fix.
                for (var n = 0; n < childNodes.length; n++) {
                    if (childNodes[n].style) {
                        childNodes[n].style.position = 'relative';
                    }
                }
                
            } else {
                filt();
            }
        }
    }
    
    doFix();
    
</script>
</public:component>
