Ok so I've managed to resolve this now by doing the following, it's a bit of a fudge but it works well and no JavaScript is involved.
When an end user connects they get placed into a role with a captive portal profile leading them to a web login, the inital role has an authentication role that again has a captive portal profile leading them to a self registration form requesting details, and then after authenticating in self registration they there are placed into an authenticated role wthout captive portal and allowed out the door.
So in essence an end user connects and is presented with a weblogin, after authenticating they are then presented with a self registration form, and then after authenticating with self registration they are free.
Hope this helps for those who had the same question as me and needed to protected thier network via a shared username and password but also required collecting visitor details.
Cheers
Shaun