function fixPNG(el) {
        try {
                if (window.ie6){
                        el = $(el);
                        if (!el) return el;
                        if (el.getTag() == "img" && el.getProperty('src').test(".png")) {
                                var vis = 1;//el.isVisible();
                                try { //safari sometimes crashes here, so catch it
                                        dim = el.getSize();
                                }catch(e){}
                                if(!vis){
                                        var before = {};
                                        //use this method instead of getStyles 
                                        ['visibility', 'display', 'position'].each(function(style){
                                                before[style] = this.style[style]||'';
                                        }, this);
                                        //this.getStyles('visibility', 'display', 'position');
                                        this.setStyles({
                                                visibility: 'hidden',
                                                display: 'block',
                                                position:'absolute'
                                        });
                                        dim = el.getSize(); //works now, because the display isn't none
                                        this.setStyles(before); //put it back where it was
                                        el.hide();
                                }
                                var replacement = new Element('span', {
                                        id:(el.id)?el.id:'',
                                        'class':(el.className)?el.className:'',
                                        title:(el.title)?el.title:(el.alt)?el.alt:'',
                                        styles: {
                                                display: vis?'inline-block':'none',
                                                width: dim.size.x+'px',
                                                height: dim.size.y+'px',
                                                filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader (src='" 
                                                        + el.src + "', sizingMethod='scale');"
                                        },
                                        src: el.src
                                });
                                if(el.style.cssText) {
                                        try {
                                                var styles = {};
                                                var s = el.style.cssText.split(';');
                                                s.each(function(style){
                                                        var n = style.split(':');
                                                        styles[n[0]] = n[1];
                                                });
                                                replacement.setStyle(styles);
                                        } catch(e){ /*dbug.log('fixPNG1: ', e)*/}
                                }
                                if(replacement.cloneEvents) replacement.cloneEvents(el);
                                el.replaceWith(replacement);
                        } else if (el.getTag() != "img") {
                                var imgURL = el.getStyle('background-image');
                                if (imgURL.test(/\((.+)\)/)){
                                        el.setStyles({
                                                background: '',
                                                filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='crop', src='" + imgURL.match(/\(\"(.+)\"\)/)[1] + "')"
                                        });
                                };
                        }
                }
        } catch(e) {/*dbug.log('fixPNG2: ', e)*/}
};
if(window.ie6) window.addEvent('load', function(){$$('.fixPNG').each(fixPNG)});
