 
var numbers = "0123456789"; 
var lowercase = "abcdefghijklmnopqrstuvwxyz"; 
var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
var punctuation = "~`!@#$%^&*()_-+={}[]:;<,>.?"; 
 
function checkPassword(password,tip) { 
 
    var combinations = 0; 
 
    if (contains(password, numbers) > 0) { 
        combinations += 10; 
    } 
 
    if (contains(password, lowercase) > 0) { 
        combinations += 15; 
    } 
 
    if (contains(password, uppercase) > 0) { 
        combinations += 20; 
    } 
 
    if (contains(password, punctuation) > 0) { 
        //combinations += punctuation.length; 
		combinations += 50;
    } 
 
    // work out the total combinations 
    var totalCombinations = Math.pow(combinations, password.length); 
 
    // work out how long it would take to crack this (@ 200 attempts per second) 
    var timeInSeconds = (totalCombinations / 200) / 2; 
 
    // this is how many days? (there are 86,400 seconds in a day. 
    var timeInDays = timeInSeconds / 86400 
 
    // how long we want it to last 
    var lifetime = 365; 
 
    // how close is the time to the projected time? 
    var percentage = timeInDays / lifetime; 
 
	var friendlyPercentage = cap(Math.round(percentage * 100), 20); 
    if (friendlyPercentage < (password.length * 5)) { 
        friendlyPercentage += password.length * 5; 
    } 
	
 	if (tip == "fizica"){
    var progressBar = document.getElementById("progressBarFizica"); 
	}
	else var progressBar = document.getElementById("progressBarJuridica"); 
	
	if (friendlyPercentage > 98) friendlyPercentage = 98;
    progressBar.style.width = friendlyPercentage + "%"; 
 
    if (percentage > 5){ 
        // strong password
        progressBar.style.backgroundColor = "#3bce08";
        return; 
    } 
 
    if (percentage > 0.5) { 
        // reasonable password 
        progressBar.style.backgroundColor = "#ffd801"; 
        return; 
    } 
 
    if (percentage > 0.10) { 
        // weak password 
        progressBar.style.backgroundColor = "orange"; 
        return; 
    } 
 
    // useless password! 
    if (percentage <= 0.10) { 
        // weak password 
        progressBar.style.backgroundColor = "red"; 
        return; 
    } 
 
 
} 
 
function cap(number, max) { 
    if (number > max) { 
        return max; 
    } else { 
        return number; 
    } 
} 
 
function isCommonPassword(password) { 
 
    for (i = 0; i < commonPasswords.length; i++) { 
        var commonPassword = commonPasswords[i]; 
        if (password == commonPassword) { 
            return true; 
        } 
    } 
 
    return false; 
 
} 
 
function contains(password, validChars) { 
 
    count = 0; 
 
    for (i = 0; i < password.length; i++) { 
        var char = password.charAt(i); 
        if (validChars.indexOf(char) > -1) { 
            count++; 
        } 
    } 
 
    return count; 
} 
 