jQuery.fn.supersleight = function(settings) {

	settings = jQuery.extend({

		imgs: true,

		backgrounds: true,

		shim: '/media/images/x.gif',

		apply_positioning: true

	}, settings);

	

	return this.each(function(){

		if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7 && parseInt(jQuery.browser.version, 10) > 4) {

			jQuery(this).find('*').andSelf().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');

				};

			});

		};

	});

};
