/*
KK: added isClass function and check inside fnFixPng
if the element has a noscalebg class in it then it will not stretch the background to fit the element
KK: added nosleight option (if the element has the nosleight class, it will not be processed)
*/
var SleightByDefault = true; //if false, will only use bgsleight if the class is bgsleight

function isClass(element, sClass) {
    sClassName = element.className;
    re = new RegExp(sClass + "( *|,?|,? *| *,? *| *,?|$)");
    if (!sClassName) return false;
    return re.test(sClassName);
}

var bgsleight    = function() {

    function addLoadEvent(func) {
   
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
            window.onload = func;
        } else {
            window.onload = function() {
                if (oldonload) {
                    oldonload();
                }
                func();
            }
        }
    }
   
    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) {
                if (!SleightByDefault && !isClass(obj, "bgsleight")){
                    break;
                }
                if (SleightByDefault && isClass(obj, "nosleight")){
                    break;
                }
                fnFixPng(obj);
                obj.attachEvent("onpropertychange", fnPropertyChanged);
               
            }
        }
    }

    function fnPropertyChanged() {
        if (window.event.propertyName == "style.backgroundImage") {
            var el = window.event.srcElement;
            if (!el.currentStyle.backgroundImage.match(/x\.gif/i)) {
                var bg    = el.currentStyle.backgroundImage;
                var src = bg.substring(5,bg.length-2);
                el.filters.item(0).src = src;
                el.style.backgroundImage = "url(/images/trans.gif)";
            }
        }
    }

    function fnFixPng(obj) {
        var bg    = obj.currentStyle.backgroundImage;
        var src = bg.substring(5,bg.length-2);
        if (isClass(obj, "noscalebg")){
            var sizeMethod="crop";
        } else {
            var sizeMethod="scale";
        }
        obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='"+sizeMethod+"')";
        obj.style.backgroundImage = "url(/images/trans.gif)";
    }
   
    return {
       
        init: function() {
           
            if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
                addLoadEvent(fnLoadPngs);
            }
           
        }
    }
   
}();

bgsleight.init(); 
