(function($){
	$.fn.layoutRebuild = function(options) {
		var opts = $.extend($.fn.layoutRebuild.defaults,options);
		var $this = findRoot($(this));
		var $panel = $('.panel', $this);
		
		function findRoot(o){
			if(o.attr('class') == 'gallery'){
				return o;
			}
			o = findRoot(o.parent());
			return o;
		}
		
		function appendCorner(){
			var tl = $('<div></div>').addClass('overlay').addClass('tl').appendTo($panel);
			var tr = $('<div></div>').addClass('overlay').addClass('tr').appendTo($panel);
			var bl = $('<div></div>').addClass('overlay').addClass('bl').appendTo($panel);
			var br = $('<div></div>').addClass('overlay').addClass('br').appendTo($panel);
			
			//For IE6
			if($.browser.msie && $.browser.version.substr(0,1)=='6'){
				bl.css('bottom','-1px');
				br.css('bottom','-1px');
			}
		}
		
		function appendItems(){
			var $imgWrap = $('<div class="imgWrap"></div>').width($panel.width()).height($panel.height());
			var rsimg = $('.panel img', $this).wrap($imgWrap);
			if(opts.image_resize)
				rsimg.width($panel.width()).height($panel.height());
		}
		
		return this.each(function() {
			jQuery.event.add( window,"load",function(){
				appendItems();
				
				//Text overlay fix.
				$('.panel-overlay', $this).width($panel.width() - 30).css({left:'10px',bottom:'10px'});
				$('.overlay-background', $this).width($panel.width() - 20).css({left:'10px',bottom:'10px'});
				
				appendCorner();
			});
			
		});
	};
	
	$.fn.layoutRebuild.defaults = {
		image_resize:false
	};
})(jQuery);
