Wade Elliott struck a stoppage-time equaliser as Birmingham earned a 1-1 draw with Charlton at The Valley.