Element.implement({
    superSleight: function(settings) {
        var settings = $H(settings);
        settings.extend({
            imgs: true,
            backgrounds: true,
            shim: '_images/pixel.gif',
            apply_positioning: true
        });

            if (Browser.Engine.trident && Browser.Engine.version < 7 && Browser.Engine.version >= 4) {
                $(this).getElements('*').each(function(elem) {
                    // background pngs
                    if (settings.backgrounds && elem.getStyle('background-image').match(/\.png/i) !== null) {
                        var bg = elem.getStyle('background-image');
                        var src = bg.substring(5, bg.length - 2);
                        var mode = (elem.getStyle('background-repeat') == 'no-repeat' ? 'crop': 'scale');
                        var styles = {
                            'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')",
                            'background-image': 'url(' + settings.shim + ')'
                        };
                        elem.setStyles(styles);
                    }

                    // image elements
                    if (settings.imgs && elem.match('img[src$=png]')) {
                        var elem_size = elem.getSize();
                        var styles = {
                            'width': elem_size.x + 'px',
                            'height': elem_size.y + 'px',
                            'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + elem.getProperty('src') + "', sizingMethod='scale')"
                        };
                        elem.setStyles(styles).setProperty('src', settings.shim);
                    }
                    // apply position to 'active' elements
                    if (settings.applyPositioning && ['a', 'input'].contains(elem.get('tag')) && elem.getStyle('position') === '') {
                        elem.setStyle('position', 'relative');
                    }
                });
            }
    }
});
