function passstrenght(password){
	//deklaracja zmiennych
	var passpoints = 0;
	var special1 = false;
	var special2 = false;
	var nums = /[0-9]/;
	var chars = /[a-zA-z]/;
	var nums1 = false;
	var nums2 = false;
	var chars1 = false;
	var chars2 = false;
	var shorty = false;
	var same = false;
	var special = new Array('!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '<', '>', '|', '?');
	//sprawdzenie czy hasło ma minimalną długość
	if (password.length < 5) {
		shorty = true;
	}
	//sprawdzenie czy hasło jest dłuższe niż 5 znaków
	if (password.length >= 5 && !shorty) {
		passpoints += 1;
	}
	//sprawdzenie czy hasło jest dłuższe niż 8 znaków
	if (password.length >= 8 && !shorty) {
		passpoints += 1;
	}
	//sprawdzenie czy hasło zawiera conajmniej 2 znaki specjalne
	for (var i = 0; i < password.length && !special2 && !shorty; i++) {
		for (var j = 0; j < special.length; j++) {
			if (password.charAt(i) == special[j]) {
				if (special2 == false) {
					passpoints += 1;
					if (special1 == false) {
						special1 = true;
					}
					else {
						special2 = true;
					}
				}
			}
		}
	}
	//sprawdzenie czy w haśle występują conajmniej 2 cyfry i 2 litery
	for (var i = 0; i < password.length && !shorty; i++) {
		if (!nums2) {
			czy = nums.test(password.charAt(i));
			if (czy && !nums1) {
				nums1 = true;
			}
			if (czy && !nums2) {
				nums2 = true;
			}
		}
		if (!chars2) {
			czy = chars.test(password.charAt(i));
			if (czy && !chars1) {
				chars1 = true;
			}
			if (czy && !chars2) {
				chars2 = true;
			}
		}
	}
	if (nums2 && chars2) {
		passpoints += 1;
	}
	//sprawdzenie czy w haśle wystąpują trzy lub więcej takie same znaki obok siebie
	for (var i = 2; i < password.length && !shorty && !same; i++) {
		if (password.charAt(i - 2) == password.charAt(i - 1) && password.charAt(i - 2) == password.charAt(i) && password.charAt(i - 1) == password.charAt(i)) {
			same = true;
			passpoints -= 1;
		}
	}
	//wyznaczenie siły hasła z ilości passpoints-ów
	if (shorty) {
		return 'Za krótkie!';
	}
	switch (passpoints) {
		case 0:
			return 'Za słabe';
			break;
		case 1:
			return 'Bardzo słabe';
			break;
		case 2:
			return 'Słabe';
			break;
		case 3:
			return 'Średnie';
			break;
		case 4:
			return 'Silne';
			break;
		case 5:
			return 'Bardzo silne';
			break;
	}
}
