voting: ajax abstract