<form>
Новый пароль: <input type="text" id='id_pass' size=34><br/>
Длина пароля: <input type="button" value="-" onclick="javascript:decrement()" id='id_decr' class='button'>
<input type="text" id='id_num' value='8' size=2 disabled>
<input type="button" value="+" onclick="javascript:increment()" id='id_incr' class='button'><br/>
<input type="checkbox" id="id_digits" onclick="javascript:generate();" checked>Цифры<br/>
<input type="checkbox" id="id_lower" onclick="javascript:generate();" checked>Нижний регистр<br/>
<input type="checkbox" id="id_upper" onclick="javascript:generate();" checked>Верхний регистр<br/>
<input type="checkbox" id="id_special" onclick="javascript:generate();">Специальные символы<br/>
<input type="button" value="Новый" onclick="javascript:generate();">
</form>
<script language="JavaScript">
<!--
function decrement()
{
num=document.getElementById('id_num');
if(--num.value<=1)
{
num.value=1;
document.getElementById('id_decr').disabled=true;
}
document.getElementById('id_incr').disabled=false;
generate();
}
function increment()
{
num=document.getElementById('id_num');
if(++num.value>=32)
{
num.value=32;
document.getElementById('id_incr').disabled=true;
}
document.getElementById('id_decr').disabled=false;
generate();
}
function generate()
{
var lowercase='qwertyuiopasdfghjklzxcvbnm';
var uppercase=lowercase.toUpperCase();
var digits='0123456789';
var special='!@$&*()_+;:?';
var chars='';
if(document.getElementById('id_digits').checked)chars+=digits+digits;//дабы увеличить вероятность появления цифры
if(document.getElementById('id_lower').checked)chars+=lowercase;
if(document.getElementById('id_upper').checked)chars+=uppercase;
if(document.getElementById('id_special').checked)chars+=chars+special;//дабы уменьшить вероятность появления спецсимвола
var size=chars.length;
var max = document.getElementById('id_num').value;
var password='';
while(max--)
password+=chars.charAt(Math.random()*size);
document.getElementById('id_pass').value=password;
}
generate();
//-->
</script>