Ok, you can just remove the validations on the password field on your confirm pages. The validations that you will need to remove are just the spry validations, they will look like this in your page:
<script type="text/javascript">
var sprypassword1 = new Spry.Widget.ValidationPassword("sprypassword1", {validateOn:["blur"], minAlphaChars:1, minNumbers:1, minChars:6});
var spryconfirm1 = new Spry.Widget.ValidationConfirm("spryconfirm1", "UserPassword2", {validateOn:["blur"]});
</script>
This will allow the user to enter a password and still have the regular validation occur if a password is entered. If a password is not entered it will not stop the user from proceeding.
The next part of this would be to create a new random password for the user and set that for them. You can use this code to create a new random password for the user:
<?php
if (!session_id()) session_start();
if(($_SERVER["REQUEST_METHOD"] == "POST") && (isset($_SERVER["HTTP_REFERER"]) && strpos(urldecode($_SERVER["HTTP_REFERER"]), urldecode($_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"])) > 0) && isset($_POST) && !(isset($_POST["UserPassword"]))) {
$_SESSION["NewUserRandomPassword"] = "".(WA_RandomPassword(20, true, true, true, "")) ."";
}
?>
The final part would be to alter the code that is inserting or updating the user, this code has a line in it that sets the value of the user password. This part will need to be updated from this:
((isset($_POST["email"]))?$_POST["UserPassword"]:$row_WAATKusers['UserPassword'])
To this:
((isset($_SESSION["NewUserRandomPassword"]))?$_SESSION["NewUserRandomPassword"]:((isset($_POST["UserPassword"]))?$_POST["UserPassword"]:$row_WAATKusers['UserPassword']))
This is kind of a custom work around for this and it may not be very easy to implement but these steps should get you the result you are looking for. Before you attempt any part of this you should make sure to backup your confirm page so that you can get back to it if you need to. Let me know if you have any problems with any of this and I will help you with what I can.