function fixPng() {
    if (!document.all ||window.opera)          { return; } // No IE
    if (typeof(XMLHttpRequest) != 'undefined') { return; } // IE 7 or above
    var reS = /\.png$/i;               // guess PNG-images
    var reA = /(^|\s)nopngfix(\s|$)/i; // check avoiding className
    var reF = /(^|\s)dopngfix(\s|$)/i; // check forcing className
    var els = document.images;
    for (var i=0; i<els.length; i++) {
        if (els[i].isPngFixed)                                    { continue; } // has already been fixed
        if (!reS.test(els[i].src) && !reF.test(els[i].className)) { continue; } // apparently no PNG or force fix
        if (reA.test(els[i].className))                           { continue; } // author wants to avoid fix
        var png  = document.createElement('pngfix');
        var gif  = document.createElement('pngfix');
        var cont = els[i].parentNode;
        png.style.display = 'inline-block';
        png.style.width   = els[i].offsetWidth+'px';
        png.style.height  = els[i].offsetHeight+'px';
        png.style.filter  = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+els[i].src+'", sizingMethod="scale")';
        gif.style.width   = els[i].offsetWidth+'px';
        gif.style.height  = els[i].offsetHeight+'px';
        gif.style.background = 'url('+location.protocol+'//img.ui-portal.de/p.gif)';
        if (cont.nodeName.toLowerCase()=='a') {
            try {
                png.style.cursor = 'pointer'; // IE 6.0
            } catch(e) {
                png.style.cursor = 'hand';    // IE 5.5
            }
        }
        els[i].style.visibility = 'hidden';
        var events = ['onmouseover', 'onmouseout', 'onclick', 'ondblclick'];
        for (var j=0; j<events.length; j++) {
            if (els[i][events[j]]) { png[events[j]] = els[i][events[j]]; }
        }
        png.appendChild(gif);
        cont.insertBefore(png, els[i]);
        gif.appendChild(els[i]);
        els[i].isPngFixed = true;
    }
}

window.onload = function(o) { return function() {
    if (o) { o(); }
    fixPng();
}}(window.onload);

