BLIP.Class.create("BLIP.Unit.ChannelList", BLIP.Unit,
	function(config) {
		BLIP.Unit.call(this, config);
	},
	{
		selector : ".ChannelList",

		init : function() {
			this.partitionItems();
		},

		partitionItems : function() {
			var i = 0,
					len = this.domRoot.find("li").length,
					maxPerColumn = Math.floor(len / 3) + (len % 3 ? 1 : 0),
					partial = document.createDocumentFragment(),
					currentColumn = null;

			this.domRoot.find("li").each(function(n, li) {
				if ((n % maxPerColumn) === 0) {
					if (currentColumn) {
						partial.appendChild(currentColumn[0]);
					}
					currentColumn = $("<li class='Column'><ul></ul></li>");
				}

				currentColumn.children("ul").append(li);
			});

			if (currentColumn.find("li").length) {
				partial.appendChild(currentColumn[0]);
			}

			this.domRoot.find("ul.List").html(partial);
		}
	}
);

