﻿var theSymbols = new Array()
theSymbols = ["!", "\"", "$", "%", "^", "*", "(", ")",
    "-", "_", "=", "+", "[", "{", "]", "}", ";", ":", "'", "@", "#", "~", "\\",
     ".", "/", "?"]


function GetValidatedPassword() {
    pass = GeneratePassword(6, 0);
    while (!Validate(pass, 6, 0)) {
        pass = GeneratePassword(6, 0);
    }
    return pass.join("");
}

function GeneratePassword(lengthOfPassword, wantSymbols) {
    var theLetters = "abcdefghijklmnopqrstuvwxyz";
    var theNumbers = "1234567890";

    var StrongPasswordArray = new Array();

    //LETTERS
    var capped = false;
    for (var loop = 0; loop < lengthOfPassword; loop++) {
        var capitalise = Math.round(Math.random() * 1);
       
        
        if (capitalise == 0 && capped==false) {
            StrongPasswordArray[loop] = theLetters.charAt(Math.round(Math.random() * 25)).toUpperCase();
            capped=true;
        }
        else {
            StrongPasswordArray[loop] = theLetters.charAt(Math.round(Math.random() * 25));
        }
    }

    //NUMBERS
    var numberOfDigits;
    numberOfDigits = Math.round(Math.random() * 2) + 1;
    for (var loop = 0; loop < numberOfDigits; loop++) {
        var positionForNumeric = Math.round(Math.random() * (lengthOfPassword - 1));
        var theNumber = Math.round(Math.random() * 9);
        StrongPasswordArray[positionForNumeric] = theNumber;
    }

    //SYMBOLS
    if (wantSymbols) {

        var positionForSymbol = Math.round(Math.random() * 4) + 2;
        var locationOfSymbolInArray = Math.round(Math.random() * (theSymbols.length - 1));
        var theSymbol = theSymbols[locationOfSymbolInArray];
        StrongPasswordArray[positionForSymbol] = theSymbol;

        var numberOfSymbols;
        // 1 el. 2 tkn
        numberOfSymbols = Math.round(Math.random() * 2) + 1;
        for (var loop = 1; loop < numberOfSymbols; loop++) {
            positionForSymbol = Math.round(Math.random() * (lengthOfPassword - 1));
            locationOfSymbolInArray = Math.round(Math.random() * (theSymbols.length - 1));
            theSymbol = theSymbols[locationOfSymbolInArray];
            StrongPasswordArray[positionForSymbol] = theSymbol;
        }
    }
    return StrongPasswordArray;
}

function Validate(StrongPasswordArray, lengthOfPassword, wantSymbols) {
    //VALIDATION
    var hasAnUpperCaseLetter = false;
    var hasALowerCaseLetter = false;
    var hasANumber = false;
    var hasASymbol = false;
    var correctLength = false;

    for (var loop = 0; loop < StrongPasswordArray.length; loop++) {
        if ("A" <= StrongPasswordArray[loop] && StrongPasswordArray[loop] <= "Z") {
            hasAnUpperCaseLetter = true;
            break;
        }
    }

    for (var loop = 0; loop < StrongPasswordArray.length; loop++) {
        if ("a" <= StrongPasswordArray[loop] && StrongPasswordArray[loop] <= "z") {
            hasALowerCaseLetter = true;
            break;
        }
    }

    for (var loop = 0; loop < StrongPasswordArray.length; loop++) {
        if ("0" <= StrongPasswordArray[loop] && StrongPasswordArray[loop] <= "9") {
            hasANumber = true;
            break;
        }
    }

    if (wantSymbols) {
        for (var loop = 0; loop < StrongPasswordArray.length; loop++) {
            for (var loopSymbols = 0; loopSymbols < theSymbols.length; loopSymbols++) {
                if (StrongPasswordArray[loop] == theSymbols[loopSymbols]) {
                    hasASymbol = true;
                    break;
                }
            }
        }
    }

    if (StrongPasswordArray.length == lengthOfPassword) {
        correctLength = true;
    }

    if (!wantSymbols) {
        hasASymbol = true;
    }
    if (!hasAnUpperCaseLetter || !hasALowerCaseLetter || !hasANumber || !hasASymbol || !correctLength) {
        return false;
    }
    else {
        return true;
    }
}

function Cop(elementid) {
    document.getElementById(elementid).focus();
    document.getElementById(elementid).value = document.getElementById('label').innerHTML;
    var myBehavior = $find("passwordStrength");
    myBehavior._showStrength();
}
function Gen() {
    document.getElementById('label').innerHTML = GetValidatedPassword();
    document.getElementById('label').style.display = 'block';
    document.getElementById('acp').style.display = 'inline';
}
