Well, they can legally fire you for failing a drug test, however, if I am not mistaken, they are required by law to allow you to retake. You'd have to double check with your lawyer on this one.

If all is as you say, then you may have grounds for a lawsuit, but again, only your lawyer can really answer that for you.

I'd be pretty pissed off in your position, and I really hope everything gets resolved to your satisfaction. I think they should be required to prove that your marijuana usage is affecting your work.