var supersleight=function(){

    var root= "content";

    var applyPositioning=true;

    var shim='images/x.gif';

    var shim_pattern=/x\.gif$/i;



    var fnLoadPngs=function(){

        if(root){

            root=document.getElementById(root);

        }else{

            root=document;

        }



        for(var i=root.all.length-1,obj=null;(obj=root.all[i]);i--){

            if(obj.currentStyle.backgroundImage.match(/\.png/i)!==null){

                bg_fnFixPng(obj);

            }



            if(obj.tagName=='IMG'&&obj.src.match(/\.png$/i)!==null){

                el_fnFixPng(obj);

            }



            if(applyPositioning&&(obj.tagName=='A'||obj.tagName=='INPUT')&&obj.style.position===''){

                obj.style.position='relative';

            }

        }

    };



    var bg_fnFixPng=function(obj){

        var mode='scale';

        var bg=obj.currentStyle.backgroundImage;

        var src=bg.substring(5,bg.length-2);



        if(obj.currentStyle.backgroundRepeat=='no-repeat'){

            mode='crop';

        }



        obj.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='"+mode+"')";

        obj.style.backgroundImage='url('+shim+')';

    };



    var el_fnFixPng=function(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=shim;

    };



    var addLoadEvent=function(func){

        var oldonload=window.onload;

        if(typeof window.onload!='function'){

            window.onload=func;

        }else{

            window.onload=function(){

                if(oldonload){

                    oldonload();

                }



                func();

             };

        }

    };



    return{

        init:function(){

            addLoadEvent(fnLoadPngs);

        },

        limitTo:function(el){

            root=el;

        },

        run:function(){

            fnLoadPngs();

        }

    };

}();



supersleight.init();
