jQuery.fn.supersleight = function(settings) {
	settings = jQuery.extend({
		imgs: true,
                forece_crop: true,
		backgrounds: true,
		shim: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAACXZwQWcAAAABAAAAAQDHlV/tAAAAAnRSTlMA/1uRIrUAAAAKSURBVAjXY/gPAAEBAQAbtu5WAAAAAElFTkSuQmCC',
		apply_positioning: true
	}, settings);
        
	var bg_fnFixPng = function(obj) {
		var mode = settings['forece_crop'] ? 'crop' : '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('+settings['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 = settings['shim'];
	};
	return this.each(function(){
            try{
		if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7 && parseInt(jQuery.browser.version, 10) > 4) {
			jQuery(this).find('*').andSelf().each(function(i,obj) {
			
                            // background pngs
                            if (settings['backgrounds'] && obj.currentStyle.backgroundImage.match(/\.png/i) !== null) {
                                    bg_fnFixPng(obj);
                            }
                            // image elements
                            if (settings['shim'] && obj.tagName=='IMG' && obj.src.match(/\.png$/i) !== null){
                                    el_fnFixPng(obj);
                            }
                            // apply position to 'active' elements
                            if (settings['apply_positioning'] && (obj.tagName=='A' || obj.tagName=='INPUT') && obj.style.position === ''){
                                    obj.style.position = 'relative';
                            }
			});
		};
             }catch(e){
                   // alert(e.message)
             }
	});
};
