Sen. John Ensign admits affair