(function($) {
	$.fn.fluidGrid = function(settings) {

		// override default settings
		settings = $.extend({}, $.fn.fluidGrid.defaults, settings);

		var pointer = 0;
		var arr = [];
		var columns = Math.max(settings.COLNUMBER, parseInt($(this).parent().innerWidth() / (settings.COLWIDTH + settings.COLMARGIN)));
		var maxHeight = 0;

		$(this).css('position', 'absolute').css('width', settings.COLWIDTH  + 'px');
		$(this).each(function() {
			var tempLeft = (pointer * (settings.COLWIDTH + settings.COLMARGIN));
			$(this).css('left', tempLeft + 'px');

			var tempTop = 0;
			if (arr[pointer]) { tempTop = arr[pointer];	}
			$(this).css('top', tempTop + 'px');

			arr[pointer] = tempTop + $(this).outerHeight() + settings.COLMARGIN;

			maxHeight = (arr[pointer] > maxHeight) ? arr[pointer] : maxHeight;

			pointer++;
			if (pointer === columns) { pointer = 0; }

		});
		$(this).parent().css('height', maxHeight + 'px');

	};

	// default settings
	$.fn.fluidGrid.defaults = {
		COLNUMBER : 3, // Minimum column number.
		COLMARGIN : 10, // Margin (in pixel) between columns/boxes.
		COLWIDTH : 150 // Fixed width of all columns.
	};
})(jQuery);

