function fnLoadPngs()
{
    var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
    var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);

    for (var i = document.all.length - 1, obj = null; (obj = document.all[i]); i--)
    {
        if (itsAllGood &&
            obj.currentStyle.backgroundImage.match(/\.png/i) != null)
        {
            fnFixBgPng(obj);
            //obj.attachEvent("onpropertychange", fnPropertyChanged);
            obj.onpropertychange = fnPropertyChanged;
        }
        else if (itsAllGood &&
                 obj.src &&
                 obj.src.match(/\.png/i) != null)
        {
            fnFixSrcPng(obj);
        }
    }
}

function fnPropertyChanged()
{
    if (window.event.propertyName == "style.backgroundImage")
    {
        var el = window.event.srcElement;

        if (el.currentStyle.backgroundImage.match(/\.png/i))
        {
            var bg	= el.currentStyle.backgroundImage;
            var src = bg.substring(5, bg.length - 2);

            if (el.filters["DXImageTransform.Microsoft.AlphaImageLoader"])
            {
                el.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src;
            }
            else
            {
                el.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
            }

            el.style.backgroundImage = "url('http://fmp-media.de/tpl_default_de.utf-8/img/x.gif')";
        }
        else if (el.filters.length > 0 &&
                el.currentStyle.backgroundImage.match(/x\.gif/) == null)
        {
            el.style.filter = '';
        }
    }
}

function fnFixBgPng(obj)
{
    var bg	= obj.currentStyle.backgroundImage;
    var src = bg.substring(5, bg.length-2);

    obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
    obj.style.backgroundImage = "url('http://fmp-media.de/tpl_default_de.utf-8/img/t.gif')";
}

function fnFixSrcPng(img)
{
    var src = img.src;
    img.style.width = img.width + "px";
    img.style.height = img.height + "px";
    img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
    img.src = "http://fmp-media.de/tpl_default_de.utf-8/img/t.gif";
}

function swapBgImage(elm, src)
{
    elm.style.backgroundImage = 'url(' + src + ')';
}

function pngIEPatch_init()
{
    if (navigator.platform == "Win32" &&
        navigator.appName == "Microsoft Internet Explorer" &&
        window.attachEvent)
    {
        fnLoadPngs();
    }
}
