//密码强度;

function getLevel(s) 
{
	var ls = 0;
	if (s.length < 6){
		return 0;
	}	
	if (s.match(/[a-z]/ig)){
		ls++;
	}
	if (s.match(/[0-9]/ig)){
		ls++;
	}
 	if (s.match(/(.[^a-z0-9])/ig)){
		ls++;
	}
	if (s.length < 11 && ls > 1){
		ls--;
	}	
	if (s.length >= 16 && ls == 2){
		ls++;
	}	

	if (!samePwd(s) && ls > 1){
		ls--;
	}
	if (!increasePwd(s) && ls > 1){
		ls--;
	}
	if (!descendingPwd(s) && ls > 1){
		ls--;
	}
	
	return ls;
}

function samePwd(s)
{
	var errorLength = 0;
	var tmpLength = 1;
	var i = 0;
	for(i=1;i<s.length;i++)
	{
		if(!isNaN(s.substr(i,1)) && !isNaN(s.substr(i-1,1)))
		{
		    if(s.substr(i,1) == s.substr(i-1,1))
		    {
			    tmpLength++;	
		    }
		    else
		    {
			    tmpLength = 1;
		    }
		    if(tmpLength > errorLength)
		    {
			    errorLength = tmpLength;
		    }
		}
	}
	if(errorLength>=(s.length/2))
	{
		return false;
	}
	else
	{
		return true;
	}
}
function increasePwd(s) 
{
	var errorLength = 0;
	var tmpLength = 1;
	var i = 0;
	for(i=1;i<s.length;i++)
	{
		if(!isNaN(s.substr(i,1)) && !isNaN(s.substr(i-1,1)))
		{
			if(Number(s.substr(i,1)) == Number(s.substr(i-1,1)) + 1)
			{
				tmpLength++;	
			}
			else
			{
				tmpLength = 1;
			}
			if(tmpLength > errorLength)
			{
				errorLength = tmpLength;
			}
		}
	}
	if(errorLength>=(s.length/2))
	{
		return false;
	}
	else
	{
		return true;
	}
}
function descendingPwd(s) 
{
	var errorLength = 0;
	var tmpLength = 1;
	var i = 0;
	for(i=1;i<s.length;i++)
	{
		if(!isNaN(s.substr(i,1)) && !isNaN(s.substr(i-1,1)))
		{
			if(Number(s.substr(i,1)) == Number(s.substr(i-1,1)) - 1)
			{
				tmpLength++;	
			}
			else
			{
				tmpLength = 1;
			}
			if(tmpLength > errorLength)
			{
				errorLength = tmpLength;
			}
		}
	}
	if(errorLength>=(s.length/2))
	{
		return false;
	}
	else
	{
		return true;
	}
}