/* SVN: $Id: jquery.columns2.js 21 2011-02-06 10:20:27Z brother79 $*/
(function($){
	$.fn.columns2 = function(options){
		options = $.extend({
	        count: 0,
	        blockClass: 'block',
	        columnClass: 'col',
	        columnWidth:0,
	        h0:100,
	        dh:0
		},options);
		var len=0;
		if (!options.columnWidth) {
			options.columnWidth=$(this).children("."+options.blockClass).width();
		}
		if (!options.count) {
			options.count = $(this).width()/options.columnWidth; 
		}
		
		var columns = [];
		var heights = [];
		var last = [];
		for(var i=0;i<options.count;i++) {
			columns[i] = $("<div class='"+options.columnClass+"'></div>").css({width:options.columnWidth, float:'left'});
			heights[i] = 0;
			this.append(columns[i]);
		}		
		this.children("."+options.blockClass).each(function(i, e){
			var mi=0;
			$.each(heights, function(i,h){if (h<heights[mi]){mi=i;}});
			heights[mi]+=$(e).height()+options.dh
			columns[mi].append($(e));			
			last[mi] = $(e);
		});
		mh=0;
		$.each(columns, function(i,e){if ($(e).height()>mh){mh=$(e).height();}});
		$.each(columns, function(i,e){
			var ee=$(e).find('.'+options.blockClass+':last');
			var dh = mh-$(columns[i]).height();
			ee=ee.height(ee.height()+dh).children();
			ee.height(ee.height()+dh);
		});
	
		this.append('<div style="clear:both;"></div>');
		return this;
	};
})(jQuery);

