jQuery.fn.supersleight = function(settings) {
	settings = jQuery.extend({
		imgs: true,
		backgrounds: true,
		shim: 'x.gif',
		apply_positioning: true
	}, settings);
	
	return this.each(function(){
		jQuery(this).each(function(i,obj) {
			var self = jQuery(obj);
			// background pngs
			if (settings.backgrounds && self.css('background-image').match(/\.png/i) !== null) {
				var bg = self.css('background-image');
				var src = bg.substring(5,bg.length-2);
				var mode = (self.css('background-repeat') == 'no-repeat' ? 'crop' : 'scale');
				var styles = {
					'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')",
					'background-image': 'url('+settings.shim+')'
				};
				self.css(styles);
			};
			// image elements
			if (settings.imgs && self.is('img[src$=png]')){
				var styles = {
					'width': self.width() + 'px',
					'height': self.height() + 'px',
					'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + self.attr('src') + "', sizingMethod='scale')"
				};
				self.css(styles).attr('src', settings.shim);
			};
			// apply position to 'active' elements
			if (settings.apply_positioning && self.is('a, input') && (self.css('position') === '' || self.css('position') == 'static')){
				self.css('position', 'relative');
			};
		});
	});
};
