


// Settings
// -- Toggle to true or false, if you want to change what is checked in the password
var m_strUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var m_strLowerCase = "abcdefghijklmnopqrstuvwxyz";
var m_strNumber = "0123456789";
var m_strCharacters = "!@#$%^&*?_~"

// Check password
function checkPassword(strPassword)
{
	// Reset combination count
	var nScore = 0;
	
	// Password length
	// -- Less than 4 characters
	if (strPassword.length < 5)
	{
		nScore += 5;
	}
	// -- 5 to 7 characters
	else if (strPassword.length > 4 && strPassword.length < 8)
	{
		nScore += 10;
	}
	// -- 8 or more
	else if (strPassword.length > 7)
	{
		nScore += 25;
	}

	// Letters
	var nUpperCount = countContain(strPassword, m_strUpperCase);
	var nLowerCount = countContain(strPassword, m_strLowerCase);
	var nLowerUpperCount = nUpperCount + nLowerCount;
	// -- Letters are all lower case
	if (nUpperCount == 0 && nLowerCount != 0) 
	{ 
		nScore += 10; 
	}
	// -- Letters are upper case and lower case
	else if (nUpperCount != 0 && nLowerCount != 0) 
	{ 
		nScore += 20; 
	}
	
	// Numbers
	var nNumberCount = countContain(strPassword, m_strNumber);
	// -- 1 number
	if (nNumberCount == 1)
	{
		nScore += 10;
	}
	// -- 3 or more numbers
	if (nNumberCount >= 3)
	{
		nScore += 20;
	}
	
	// Characters
	var nCharacterCount = countContain(strPassword, m_strCharacters);
	// -- 1 character
	if (nCharacterCount == 1)
	{
		nScore += 10;
	}	
	// -- More than 1 character
	if (nCharacterCount > 1)
	{
		nScore += 25;
	}
	
	// Bonus
	// -- Letters and numbers
	if (nNumberCount != 0 && nLowerUpperCount != 0)
	{
		nScore += 2;
	}
	// -- Letters, numbers, and characters
	if (nNumberCount != 0 && nLowerUpperCount != 0 && nCharacterCount != 0)
	{
		nScore += 3;
	}
	// -- Mixed case letters, numbers, and characters
	if (nNumberCount != 0 && nUpperCount != 0 && nLowerCount != 0 && nCharacterCount != 0)
	{
		nScore += 5;
	}
	
	
	return nScore;
}
 
// Runs password through check and then updates GUI 
function runPassword(strPassword, strFieldID) 
{
	// Check password
	var nScore = checkPassword(strPassword);
	
	 // Get controls
    	var ctlBar = document.getElementById(strFieldID + "_bar"); 
    	var ctlText = document.getElementById(strFieldID + "_text");
    	if (!ctlBar || !ctlText)
    		return;
    	
    	// Set new width
    	ctlBar.style.width = nScore + "%";

 	// Color and text
	// -- 
 	if (nScore >= 90)
 	{
 		var strText = "کاملا امن";
 		var strColor = "#0ca908";
 	}
 	// --  
 	else if (nScore >= 80)
 	{
 		var strText = "ايمن";
 		vstrColor = "#7ff67c";
	}
	// -- 
 	else if (nScore >= 70)
 	{
 		var strText = "خيلي قوي";
 		var strColor = "#1740ef";
	}
	// --  
 	else if (nScore >= 60)
 	{
 		var strText = "قوي";
 		var strColor = "#5a74e3";
	}
	// -- 
 	else if (nScore >= 50)
 	{
 		var strText = "متوسط";
 		var strColor = "#FF9933";
	}
	// -- 
 	else if (nScore >= 25)
 	{
 		var strText = "ضعيف";
 		var strColor = "#FF6600";
	}
	// --  
 	else
 	{
 		var strText = "خيلي ضعيف";
 		var strColor = "#FF0000";
	}
	ctlBar.style.backgroundColor = strColor;
	ctlText.innerHTML = "<span style='color: " + strColor + ";'>" + strText + " - " + nScore + " % " +"</span>";
}
 
// Checks a string for a list of characters
function countContain(strPassword, strCheck)
{ 
	// Declare variables
	var nCount = 0;
	
	for (i = 0; i < strPassword.length; i++) 
	{
		if (strCheck.indexOf(strPassword.charAt(i)) > -1) 
		{ 
	        	nCount++;
		} 
	} 
 
	return nCount; 
} 
function check_email(){
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
var returnval=emailfilter.test(document.getElementById('email').value)
if (returnval==false){
document.getElementById('email_valid').src = dle_root + 'engine/ajax/not-valid.png'
}
else {
document.getElementById('email_valid').src = dle_root + 'engine/ajax/valid.png'
}
}  


 function checkpass2 ()
{
var pass1 = document.getElementById('password1').value;
var pass2 = document.getElementById('password2').value;

if ( pass1 != '' && pass2 != '' )
{
if ( pass1 != pass2 )
{
document.getElementById('pass_valid').src = dle_root + 'engine/ajax/not-valid.png'
}
else
{
document.getElementById('pass_valid').src = dle_root + 'engine/ajax/valid.png'
}
}
}
 
 
 



