﻿var PasswordStrength ={
    Level : ["极佳","一般","较弱","太短"],
    LevelValue : [15,10,5,0],//强度值
    Factor : [1,2,5],//字符加数,分别为字母，数字，其它
    KindFactor : [0,0,10,20],//密码含几种组成的加数 
    Regex : [/[a-zA-Z]/g,/\d/g,/[^a-zA-Z0-9]/g] //字符正则数字正则其它正则
}
PasswordStrength.StrengthValue = function(pwd)
{
    var strengthValue = 0;
    var ComposedKind = 0;
    for(var i = 0 ; i < this.Regex.length;i++)
    {
        var chars = pwd.match(this.Regex[i]);
        if(chars != null)
        {
            strengthValue += chars.length * this.Factor[i];
            ComposedKind ++;
        }
    }
    strengthValue += this.KindFactor[ComposedKind];
    return strengthValue;
} 
PasswordStrength.StrengthLevel = function(pwd)
{
     var value = this.StrengthValue(pwd);
     for(var i = 0 ; i < this.LevelValue.length ; i ++)
     {
        if(value >= this.LevelValue[i] )
        return this.Level[i];
     }
}
function loadinputcontext(o)
{
    var showmsg=PasswordStrength.StrengthLevel(o.value);
	switch(showmsg)
	{
	    case "太短": showmsg="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"25\" align=\"center\" bgcolor=\"#0066CC\" style=\"color:#FFFFFF;\">太短</td><td width=\"25\" align=\"center\" bgcolor=\"#C94343\" style=\"color:#FFFFFF;\"></td><td width=\"25\" align=\"center\" bgcolor=\"#B6BD67\" style=\"color:#FFFFFF;\"></td><td width=\"25\" align=\"center\" bgcolor=\"#69BE6D\" style=\"color:#FFFFFF;\"></td></tr></table>";break;
		case "较弱": showmsg="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"25\" align=\"center\" bgcolor=\"#0066CC\" style=\"color:#FFFFFF;\"></td><td width=\"25\" align=\"center\" bgcolor=\"#C94343\" style=\"color:#FFFFFF;\">较弱</td><td width=\"25\" align=\"center\" bgcolor=\"#B6BD67\" style=\"color:#FFFFFF;\"></td><td width=\"25\" align=\"center\" bgcolor=\"#69BE6D\" style=\"color:#FFFFFF;\"></td></tr></table>";break;
		case "一般": showmsg="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"25\" align=\"center\" bgcolor=\"#0066CC\" style=\"color:#FFFFFF;\"></td><td width=\"25\" align=\"center\" bgcolor=\"#C94343\" style=\"color:#FFFFFF;\"></td><td width=\"25\" align=\"center\" bgcolor=\"#B6BD67\" style=\"color:#FFFFFF;\">一般</td><td width=\"25\" align=\"center\" bgcolor=\"#69BE6D\" style=\"color:#FFFFFF;\"></td></tr></table>";break;
		case "极佳": showmsg="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"25\" align=\"center\" bgcolor=\"#0066CC\" style=\"color:#FFFFFF;\"></td><td width=\"25\" align=\"center\" bgcolor=\"#C94343\" style=\"color:#FFFFFF;\"></td><td width=\"25\" align=\"center\" bgcolor=\"#B6BD67\" style=\"color:#FFFFFF;\"></td><td width=\"25\" align=\"center\" bgcolor=\"#69BE6D\" style=\"color:#FFFFFF;\">极佳</td></tr></table>";break;
	}
	document.getElementById('showmsg').innerHTML = showmsg;
}
