Hello guys

I need a great help from you , php , mysql gurus . I want to build a membership system which has the following features.

A login Page : A page which will have a from with two fields , a username and password field where users can write their username and password.

A registration Page : A page which new users will be able to sign up . The information filled into the form should be inserted into the database but the new user will not be able to login unless the admin activates his account.

Forgot Password Function : This will be the page and form which will be used by the users for retrieving password. A username must be inserted into the form then if that username is found to be in the data base then the password is sent to the email which is in the profile of that user.

Edit Password : This page will let users change their current password.

Edit Profile :
This page will let users edit their profile .

Private Messaging : This page will let users send PMs to them selves . Also there will be a link on every members page which will be something like this "Private Messages(o new) .

Discussion Threads : This page will let usres start new threads or answers to a certain thread .This section and the PM section is more like a forum but a little restricted to certain users. No category or forum is necessary at the moment but just to be able to post new threads and answers to them . Also when the user posts the thread or participates in a discussion just like the forums the following is written
Name of user
Date Joined
Posts Made
All of their values will be retrieved from the data base.

Admin Account : This will be the account of the admin. It will be more like the members accounts except he must be able to activate new users , edit their profiles or passwords, edit threads, posts, or any other information which any user posts.

No direct access to pages : Whenever a user or a visitor tries to visit a direct url and is not singed in , then the login form should be displayed telling the current visitor to login in because the session has expired.Also I want to keep all the information from the search engines.

When the normal lmembrs login successfully , they will see their own page which will have the following links.

Welcome [ here the name of the username will be displayed ]

Edit Your Password Edit Your Profile Private Messages(0 new) Discussion Threads Logout.

At the time being those are the features which I want the membership system to have. I really need a quck help and I really appreciate it a lot . I really need to get this thing up and running ASAP!

Also if you know a certain script which will do that then please give me the link of where to download it even though I rather have a custom system working like that.
Thank You All,
Looking forward to your answers and help.