(function($){
	$.fn.unfold = function(options){
		var defaults = {
			MIN_COLUMNS:3,
			COL_WIDTH : 295,
			GUTTER_WIDTH : 15,
			WIDTHS: [0,295,525,795],
			itemtag: 'table',
			zerox: 15,
			zeroy: 257
		}
		var options = $.extend(defaults, options);
		
		var $cont = $(this);
		
		$(window).bind('resize', function(){
			rearrange();
		});
		
		return this.each(function(){
			//alert('comienza en '+$cont.html());
			rearrange();
		});
		function rearrange(){
			var $items_inside = $cont.find(options.itemtag).length;
			var columns = Math.max(options.MIN_COLUMNS, parseInt($('body').innerWidth() / (options.COL_WIDTH+options.GUTTER_WIDTH)));
			//console.log("columns: "+columns); 
			
			maxy = new Array();
			for (x=0; x < columns; x++) {
				maxy[x] = 0;
			}
			
			$cont.find(options.itemtag).each(function(i) {
				var positionminus, thisitem = 0;
				for (x=0; x < columns; x++) {
					if(maxy[x] < maxy[thisitem]){
						thisitem = x;
					}
				}
				var posy = maxy[thisitem];
				
				setposition( $(this),
				thisitem*(options.COL_WIDTH + options.GUTTER_WIDTH) + options.zerox+"px",
				posy + options.zeroy+"px");
				maxy[thisitem] += $(this).outerHeight();
			});
		};
		function setposition($element,$left, $top){
			$element.css('position','absolute')
						.css('left', $left)
						.css('top', $top);
		};
	};
})(jQuery);
