(function($) {
  $.extend($.expr[':'], {
    group: jQuery.expr.createPseudo(function(num) {
      return function(elem) {
        if (isNaN(num)) {
          return false;
        }

        return ($(elem).index() - 1) % (num * 2) < num;
      };
    })
  });
})(jQuery);


/******************************************************************************
  :column()
  Vybírá všechny bunky tabulky ve stejném sloupci, v nemž se nachází
  definovaná bunka.
******************************************************************************/
(function($) {
  $.fn.column = function() {
    var $cells = $();
    this.each(function() {
      var $td = $(this).closest('td, th');
      if ($td.length) {
        var colNum = $td[0].cellIndex + 1;
        var $columnCells = $td
          .closest('table')
          .find('td, th')
          .filter(':nth-child(' + colNum + ')');
        $cells = $cells.add($columnCells);
      }
    });
    return this.pushStack($cells);
  };
})(jQuery);