jQuery.fn.colsRender = function(options) {
	var defaults = {
		conElement : 'div', //The container element for the cols.
		childElements : 'div', //The elements you want to put in your cols.
		conClass : 'cols', //The container class.
		clearfixClass: 'clear',
		colClass : 'col', //The column class and prefix for numbering the cols.
		colWidth : 200,
		row : 7, //How many elements in each column.
		conMinimized: true //If the containter should have full or minimize width
	};

	if ($(this).is('ul')) { //Make li default if you use it on an ul-element.
		defaults.childElements = 'li';
	}
	var settings = $.extend({}, defaults, options);
	
	return this.each(function(){
		var thisElement = $(this);
		var thisElementType = thisElement.get(0).tagName;
		
		var childElements = thisElement.find(settings.childElements);
		var nrOfElements = childElements.length; //How many child elements are there.
		var nrOfCols = Math.ceil(nrOfElements/settings.rows); //How many columns will it be.
		
		var container = $('<' + settings.conElement + '/>').insertAfter(thisElement).attr('class', settings.conClass);
		
		var tmpCounter = 0;
		var colElement;
		var conWidth=0;
		childElements.each(function () {
			var listElement = $(this);
			
			if (tmpCounter % settings.row === settings.row-1 || tmpCounter === nrOfElements-1) {
				listElement.addClass('last');	
			}
			
			if (tmpCounter % settings.row === 0) {
				colElement = $('<'+thisElementType+'/>').appendTo(container).attr('class', settings.colClass + ' ' + settings.colClass + '-' + (tmpCounter > 0 ? tmpCounter/settings.row + 1 : 1)).css('width', settings.colWidth);
				conWidth = conWidth + settings.colWidth;
				if(settings.conMinimized) {
					container.css('width', conWidth);
				}
			}
			listElement.appendTo(colElement);
			
			tmpCounter++;
		});
		$('<div />').appendTo(container).attr('class', settings.clearfixClass);
		
		thisElement.remove();
	});
};
