function CheckUserEmail(v_mail)
{
  var reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
  if (!reg.test(v_mail)){ 
 		return false;
	}   
  else{
		if(v_mail.length>4){
			var lvPostfixName1=v_mail.substring(v_mail.length-4,v_mail.length).toUpperCase();
      var lvPostfixName2=v_mail.substring(v_mail.length-3,v_mail.length).toUpperCase(); 
      return (lvPostfixName1==".COM" || lvPostfixName1==".NET" || lvPostfixName1==".ORG" || lvPostfixName2==".CN" );
		}
    return true;
  }		    
}    
function CheckPtid()
{
	var sPtid = trim(document.getElementById("username").value);
	var sSdid = document.getElementById("regsdid").value;
	var sChkSdid = document.getElementById("chksdid").value;
	var sFrom = document.getElementById("txtRegisterFrom").value;
	if (sChkSdid=="true" && sPtid==(sSdid+".sdo"))
			return true;
	if (sFrom=="1" && sPtid.length>5 && sPtid.substr(sPtid.length-6, 6)==".woool")
		return true;
	if (sFrom=="4" && sPtid.length>4 && sPtid.substr(sPtid.length-5, 5)==".mir2")
		return true;
	if(sPtid.length>4 && sPtid.substr(sPtid.length-5, 5)==".2008"){
		return CheckPtidFor2008();		
	}  		
	if (sPtid == ""){
		return false;
	}

    var lvMinLen=4;
    var lvMaxLen=16;
    
    var lvCheckedPtid=sPtid;
	try
	{
	    if(gvAllowedSuffix!=undefined && gvAllowedSuffix.length>0)
	    {
	        var lvSuffixIndex=sPtid.indexOf(".");
            if(lvSuffixIndex>=0)
            {
                var lvCheckedSuffix=sPtid.substring(lvSuffixIndex).toUpperCase();
                for(var i=0;i<gvAllowedSuffix.length;i++)
                {
                    if(lvCheckedSuffix==gvAllowedSuffix[i].toUpperCase())
                    {
                        lvCheckedPtid=sPtid.substring(0,lvSuffixIndex);
                        lvMinLen=lvMinLen-lvCheckedSuffix.length;
                        if(lvMinLen<1)
                        {
                            lvMinLen=1;
                        }
                        lvMaxLen=lvMaxLen-lvCheckedSuffix.length;
                        if(lvMaxLen<=lvMinLen)
                        {
                            lvMaxLen=lvMinLen+1;
                        }
                        break;
                    }
                }
            }        
	    }
    }
    catch(e)
    {
    }	
    if(lvCheckedPtid.length<lvMinLen || lvCheckedPtid.length>lvMaxLen)
    {
        return false;
    }
    
    var reg = /^[a-z0-9]{1,16}$/i;
    //var reg = /^[a-z0-9]{4,16}$/i;
    if (!reg.test(lvCheckedPtid)){
	    return false;
    }
    reg = /^[a-z]{1}/i;
    if (!reg.test(lvCheckedPtid)){
	    return false;
    }
	return true;
}
function CheckPtidFor2008()
{
	var lvNow=new Date();
	var lvStartDate=new Date();
	var lvEndDate=new Date();
	lvStartDate.setFullYear(2008,7,18);
	lvStartDate.setHours(0);
	lvStartDate.setMinutes(0);
	lvStartDate.setSeconds(0);
	lvStartDate.setMilliseconds(1);

	lvEndDate.setFullYear(2008,7,31);
	lvEndDate.setHours(23);
	lvEndDate.setMinutes(59);
	lvEndDate.setSeconds(59);
	lvEndDate.setMilliseconds(999);
	
	return (lvNow>lvStartDate && lvNow<lvEndDate);
}
function CheckMobileField(v_mobile,pvAllowdUnicom)
{
	if(v_mobile.length==0){
		return false;
	}
  var lvCellphoneIsOk=false;
  for(var i=0;i<gvPhoneRegExpress.length;i++){
  	if(gvPhoneRegExpress[i].test(v_mobile)){
  		lvCellphoneIsOk=true;
  		break;
  	}
  }    
	var reg3=/^1\d{10}$/;
	if(pvAllowdUnicom==false){
		if (lvCellphoneIsOk==false){
			return false;
		}
	}
	else {
		if (lvCellphoneIsOk==false && !reg3.test(v_mobile)){
			return false;
		}
	}
	return true;    
}
function MobileKeyDownCheck(pvTxtId,pvEvent)
{
	return;
	if (pvEvent==null || pvEvent==""){
  	pvEvent=window.event;
	}  
  var obj= pvEvent.target || pvEvent.srcElement;  
  if(document.selection){      
		if(obj.tagName!=undefined&&obj.tagName=='INPUT'){    
    	var  s=document.selection.createRange();     
      s.setEndPoint("StartToStart",obj.createTextRange());    
      var pos=s.text.length;   
		}
  	else {    
			var rng = obj.createTextRange();    
    	rng.moveToPoint(pvEvent.x,pvEvent.y);
    	rng.moveStart("character",-obj.value.length);    
      var pos=rng.text.length ;   
		}  
	}
  else{     
		var pos=obj.selectionStart;  
	}
  var key   = pvEvent.keyCode;  
  var lvValue=document.getElementById(pvTxtId).value;    
  var lvSelectionText="";
  var lvContinueEvent=true;
	if(obj.selectionStart!= undefined){
		lvSelectionText=obj.value.substr(obj.selectionStart, obj.selectionEnd - obj.selectionStart);
	}
	else {
		lvSelectionText=document.selection.createRange().text
	}
  if(key==8 && pos==1 && lvValue.length>1){
		lvContinueEvent=false;
	}
  else if(key==46 && pos==0 && lvValue.length>1){
		lvContinueEvent=false;
	}
	else if(key==8 || key==9 || key==13 || key==20 || key==17 || key==18 || key==92 || key==93 || key==45 || key==46 || (key>32 && key <41)){
		lvContinueEvent=true;
	}
  else{
		if(pos==0){
			lvContinueEvent=(key==49 || key==97);
		}
    else{
			if(lvValue!="" && lvSelectionText!="" && lvValue.substring(0,lvSelectionText.length)==lvSelectionText){
				lvContinueEvent=(key==49 || key==97);
			}
      else{
				lvContinueEvent=(( key>47 && key <58) || (key>95 && key<106));
			}
		}
	}
  if(lvContinueEvent==false){
		if(pvEvent.cancelable)  {
		  pvEvent.preventDefault();
		  pvEvent.returnValue =false;
		  pvEvent.cancel = true;
		}
		else {
			pvEvent.cancelBubble =true;
		  pvEvent.returnValue =false;
		  pvEvent.cancel = true;
		}     
	}
}

function CheckUserNameCharactSet(sUsername)
{
    var reg = /^[\u4e00-\u9fa5]+$/i;
    return reg.test(sUsername)==true;
}

function CheckUsernameField(sUsername)
{
	var len1 = GetStrLen(sUsername);
	var len2 = sUsername.length;
	if (len1!=len2*2 || len2<2 || len2>5){		
		return false;
	}
	return true;
}
function GetStrLen(v_str)
{
	var len = 0;
	for(i=0; i<v_str.length; i++){
		if(v_str.charCodeAt(i) > 128){
			len = len + 2;
		}
		else{
			len = len + 1;
		}
	}
	return len;
}
function CheckIdCardField(v_card)
{
	var reg = /^\d{15}(\d{2}[0-9X])?$/i;
	if (!reg.test(v_card)){
		return false;
	}
	if(v_card.length==15){
		var n = new Date();
    var y = n.getFullYear();
	  if(parseInt("19" + v_card.substr(6,2)) < 1900 || parseInt("19" + v_card.substr(6,2)) > y){
			return false;
		}
		var birth = "19" + v_card.substr(6,2) + "-" + v_card.substr(8,2) + "-" + v_card.substr(10,2);
		if(!isDate(birth)){
			return false;
		}
	}
	if(v_card.length==18){
		var n = new Date();
		var y = n.getFullYear();
		if(parseInt(v_card.substr(6,4)) < 1900 || parseInt(v_card.substr(6,4)) > y){
			return false;
		}
		var birth = v_card.substr(6,4) + "-" + v_card.substr(10,2) + "-" + v_card.substr(12,2);
		if(!isDate(birth)){
			return false;
		}
		iW = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
		iSum = 0;
		for( i=0;i<17;i++){
			iC = v_card.charAt(i);
			iVal = parseInt(iC);
			iSum += iVal * iW[i];
		}
		iJYM = iSum % 11;
		if(iJYM == 0) sJYM = "1";
		else if(iJYM == 1) sJYM = "0";
    else if(iJYM == 2) sJYM = "x";
    else if(iJYM == 3) sJYM = "9";
    else if(iJYM == 4) sJYM = "8";
    else if(iJYM == 5) sJYM = "7";
    else if(iJYM == 6) sJYM = "6";
    else if(iJYM == 7) sJYM = "5";
    else if(iJYM == 8) sJYM = "4";
    else if(iJYM == 9) sJYM = "3";
    else if(iJYM == 10) sJYM = "2";
		var cCheck = v_card.charAt(17).toLowerCase();
		if( cCheck != sJYM ){
			return false;
		}
	}
	try
	{
			var lvAreaId=v_card.substr(0,2);
			if( lvAreaId=="11" || lvAreaId=="12" || lvAreaId=="13" || lvAreaId=="14" || lvAreaId=="15" ||
			    lvAreaId=="21" || lvAreaId=="22" || lvAreaId=="23" ||
			    lvAreaId=="31" || lvAreaId=="32" || lvAreaId=="33" || lvAreaId=="34" || lvAreaId=="35" || lvAreaId=="36" || lvAreaId=="37" ||
			    lvAreaId=="41" || lvAreaId=="42" || lvAreaId=="43" || lvAreaId=="44" || lvAreaId=="45" || lvAreaId=="46" ||
			    lvAreaId=="50" || lvAreaId=="51" || lvAreaId=="52" || lvAreaId=="53" || lvAreaId=="54" || 
			    lvAreaId=="61" || lvAreaId=="62" || lvAreaId=="63" || lvAreaId=="64" || lvAreaId=="65" ||
			    lvAreaId=="71" || lvAreaId=="82" || lvAreaId=="82" )
			{
				return true;
			}
			else
			{
				return false;
			}
	    //if(SearchIdCodeMatch(v_card.substr(0,6))==-1)
	    //{
	    //   return false;
	    //}
	}
	catch(ex)
	{
	}
	return true;    
}    
function isDate(strDate)
{
	var strSeparator = "-"; //日期分隔符
  var strDateArray;
  var intYear;
  var intMonth;
  var intDay;
  var boolLeapYear;
	strDateArray = strDate.split(strSeparator);
	if(strDateArray.length!=3) return false;
	intYear = parseInt(strDateArray[0],10);
  intMonth = parseInt(strDateArray[1],10);
  intDay = parseInt(strDateArray[2],10);
	if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;
  if(intMonth>12||intMonth<1) return false;
	if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return false;
	if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return false;
	if(intMonth==2){
		if(intDay<1) return false;
		boolLeapYear = false;
    if((intYear%100)==0){
			if((intYear%400)==0) boolLeapYear = true;
		}
    else{
			if((intYear%4)==0) boolLeapYear = true;
		}
		if(boolLeapYear){
			if(intDay>29) return false;
		}
		else{
			if(intDay>28) return false;
		}
	}
	return true;
}        
function CheckExcode(pvCode)
{
	if (pvCode == ""){
		return false;
	}
	/*
	var reg = /^\d{6}$/i;
	if (!reg.test(pvCode)){
		return false;
	}
	*/
	return true;
}
function AjaxRequest(v_url)
{
    var xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
    xmlHTTP.open("POST", v_url, false);
    xmlHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHTTP.send("");
    return xmlHTTP.responseText;
}
function LoadXMLHttpJs()
{
	if(!window.ActiveXObject)
		document.getElementById("scriptXmlHttp").src = "Scripts/xmlhttprequest.js";
}
function GetDescryptedUserName(pUserName)
{
	var sname = "";
	if(pUserName==null){
	    pUserName="";
	}
	if(pUserName.indexOf("[") > 0)
		sname = pUserName.substring(0,pUserName.indexOf("["));
	else
		sname = pUserName;
	var pnum = pUserName.substring(pUserName.indexOf("[") + 1, pUserName.indexOf("]"));
	if(pnum == "3"){
		if(sname.substring(sname.length - 1,sname.length) == "1" || sname.substring(sname.length - 1,sname.length) == "2"){
			sname = sname.substring(0,sname.length - 1);
		}
	}
	return sname;
}
function CheckMobile(v_mobile,pvAllowdUnicom)
{
	if(v_mobile.length==0){
		alert("请输入手机号码！");
		return false;
	}
  var lvCellphoneIsOk=false;
  for(var i=0;i<gvPhoneRegExpress.length;i++){
  	if(gvPhoneRegExpress[i].test(v_mobile)){
  		lvCellphoneIsOk=true;
  		break;
  	}
  }    
	var reg3=/^1\d{10}$/;
	if(pvAllowdUnicom==false){
		if (lvCellphoneIsOk==false){
			alert("非常抱歉，目前仅支持移动手机号码认证！");
		  return false;
		}
	}
	else{
		if (lvCellphoneIsOk==false && !reg3.test(v_mobile)){
			alert("非常抱歉，您输入的手机号码格式不正确！");
			return false;
		}
	}
	return true;
}

function CheckPTInfo4PT(pvCheckMobile,pvCheckEmail)
{
	var UserName=document.getElementById("realname").value;
  var UserId=document.getElementById("idcard").value;
  var UserCellPhone=document.getElementById("mobile").value;
  var lvUserMailId=document.getElementById("PTUserEmailId").value;
	if(UserName!=null && UserName!="" && (CheckUsernameField(UserName)==false)){
		alert("您输入的姓名有误");
    return false;
	}
	if(UserId!=null && UserId!="" && (CheckIdCardField(UserId)==false && gvConfirmIDCardOtherFormat==false)){
		alert("证件号码输入错误");
    return false;
	}
	if(pvCheckMobile){
		if(UserCellPhone!=null && UserCellPhone!="" && (CheckMobile(UserCellPhone,true)==false))
			return false;
	}
  if(pvCheckEmail){
		if((lvUserMailId!="") && CheckUserEmail(lvUserMailId)==false){
			alert("对不起，请正确输入您的邮箱地址");
      return false;
		}
	}
	return true;
}
function isExistPtid()
{
	var sPtid = document.getElementById("username").value;
	var sSid = (document.getElementById("sessionid")!=null)?document.getElementById("sessionid").value:"";
	var url = "ExistPtid.ashx?username="+escape(sPtid)+"&sid="+sSid+"&new=1";
	var sRet = AjaxRequest(url);
	if(sRet.indexOf("EXIST") >= 0)
		return true;
	else
		return false;
}
function CheckRegEmail(pvEmail)
{
	var reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
	if (reg.test(pvEmail)){
		if(pvEmail.length>=50){
	  	return 2;   //长度超过 50 
		}
	  if(pvEmail.length>4){
	  	var lvMailPostfix=pvEmail.substring(pvEmail.length-4,pvEmail.length).toUpperCase();
	    var lvMailPostfix1=pvEmail.substring(pvEmail.length-3,pvEmail.length).toUpperCase();
	    if(lvMailPostfix==".COM" || lvMailPostfix==".NET" || lvMailPostfix==".ORG"  || lvMailPostfix1==".CN"){
	    	var lvCheckPostfix=pvEmail.substring(pvEmail.indexOf("@")).toUpperCase();
	      var lvExcludeArray=new Array(); //Exclude Mail address No.5130 邮箱地址过滤 
	     	lvExcludeArray.push("@QQ.GD");
	      lvExcludeArray.push("@PP.COM");
	      lvExcludeArray.push("@TOM.COM");
	      lvExcludeArray.push("@123.COM");
	      lvExcludeArray.push("@136.COM");
	      lvExcludeArray.push("@QQ.COM.CN");
	      lvExcludeArray.push("@168.COM");
	      lvExcludeArray.push("@SIAN.COM");
	      lvExcludeArray.push("@Q.COM");
	      for(var i=0;i<lvExcludeArray.length;i++){
	      	if(lvExcludeArray[i]==lvCheckPostfix){
	        	return 4;
	        }
	      }
	      return 0;
			}
	    else{
	    	return 3;   //不允许的邮箱地址
			}
		}
	}
	else{
		return 1;   //格式不对
	}
}
function isExistEmail(pvCheckRealMail)
{
	var sPtid = document.getElementById("UserEmailId").value;
	if(CheckRegEmail(sPtid)==0){
		var sSid = (document.getElementById("sessionid")!=null)?document.getElementById("sessionid").value:"";
	  var url = "ExistPtid.ashx?username="+sPtid+"&sid="+sSid+"&new=1&CHECK_TYPE=1&skip_mail="+pvCheckRealMail;
	  var sRet = AjaxRequest(url);
	  return (sRet.indexOf("EXIST")>=0);
	}
	else{
		return false;
	}
}
function CheckPTInfo4Mail(pvCheckMobile)
{
	var UserName=document.getElementById("realname").value;
  var UserId=document.getElementById("idcard").value;
  var UserCellPhone=document.getElementById("mobile").value;
	if(UserName!=null && UserName!="" && (CheckUsernameField(UserName)==false)){
		alert("您输入的姓名有误");
    return false;
	}
	if(UserId!=null && UserId!="" && (CheckIdCardField(UserId)==false && gvConfirmIDCardOtherFormat==false)){
		alert("证件号码输入错误");
    return false;
	}
	if(pvCheckMobile){
		if(UserCellPhone!=null && UserCellPhone!="" && (CheckMobile(UserCellPhone,true)==false))
			return false;
	}
	return true;
}
function isExistMobile()
{
	var sPtid = document.getElementById("UserCellphoneId").value;
  var lvCellphoneIsOk=false;
  for(var i=0;i<gvPhoneRegExpress.length;i++){
  	if(gvPhoneRegExpress[i].test(sPtid)){
  		lvCellphoneIsOk=true;
  		break;
  	}
  }  
	if(lvCellphoneIsOk){
		var sSid = (document.getElementById("sessionid")!=null)?document.getElementById("sessionid").value:"";
	  var url = "ExistPtid.ashx?username="+sPtid+"&sid="+sSid+"&new=1&CHECK_TYPE=2";
	  var sRet = AjaxRequest(url);
	  return (sRet.indexOf("EXIST")>=0);
	}
	else{
	    return false;
	}
}
function CheckPTInfo4Cellphone(pvCheckEmail)
{
	var UserName=document.getElementById("realname").value;
  var UserId=document.getElementById("idcard").value;
  var lvUserMailId=document.getElementById("PTUserEmailId").value;
	if(UserName!=null && UserName!="" && (CheckUsernameField(UserName)==false)){
		alert("您输入的姓名有误");
    return false;
	}
	if(UserId!=null && UserId!="" && (CheckIdCardField(UserId)==false && gvConfirmIDCardOtherFormat==false)){
		alert("证件号码输入错误");
    return false;
	}
  if(pvCheckEmail){
		if((lvUserMailId!="") && CheckUserEmail(lvUserMailId)==false){
			alert("对不起，请正确输入您的邮箱地址");
      return false;
		}
	}
	return true;
}
