
(function($) {

	jQuery.fn.pukkaPNGFix = function(settings) {

		if(/MSIE 6/.test(navigator.appVersion)) {
			
			settings = jQuery.extend({
				interactiveDescendentsSelector: '> *',
				wrapperClass: 'ie-png-bug-wrapper'
			}, settings);
			
			var elem = document.createElement("div");
			elem.className = settings.wrapperClass;
			elem.style.zoom = 1;
			elem.style.position = 'static';
			elem.style.width = '100%';
			elem.style.height = '100%';
			
			this.each(function() {
				$elem = jQuery(this);
				var cssIMG = $elem.css('background-image');
		
				if(/\.png(.)\)$/.test(cssIMG)) {
					var pngIMG = cssIMG.substring(5, cssIMG.length-2);
					var sizing = $elem.css('background-repeat') == 'no-repeat' ? 'crop' : 'scale';
					elem.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+pngIMG+'",sizingMethod="'+sizing+'")';
					
					jQuery(settings.interactiveDescendentsSelector, $elem).each(function(){
						if(jQuery(this).css('position') != 'absolute')
							this.style.position = 'relative';
					});
					
					var position = $elem.css('position');
					if(position == 'absolute' || position == 'relative') {
						$elem.wrapInner(elem).find('.'+settings.wrapperClass).css({
							paddingTop: $elem.css('padding-top'),
							paddingRight: $elem.css('padding-right'),
							paddingBottom: $elem.css('padding-bottom'),
							paddingLeft: $elem.css('padding-left')
						});
						
						$elem.css({
							backgroundImage: 'none',
							padding: 0
						});
					}
				}
			});
			
		}
		return jQuery(this);
	};

})(jQuery);
