V.T.
I don't know how enviornmentally friendly it is, but on stains I use Baby Oxy Clean powder. I just wet the stain, sprinkle some powder on it, rub it in with my fingers and throw it in the wash. It gets almost everything out. Only on the really tough stains do I have to repeat the process more than once. I've had good luck with Seventh Generation dish soap, maybe you can try their laundry soap. I stick with Tide Free.