John Edwards smites Hillary Clinton, endorses Barack Obama.