See http://drupal.org/project/election