

jQuery.fn.supersleight = function(settings) {
	settings = jQuery.extend({
		imgs: true,
		backgrounds: true,
		shim: 'images/blank.gif',
		apply_positioning: true
	}, settings);
	
	return this.each(function(){
    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]')){
        if (self.width()==0 || !self.get(0).complete) {
          self.one('load', function(){
            var self = $(this);
            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);
          });
        } else {
          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');
      };
    });
	});
};

$(document).ready(function(){
  if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7 && parseInt(jQuery.browser.version, 10) > 4) {
    $('input[type="text"]').addClass('ietext');    
    $('input[type="submit"]').addClass('iesubmit');
    $('body').supersleight((typeof(window['ie6config']) == "undefined") ? {} : ie6config);
  }
});
