
jQuery.fn.it = function() {
		
	// You get coal for Christmas, IE6
	if ($.browser.msie && $.browser.version.substr(0, 2) === '6.') {
		return this;
	}
	
	// Okay, now that the kids have gone to bed...
	return this.each(function() {
		
		// Get image
		var img = $(this);
		var width = img.width() + 7 + 7;
		var height = img.height() + 3 + 9;
		
		// Add wrapper
		img.wrap('<span class="it_wrapper"></span>');
		var wrapper = img.closest('.it_wrapper');
		
		// Alter wrapper
		function parseMargin(string) {
			if (string === 'auto') {
				return 0;
			}
			return parseInt(string + 0);
		}
		wrapper.css('width', width);
		wrapper.css('height', height);
		wrapper.css('margin-top', (parseMargin(img.css('margin-top')) - 3));
		wrapper.css('margin-right', (parseMargin(img.css('margin-right')) - 7));
		wrapper.css('margin-bottom', (parseMargin(img.css('margin-bottom')) - 9));
		wrapper.css('margin-left', (parseMargin(img.css('margin-left')) - 7));
		
		// Add supporting elements
		wrapper
		.prepend('<span class="it_tr"></span>')
		.prepend('<span class="it_br"></span>')
		.prepend('<span class="it_bl"></span>')
		.prepend('<span class="it_tl"></span>')
		.prepend('<span class="it_t"></span>')
		.prepend('<span class="it_r"></span>')
		.prepend('<span class="it_b"></span>')
		.prepend('<span class="it_l"></span>');
		
		// Alter supporting elements
		wrapper.find('.it_t').css('width', width);
		wrapper.find('.it_b').css('width', width);
		wrapper.find('.it_r').css('height', height);
		wrapper.find('.it_l').css('height', height);
		
		// Add overlay line
		wrapper.append('<span class="it_overline"></span>');
		var overlayLine = wrapper.find('.it_overline');
		overlayLine.css('width', img.width());
		overlayLine.css('height', 100);
		
		// Add overlay line
		wrapper.append('<span class="it_over"></span>');
		var overlay = wrapper.find('.it_over');
		overlay.css('width', img.width());
		overlay.css('height', img.height());
	});
};

