If the second button doesn't actually do a submit, then make it:
<input type="button"> not <input type="submit">
To set the hidden input field *client side* (i.e. avoiding a round trip to the server), you need to use javascript which runs in the client browser. At the moment you are hitting the submit button, sending the form to the server, which then writes out a value for the hidden input field, then you are submitting the form again (hence, two submits).
Cheers
Ken
Microsoft MVP - Windows Server (IIS)
www.adOpenStatic.com