I too, thought my daughter may be mentally ill..took her to two seperate phsychiatrists. Too bad she was using and their diagnosis don't mean anything! The crazy behavior is totaly in line with addict behavior.
The thing you CAN do for your son is to show him what a healthy functioning person looks like. That would include not tolerating abusive behavior and active addiction, holding boundaries, and following through on whay you say you will do. And all those things are in your best interest too.