Oli,
A biological washing powder, preferably 'coloureds' will do the trick but you will need to let soak so that the enzymes can break the protein bonds.
It is probable that the other smells are because you have soaked the carpet and a bactericide will be required.
Prochems Clensan is quite effective
The urine smell may be a degradation product of the adhesive used to stick the carpet.
It is very important to extract well preferably finishing with a clean water rinse.
Hope this helps,
Doug