(function($){

	$.fn.equaliseHeights = function(){
		var heights = {};
		var maxHeight = 0;
		$(this).each(function(){
			var $t = $(this);
			var h = $t.outerHeight(1);
			heights[$t.attr('id')] = h;
			maxHeight = h>maxHeight?h:maxHeight;
		});
		
		return $(this).each(function(){
			var $t = $(this);
			var dH = maxHeight - heights[$t.attr('id')];
			var $c = $($t.children('[class=inner]'));
			var h;
			if($c.size() === 1){
				h = $c.height();
				$c.height(h + dH);
			}
			else{
				h = $t.height();
				$t.height(h + dH);
			}
		});
	};
	
	$.fn.equaliseWidths = function(){
		var widths = {};
		var maxWidth = 0;
		$(this).each(function(){
			var $t = $(this);
			var h = $t.outerWidth(1);
			widths[$t.attr('id')] = h;
			maxWidth = h>maxWidth?h:maxWidth;
		});
		
		return $(this).each(function(){
			var $t = $(this);
			var dH = maxWidth - widths[$t.attr('id')];
			var $c = $($t.children('[class=inner]'));
			var h;
			if($c.size() === 1){
				h = $c.width();
				$c.width(h + dH);
			}
			else{
				h = $t.width();
				$t.width(h + dH);
			}
		});
	};
	
	$.fn.expand = function(){
		var $t = $(this);
		var h = $t.outerHeight();
		var dH = 0;		
		$t.children().each(function(){
			var $c = $(this);			
			var tmpH = $c.outerHeight(1);
			var top = $c.position().top;
			dH = tmpH+top>h+dH?tmpH+top-h:dH;			
		});
		return $t.height(h+dH);
	};

})(jQuery);
