var bCheckNumbers=true;var bCheckUpperCase=true;var bCheckLowerCase=true;var bCheckPunctuation=true;var nPasswordLifetime=365;function checkPassword(strPassword){nCombinations=0;if(bCheckNumbers){strCheck="0123456789";if(doesContain(strPassword,strCheck)>0){nCombinations+=strCheck.length}}if(bCheckUpperCase){strCheck="ABCDEFGHIJKLMNOPQRSTUVWXYZ";if(doesContain(strPassword,strCheck)>0){nCombinations+=strCheck.length}}if(bCheckLowerCase){strCheck="abcdefghijklmnopqrstuvwxyz";if(doesContain(strPassword,strCheck)>0){nCombinations+=strCheck.length}}if(bCheckPunctuation){strCheck=";:-_=+\|//?^&!.@$£#*()%~<>{}[]";if(doesContain(strPassword,strCheck)>0){nCombinations+=strCheck.length}}var nDays=((Math.pow((nCombinations),strPassword.length)/500)/2)/86400;var nPerc=nDays/nPasswordLifetime;return nPerc}function runPassword(strPassword,strFieldID){nPerc=checkPassword(strPassword);var strColor;var strText;var nNumeric=0;var nVarchar=0;var nSpecial=0;var ctlBar=document.getElementById(strFieldID+"_bar");var ctlText=document.getElementById(strFieldID+"_text");if(!ctlBar||!ctlText)return;var nRound=Math.round(nPerc*100);if(nRound<(strPassword.length*5)){nRound+=strPassword.length*5}if(nRound>100)nRound=100;ctlBar.style.width=nRound+"%";for(var i=0;i<strPassword.length;i++){strCheck="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(doesContain(strPassword.charAt(i),strCheck)>0){nVarchar++}strCheck=";:-_=+\|//?^&!.@$£#*()%~<>{}[]";if(doesContain(strPassword.charAt(i),strCheck)>0){nSpecial++}strCheck="0123456789";if(doesContain(strPassword.charAt(i),strCheck)>0){nNumeric++}}if(nNumeric>=1&&nSpecial>=1&&nVarchar>=4){strText="excellent";strColor="#3bce08"}else if(nNumeric>=1&&nSpecial>=1&&nVarchar>=2){strText="strong";strColor="orange"}else if(nNumeric>=1&&nSpecial>=1&&nVarchar>=1){strText="good";strColor="#ffd801"}else if((nNumeric>=1||nSpecial>=1)&&nVarchar>=0){strColor="red";strText="weak"}else if(nNumeric>=0&&nSpecial>=0&&(nVarchar>=1||nVarchar>=2)){strColor="red";strText="poor"}else{strColor="red";strText="poor"}ctlBar.style.backgroundColor=strColor;ctlText.innerHTML="<span style='color: "+strColor+";'>"+strText+"</span>"}function doesContain(strPassword,strCheck){nCount=0;for(i=0;i<strPassword.length;i++){if(strCheck.indexOf(strPassword.charAt(i))>-1){nCount++}}return nCount}
