Want to process node edit in two different ways On every node page there is an edit and submit, you can set when the edit is available and such.

So, what I want to do is this.

When a regular user uses the edit button(which I want to be available for all site users), I want it to open the node and allow someone to directly edit it.  Just like when the owner edits it, it will open everything and allow the user to make changes.  But instead of actually saving the changes to that node, I want it to create a new node that copies the old one and saves this other user's changes.

When a moderator or the creator of the node edits, I want it to edit the node directly and saves the changes to that specific node.

I need to either create two buttons that show up differently on page for certain users, or use the same button but use some form validation technique to check the permissions of who is submitting the form and do the above accordingly.  Are there any ideas?  Any help is greatly appreciated!! Thanks
You can use revisioning module

Revisioning is a module for the configuration of workflows to create, moderate and publish content revisions.

Using this module when you edit a node, a new revision is created and it goes to modaration mode.

For more info check the module page