if(jQuery) (function($) {

  $.fn.column_list = function(callerSettings) {

    var self = this;

		this.settings = $.extend({
		  columns: 3,
		  fill_in_remaining: true
		}, callerSettings);

    $(this).each(function() {
    
  		var cells = $(this).find('li').map(function(index, val) {
		  
  		  var cell = "<td>" + $(this).html() + "</td>";

  		  if ((index + 1) % self.settings.columns == 0) {
  		    cell += "</tr><tr>";
  		  }

  		  return cell;

  		});

  		var remaining_cells = "";

  		if (self.settings.fill_in_remaining) {

  		  var remaining_cell_count = self.settings.columns - (cells.length % self.settings.columns);
  		  if (remaining_cell_count != self.settings.columns) {

    		  for (i = 0; i < remaining_cell_count; i++) {
    		    remaining_cells += "<td>&nbsp;</td>";
    		  }
		  
    	  }

  		}

  		$(this).replaceWith("<table class='column_list'><tr>" + cells.get().join("") + remaining_cells + "</tr></table>");

    });
    
    return $(this);

	}

})(jQuery);