var c="abcdfghjklmnpqrstvwxyz";
var v="aeiou";
var n="0123456789";
var s="!@#$%^&*()-+";

function makeRand(max) {
	return Math.floor(Math.random()*max);
}

function generatePw() {
	var len=document.getElementById("len").value;
	var uc=document.getElementById("c").checked;
	var o="";
	if (len > 25)
	 len = 25;
	if (document.getElementById("v").checked) o+=v+v+v;
	if (document.getElementById("n").checked) o+=n+v;  
	if (document.getElementById("s").checked) o+=s+v; 
	if (""==o) o=v;

	var pw="";
	var p =2;
	for (var i=0; i<len; i++) {
		switch (i%p) {
		case 0:
			if (uc) {
				pw+=c.substr(makeRand(21), 1);
				break;
			}
		default:
			pw+=o.substr(makeRand(o.length), 1);
			break;
		}
	}

	return pw;
}

function checkPW(pw, len)
{
	var c_pattern = /[abcdfghjklmnpqrstvwxyz]/g;
	var v_pattern = /[aeiou]/g;
	var n_pattern = /[0123456789]/g;
	var s_pattern = /[!@#$%^&*()-+]/g;
	var base = 0;
	var flops = 30000000;
	var einheit = "Jahren";
	if (c_pattern.test(pw))
		base = 22;
	if (v_pattern.test(pw))
		base += 5	
	if (n_pattern.test(pw))
		base += 10;
	if (v_pattern.test(pw))
		base += 12;
	var time = Math.pow(base, len);
	var val = Math.round((time / flops / 60 / 60 / 24 / 365),0);		
	if (val >= 100) 
	{
		val = Math.round((time / flops / 60 / 60 / 24 / 365 /100),0);
		einheit = "Jahrhunderten";
	}
	if (val >= 1000) 
	{
		val = Math.round((time / flops / 60 / 60 / 24 / 365 /1000),0);
		einheit = "Jahrtausenden";
	}
	if (val >= 1000000) 
	{
		val = Math.round((time / flops / 60 / 60 / 24 / 365 /1000000),0);
		einheit = "Millionen Jahren";
	}
	if (val >= 1000000000) 
	{
		val = Math.round((time / flops / 60 / 60 / 24 / 365 /1000000),0);
		einheit = "Milliarden Jahren";
	}
	if (val >= 1000000000000) 
	{
		val = Math.round((time / flops / 60 / 60 / 24 / 365 /1000000000),0);
		einheit = "Billionen Jahren";
	}
	if (val >= 1000000000000000) 
	{
		val = Math.round((time / flops / 60 / 60 / 24 / 365 /1000000000000),0);
		einheit = "Billiarden Jahren";
	}
	if (val <= 0) 
	{
		val = Math.round((time / flops / 60 / 60 / 24 / 30),0);
		einheit = "Monaten";
	}
	if (val <= 0) 
	{
		val = Math.round((time / flops / 60 / 60 / 24),0);
		einheit = "Tagen";
	}
	if (val <= 0) 
	{
		val = Math.round((time / flops / 60 / 60),0);
		einheit = "Stunden";
	}
	if (val <= 0) 
	{
		val = Math.round((time / flops / 60 ),0);
		einheit = "Minuten";
	}
	if (val <= 0) 
	{
		val = Math.round((time / flops ),0);
		einheit = "Sekunden";
	}
	if (val <= 0) 
	{
		val = Math.round((time / flops * 1000),0);
		einheit = "Millisekunden";
	}
	if (val <= 0) 
	{
		val = Math.round((time / flops * 1000000),0);
		einheit = "Mikrosekunden";
	}
	val = val + " " + einheit;
	return val;
}

function makePw() {
	var out = "<table><tr><th>Passwort</th><th>knackbar in</th></tr>";
	var passwd = "";
	var time = 0;
	for (var i=0; i<10; i++) {
		passwd = generatePw();
		time = checkPW(passwd,passwd.length);
		out+='<tr><td>'+passwd+'</td><td class="tr">' +time+'</td></tr>'+'\n';
	}
			out=out.replace(/\s+$/, '');
			$('#password').html(out);
}
