 
// ================================================================= 
// 代码描述：有效性验证函数
// 
// 入口参数：无 
// 
// 返回结果：无 
// 
// 修改记录：吕洋波 2008/03/18
// 
// =================================================================
var chkMsg="";
var chkErrNum=0;
var isShowMsg=false;
function getFocusForObj(id){
//var itemId=id.replace("inputfor","");
//createItemInput(itemId,$("#"+id).val());
$("#"+id).select();
}
//错误统计
function setErrMsg(id){
chkErrNum++;
chkMsg+=($("#"+id).attr("chkmsg")+"<br />");
}
//单个表单元素验证
function commChkForObj(id,tp){
chkErrNum=0;	
chkMsg="";
commChk(id);
	if(chkErrNum>0){
	$("#"+id).attr("chkresult","0");
	isShowMsg=true;
	//showMsg("alert",true,"系统提示",chkMsg,400,0,"getFocusForObj(\""+id+"\")");
	$("#titlefortip").css("background-image","url(../skin/iconforwrong.png)");
	$("#msgfortip").css("color","#FF0000");
	if(tp==undefined){getFocusForObj(id);}
	}else{
	$("#"+id).attr("chkresult","1");
	$("#titlefortip").css("background-image","url(../skin/iconfortip.png)");
	$("#msgfortip").css("color","#65656A");
	}
}
//普通检测
function commChk(id){
if($("#"+id).length<1) return;
if(parseInt($("#"+id).attr("chkcannull"))==1&&$("#"+id).val().GetLength()==0) return;
var chkStr=$("#"+id).attr("chk");
if(chkStr==undefined) return;
var arr=chkStr.split(",");
	switch(arr[0]) {
	   case "int":
	   if(!chkIntLen(parseInt($("#"+id).val()),parseInt(arr[1]),parseInt(arr[2]))){setErrMsg(id);}
	   break;
   	   case "money":
	   if(!chkMoney($("#"+id).val(),parseInt(arr[1]),parseInt(arr[2]))){setErrMsg(id);}
	   break;
	   case "str":
	   if(!chkStrLen($("#"+id).val(),parseInt(arr[1]),parseInt(arr[2]))){setErrMsg(id);}
	   break;
	   case "usrname":
	   if(!chkUsrName($("#"+id).val(),parseInt(arr[1]),parseInt(arr[2]))){setErrMsg(id);}
	   break;
	   case "pswd":
	   if(!chkPswd($("#"+id).val(),parseInt(arr[1]),parseInt(arr[2]))){setErrMsg(id);}
	   break;
	   case "repswd":
	   if(!chkTwoPswd($("#"+id).val(),$("#"+arr[1]).val())){setErrMsg(id);}
	   break;
	   case "tel":
	   if(!chkTel($("#"+id).val())){setErrMsg(id);}
	   break;
	   case "mobile":
	   if(!chkMobile($("#"+id).val())){setErrMsg(id);}
	   break;
	   case "postalcode":
	   //if(!chkPostalcode($("#"+id).val())){setErrMsg(id);}
	   break;
	   case "url":
	   if(!chkUrl($("#"+id).val())){setErrMsg(id);}
	   break;
	   case "mail":
	   if(!chkMail($("#"+id).val())){setErrMsg(id);}
	   break;
	   case "idcard":
	   if(!chkIdcard($("#"+id).val())){setErrMsg(id);}
	   break;
	  //default:
	} 
}

//帐户验证
//只能输入由数字、26个英文字母或者下划线组成的字符串，字母为首
function chkUsrName(val,minL,maxL){
var out=false;
var regu=/^[a-zA-Z][a-zA-Z0-9|_]{2,19}$/;
var re=new RegExp(regu);
	if(re.test(val)){
		var len=(val=="") ? 0 : val.GetLength();
		if(maxL==-1){maxL=len+1;}
		if(len<=maxL&&len>=minL){
		out=true;
		}
	}
return out;
}
//密码验证
//只能输入由数字、26个英文字母或者下划线组成的字符串
function chkPswd(val,minL,maxL){
var out=false;
var regu=/^\w+$/;
var re=new RegExp(regu);
	if(re.test(val)){
		var len=(val=="") ? 0 : val.GetLength();
		if(maxL==-1){maxL=len+1;}
		if(len<=maxL&&len>=minL){
		out=true;
		}
	}
var grade=__pwdStrength(val);
$("#pswdgrade").html(__pwdStrength_name(val));
$("#pswdgrade").css("width",30*grade+"px");
$("#pswdgrade").css("background-color",__pwdStrength_color(val));
return out;
}
/**
 * 6 级强度设置（数字、大写字母、小写字母、特殊字符、长度>=6、长度>=10）
 * 如果密码为空，返回 0
 */
function __pwdStrength(pwd) {
    var sum = [0, 0, 0, 0];
    for (var i=0; i<pwd.length; i++) {
        var c = pwd.charCodeAt(i);
        if (c >=48 && c <=57)  //数字
            sum[0] = 1;
        else if (c >=65 && c <=90) //大写字母
            sum[1] = 1;
        else if (c >=97 && c <=122) //小写字母
            sum[2] = 1;
        else //特殊字符
            sum[3] = 1; 
    }
    var level = sum[0] + sum[1] + sum[2] + sum[3];
    if (pwd.length >= 6)  level++;
    if (pwd.length >= 10) level++;
    return level;
}

function __pwdStrength_name(pwd) {
    var names = [ '空', '太弱', '弱', '较弱', '中', '较强', '强'];
    var level = __pwdStrength(pwd);
    var result = names[level];
    if (!result) result = names[6];
    return result;
}

function __pwdStrength_color(pwd) {
    var names = [ '#000000', '#FF0000', '#E89097', '#800080', '#0000FF', '#00FF00', '#008000'];
    var level = __pwdStrength(pwd);
    var result = names[level];
    if (!result) result = names[6];
    return result;
}
//密码一致性验证
function chkTwoPswd(val,pswd){
var out=(val==pswd)? true : false;
return out;
}
//字符串长度控制
function chkStrLen(val,minL,maxL){
var len=(val=="") ? 0 : val.GetLength();
if(maxL==-1){maxL=len+1;}
var out=(len<=maxL&&len>=minL)? true : false;
return out;
}
//数值长度控制
function chkIntLen(val,minL,maxL){
if(maxL==-1){maxL=val+1;}
var out=(val<=maxL&&val>=minL)? true : false;
return out;
}
//校验普通电话、传真号码：可以“+”开头，除数字外，可含有“-” 
function chkTel(val){
var regu=/(\d{3}-\d{8}|\d{4}-\d{8}|\d{4}-\d{7}|\d{3}-\d{7})(-\d{2,8})?/;
var re=new RegExp(regu);
return re.test(val);
}
//检查输入手机号码是否正确 
function chkMobile(val){
var regu=/^\d{11,12}$/;
var re=new RegExp(regu);
return re.test(val);
}
//判断是否为邮政编码(中国6位数字)
function chkPostalcode(val){
var regu=/^\d{6}$/;
var re=new RegExp(regu);
return re.test(val);
}
//邮件地址的验证
function chkMail(val){
var regu=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var re=new RegExp(regu);
return re.test(val);
}
//url地址的验证
function chkUrl(val){
var regu=/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"])*$/; 
var re=new RegExp(regu);
return re.test(val);
}
//身份证号码验证
function chkIdcard(val){
var isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/; 
var isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/; 
if (isIDCard1.test(val)||isIDCard2.test(val)){return true;}
return false;
}
//货币长度控制
function chkMoney(val,minL,maxL){
if(maxL==-1){maxL=val+1;}
var regu=/^\d+(\.\d+)?$/;; 
var re=new RegExp(regu);
	if(re.test(val)){
	var out=(val<=maxL&&val>=minL)? true : false;
	}else{
	var out=false;
	}
return out;
}
//修正货币格式
function formatMoney(id){
if($("#"+id).length<1) return;
if(parseInt($("#"+id).attr("chkcannull"))==1&&$("#"+id).val().GetLength()==0) return;
var chkStr=$("#"+id).attr("chk");
if(chkStr==undefined) return;
var arr=chkStr.split(",");
	if(arr[0]=="money"){
   $("#"+id).val(outputMoney($("#"+id).val()));
	}
}
//把数字格式化转换成货币类型
function outputMoney(number){
  number=number.replace(/[^\d+(\.\d+)?]/g,"");
  if (number=="") number=0; 
  if(number<0) 
  return '-'+outputDollars(Math.floor(Math.abs(number)-0) + '') + outputCents(Math.abs(number) - 0); 
  else 
  return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0); 
} 
function outputDollars(number) 
{ 
  if (number.length<= 3) 
  return (number == '' ? '0' : number); 
  else 
  { 
    var mod = number.length%3; 
    var output = (mod == 0 ? '' : (number.substring(0,mod))); 
    for (i=0 ; i< Math.floor(number.length/3) ; i++) 
    { 
      if ((mod ==0) && (i ==0)) 
      output+= number.substring(mod+3*i,mod+3*i+3); 
      else 
      output+= '' + number.substring(mod+3*i,mod+3*i+3); 
    } 
    return (output); 
  } 
} 
function outputCents(amount) 
{ 
  amount = Math.round( ( (amount) - Math.floor(amount) ) *100); 
  return (amount<10 ? '.0' + amount : '.' + amount); 
}
