added ability to vary password length; added checks to ensure fields are filled in with a value before allowing password generation;