(function($) {		
	$.fn.tpDivBg = function(params) {
		var settings = {
			transparent : false,
			image : "background.png",
			edgeWidths : {
				top : 10,
				right : 10,
				bottom : 10,
				left : 10
			}
		}
		
		if(params) {
			$.extend(settings, params);
		}

		var ie6 = ($.browser.msie && parseInt($.browser.version) < 7);

		return this.each(function() {
			$content = $(this);
			$content.addClass('content');
			$content.wrapInner('<div />');		
			$padding = $content.find('div:first');
			$padding.addClass('padding');			
			$content.wrap('<div />');
			$dialog = $content.parent();
			$dialog.addClass('dialog');
			$content.prepend('<div />');
			$t = $content.find('div:first');
			$t.addClass('t');
			$dialog.append('<div />');
			$b = $dialog.find('div:last');
			$b.addClass('b');
			$b.append('<div />');	
			$bdiv = $b.find('div:first');
			$bdiv.addClass('bdiv');
 
			var ew = settings.edgeWidths;

			var pt = $content.css('padding-top');
			var pr = $content.css('padding-right');
			var pb = $content.css('padding-bottom');
			var pl = $content.css('padding-left');

			$padding.css({
				'padding-top' : pt,
				'padding-right' : pr,
				'padding-bottom' : pb,
				'padding-left' : pl
			});

			var paddingTop = $content.css('padding-top');
			var paddingRight = $content.css('padding-right');
			var paddingBottom = $content.css('padding-bottom');
			var paddingLeft = $content.css('padding-left');

			$content.css({
				'padding' : '0px'
			});


			$dialog.css({
				'position' : 'relative',
				'z-index' : 1,
				'margin-left' : settings.edgeWidths.left,
				'width' : $content.innerWidth() + ew.left + ew.right,
				'float' : $content.css('float')
			});
			
			var css = {
				'background' : ((settings.transparent && !ie6) ? 'transparent ' : '') 
				+ 'url('+ settings.image +') no-repeat top right'
			};
			
			$content.css(css);
			$t.css(css);
			$b.css(css);
			$bdiv.css(css);
			
			$content.css({
				'margin' : 0,
				'float' : 'none',
				'border' : 'none',
				'background-color' : 'none',
				'position' : 'relative',
				'zoom' : '1',
				'padding' : '0px '+ (ew.left + ew.right) +'px 0px 0px'
			});
			
			if(ie6) $content.css({'overflow-y' : 'hidden'});
				
			$t.css({
				'position' : 'absolute',
				'left' : '0px',
				'top' : '0px',
				'width' : ew.left + 'px',
				'margin-left' : -ew.left + 'px',
				'height' : '100%',
				'background-position' : 'top left'
			});

			if(ie6) $t.css({'height' : '1600px'});
			
			$b.css({
				'position' : 'relative',
				'width' : '100%'
			});
			
			var css = {
				'height' : ew.bottom + 'px',
				'font-size' : '1px'				
			};
			
			$b.css(css);
			$bdiv.css(css);
						
			$b.css({
				'background-position' : 'bottom right'
			});
			
			$bdiv.css({
				'position' : 'relative',
				'width' : ew.left + 'px',
				'margin-left' : -ew.left + 'px',
				'background-position' : 'bottom left'				
			});

			var hPad = parseInt(pl) + parseInt(pr);
			var vPad = parseInt(pt) + parseInt(pb);
			 
			$content.css({'width' : '+=' + hPad});
			$dialog.css({'width' : '+=' + hPad});
			
			var cHeight = $content.innerHeight();
			$content.css({'height' : (cHeight + vPad) + 'px'});
		});		
	}
})(jQuery);
