	var large = true;
	var small = false;
	var digit = false;
	var spec = false;
	var plus = true;
	var inter;
	var i;
	
	function random_hash() {
	var iteration = 0;
					var hash = "";
					var random_number;
					var last_number = 0;
					
					var length_hash =  $('#length_hash').val();		
					
					while(iteration < length_hash){

						if(plus){
							var txy = String(jQuery.now());									
							var random = (Math.random() * txy.length);
							var result_t = txy.slice(random, random + 1);
							var top = 0;
						} else {
							result_t = 0;
							top = 10;
						}
								
						random_number = (Math.floor(((Math.random() + result_t ) * 100)) % (84 + top)) + 33;

							if(!spec) {if ((random_number >=33) && (random_number <=47)) { continue; }} //specjalne
							if(!digit) {if ((random_number >=48) && (random_number <=57)) { continue; }} //cyferki
							if ((random_number >=58) && (random_number <=64)) { continue; } //spec2
							if(!large) { if ((random_number >=65) && (random_number <=90)) { continue; }} //large
							if ((random_number >=91) && (random_number <=96)) { continue; } //spec3
							if(!small){if ((random_number >=96) && (random_number <=123)) { continue; }} //small
							if ((random_number >=123) && (random_number <=126)) { continue; } //spec4

							if (last_number == random_number) { continue; };
							last_number = random_number;
						
						iteration++;
						hash += String.fromCharCode(random_number);
					}
					return hash;
	}

		$(document).ready(function(){
	
						$('#list').change(function(){
								if($(this).children('input[name="large"]:checked').val())
									large = true;
								else
									large = false;							
								if($(this).children('input[name="small"]:checked').val())
									small = true;
								else
									small = false;
								if($(this).children('input[name="digit"]:checked').val())
									digit = true;
								else
									digit = false;
								if($(this).children('input[name="spec"]:checked').val())
									spec = true;
								else
									spec = false;
								if($(this).children('input[name="plus"]:checked').val())
									plus = true;
								else
									plus = false;
								return false;
						});
							
							
						$('#start').click(function() {
							i =  $('#many').val();
							inter = setInterval( function(){
								i--;
								hash = random_hash();
								if (i == 0) {
									clearInterval(inter);
								};
      
								$('#result').val( hash );
								$('#result2').val( hash );
							}, 50);
						});	
						
						$('#stop').click(function() {
							clearInterval(inter);				
						});	
		
						$("#block").mousemove(function(e){
							hash = random_hash();
							$('#result').val( hash );
							$('#result2').val( hash );
						}); 
		});
