﻿function getlength(str){
return str.replace(/[^\x00-\xff]/g,"**").length;
}
String.prototype.trim=function()
{
 //用正则表达式将前后空格
 //用空字符串替代。
 return this.replace(/(^\s*)|(\s*$)/g,"");
}
function ValidateUserName(id,clientID,type,messageDisplayType,cssType)
{
    var isOK;
    if(CheckUserName(id,type))
    {
        isOK=CheckIsExistUserName(id);
        if(type==0)
        {
            isOK=!isOK;
            if(isOK)
                DisplayMessage(isOK,clientID,1,messageDisplayType,cssType);
            else
                DisplayMessage(isOK,clientID,2,messageDisplayType,cssType);
        }
        else
        {
            DisplayMessage(isOK,clientID,1,messageDisplayType,cssType);
        }
           
    }
    else
    {
        DisplayMessage(isOK,clientID,1,messageDisplayType,cssType);
     }
    
    return isOK;
}

function ValidatePassword(id,clientID,messageDisplayType,cssType)
{
    var isOK=CheckPassword(id);
     DisplayMessage(isOK,clientID,3,messageDisplayType,cssType);
    
    return isOK;
}

function ValidateRePassword(id,clientID,passwordID,messageDisplayType,cssType)
{
    var isOK=false;
    var rePassword=document.getElementById(id).value.trim();
    var password=document.getElementById(passwordID).value.trim()
    if(rePassword!='' && rePassword==password )
        isOK=true;
    DisplayMessage(isOK,clientID,3,messageDisplayType,cssType);
    
    return isOK;
}

function ValidateQuestion(id,clientID,messageDisplayType,cssType)
{
    var isOK=true;
    var question= document.getElementById(id).value.trim();
    var questionLen=getlength(question);
    if(question=='' || questionLen<4 || questionLen>20 ||  !(/^[A-Za-z0-9\-_@\.\u4e00-\u9fa5]+$/gi.test(question)))
        isOK=false;
        
    DisplayMessage(isOK,clientID,5,messageDisplayType,cssType);
    
    return isOK;
}

function ValidateCode(id,clientID,messageDisplayType,cssType)
{
    var codeValue= document.getElementById(id).value.trim();
    var isOK= TextBoxControl.CheckValidateCode(codeValue).value;
     DisplayMessage(isOK,clientID,7,messageDisplayType,cssType);
    
    return isOK;
}


function SymmetricPassword(str)
{
    var encodeStr= TextBoxControl.Symmetric(str).value;
    return encodeStr;
}

function CheckUserName(id,type)
{
    var userName=document.getElementById(id).value.trim();
    var userNameLen=getlength(userName);
    //var regx=new RegExp("^[u4e00-u9fa5\da-zA-Z]$");
    //var isExist;
    //if(userNameLen>=6 && userNameLen<=12 && regx.exec(userName))
    if(userNameLen>=6 && userNameLen<=12 && /^[A-Za-z0-9\-_@\.\u4e00-\u9fa5]+$/gi.test(userName))
    {
        return true;
//        isExist=TextBoxControl.UserNameIsExist(userName).value
//        if(type==0)//reg
//            return !isExist;
//        else
//            return isExist;
    }
    else
    {
        return false;
    }
}

function CheckIsExistUserName(id)
{
    var userName=document.getElementById(id).value.trim();
    if(TextBoxControl.UserNameIsExist(userName).value)
        return true;
    else
        return false;
}
function CheckPassword(id)
{
    var password=document.getElementById(id).value.trim();
    var passwordLen=getlength(password);
    if(passwordLen<6 || passwordLen>20)
        return false;
    else
        return true;
    
}


function DisplayMessage(isOK,clientID,messageType,messageDisplayType,cssType)
{
    if(messageDisplayType==0)//use div display message
    {
        HandleMessage(isOK,clientID,messageType,cssType);
    }
    else//alert
    {
        if(!isOK)
            alert(GetMessageBody(messageType));
    }    
}
function HandleMessage(isOK,clientID,messageType,cssType)
{
    var panel=document.getElementById(clientID+'_info');
    if(isOK)
    {
        panel.className=GetMessageCssName(cssType,0);
        panel.innerText="√";
       
    }
    else
    {
        panel.className=GetMessageCssName(cssType,1);;
        panel.innerText=GetMessageBody(messageType);
    }
}
function GetMessageCssName(cssType,infoType)
{
    var css="";
     switch(cssType)
    {
        case 0://reg
            css= "tab03";
            if(infoType==1)
                css="tab04";
        break;
        case 1://login
            css= "sup_zhi03";
            if(infoType==1)
                css="sup_zhi04";
        break;
        case 2:
            css= "tab03";
            if(infoType==1)
                css="tab04";
        break;
        case 3://modifypassword
            css= "tab03";
            if(infoType==1)
                css="tab04";
        break;
    }
    
    return css;
}
function GetMessageBody(messageType)
{
    switch(messageType)
    {
        case 1:
           return "用户名不正确，请输入6-12个字符或3-6个汉字，以及-_@.符号。";
        case 2:
           return "用户名已存在，请重新输入。";
        case 3:
            return "密码不正确，请输入6-20个字符。";
        case 5:
            return "答案不正确，请输入4-20个字符或2-10个汉字，以及-_@.符号。"
        case 7:
            return "验证码不正确";
    }
}