$(document).ready(function() {
    $('table.split').each(function() {
		var colsDisplayed = 0;
        var originalTable = $(this).hide();
        var maxWidth = (originalTable.css('width') ? originalTable.width() : originalTable.parent().width());
		if (maxWidth > originalTable.parent().width()) maxWidth = originalTable.parent().width();
        originalTable.css('width', 'auto');
        var lastTable = originalTable;

		while (colsDisplayed < originalTable.find('tbody > tr:eq(0) > *:not(:first-child)').length) {
			var table = originalTable.clone().removeAttr('id').addClass(originalTable.attr('id')+'-clone');
            table.find('*').removeAttr('id');
            lastTable.after(table);
            lastTable = table;
            
            table.find('thead > tr, tbody > tr, tfoot > tr').find('> *:not(:first-child):lt('+colsDisplayed+')').remove();
            while (table.find('tbody > tr:eq(0) > *:not(:first-child)').length > 1 && table.width() > maxWidth) {
                table.find('thead > tr, tbody > tr, tfoot > tr').find('> *:not(:first-child):last-child').remove();
            }
            table.find('thead > tr > *:first-child, tbody > tr > *:first-child, tfoot > tr > *:first-child').addClass('first');
            table.find('thead > tr > *:last-child, tbody > tr > *:last-child, tfoot > tr > *:last-child').addClass('last');
            colsDisplayed += table.find('tbody > tr:eq(0) > *:not(:first-child)').length;
            
            table.css('width', maxWidth+'px').show();
        }
        $('table.'+originalTable.attr('id')+'-clone:gt(0) caption').remove();
    });
});

