From what I understand, "who" and "whom" cause quite a bit of confusion and I'm certainly no expert on the matter.
"Who did you buy ... for yesterday?" is much more commonly heard than "Whom did you buy ... for yesterday?" but the latter is grammatically correct.
Also, "For whom did you buy ... yesterday?" is perhaps more commonly heard than the latter sentence above, but that doesn't mean the latter sentence above is wrong.
(The latter sentence above simply has a different word order.)
In any case, "Whom did you buy ... for yesterday?" is defnitely not
American English slang.
Here's just one of many webpages that tries to explain the usage of "who" and "whom." I can't vouch for its accuracy, however.http://homeworktips.about.com/od/homewo ... a/whom.htm
Happy whoing and whoming,