﻿var vPostPage = "Handler.ashx";
var b_IsUserInfoOK = true;
var fnameOK = false;
var lnameOK = false;
var unameOK = false;
var passOK = false;
var confirmpassOK = false;
var emailOK = false;
var genderOK = false;
var birthdayOK = false;
var giftcodeOK = false;
String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); }
String.prototype.LTrim = function() { return this.replace(/(^\s*)/g, ""); }
String.prototype.RTrim = function() { return this.replace(/(\s*$)/g, ""); }

//判断指定字符串是否包含中文(也可包含其他字符)
function isChinese(s)
{
    var re = new RegExp("[\\u4e00-\\u9fa5]", "");
    return re.test(s);
}
//获取字符串的实际长度(一个中文字符占2个字节)
function getLength(s)
{
    var j=0;
    if(s==null) return j;
    for(var i=0;i<s.length;i++)
    {
        if(s.substr(i,1).charCodeAt(0)>255)
            j=j+2;
        else
            j++;
    }
	return j;
}

function validate()
{
    var inputObj = document.getElementById('cb_agree');
    var btnObj = document.getElementById('btn_Register');
    
    b_IsUserInfoOK = fnameOK && lnameOK && unameOK && passOK && confirmpassOK && emailOK && genderOK && birthdayOK && giftcodeOK;
    alert(inputObj.checked.toString() + ', ' + b_IsUserInfoOK.toString());
    if (inputObj.checked == false || b_IsUserInfoOK == false)
    {
        return false;
    }
    else
    {
        return true;
    }
}

function firstname(TipID)
{
    var inputObj = document.getElementById('txt_FName');
    var ObjValue = inputObj.value.Trim();
    var tipObj = document.getElementById(TipID);
    
    refreshcheck();
    
    if(ObjValue.length == 0)
    {
        tipObj.innerHTML = PROMPT_REQUIRED;
        fnameOK = false;
    }
    else if (ObjValue.length > 30)
    {
        tipObj.innerHTML = PROMPT_INVALID_FIRSTNAME;
        fnameOK = false;
    }
    else
    {
        tipObj.innerHTML = PROMPT_OK;
        fnameOK = true;
    }
}
function lastname(TipID)
{
    var inputObj = document.getElementById('txt_LName');
    var ObjValue = inputObj.value.Trim();
    var tipObj = document.getElementById(TipID);
    
    refreshcheck();
    
    if(ObjValue.length == 0)
    {
        tipObj.innerHTML = PROMPT_REQUIRED;
        lnameOK = false;
    }
    else if (ObjValue.length > 30)
    {
        tipObj.innerHTML = PROMPT_INVALID_LASTNAME;
        lnameOK = false;
    }
    else
    {
        tipObj.innerHTML = PROMPT_OK;
        lnameOK = true;
    }
}
function username(TipID)
{
    var inputObj = document.getElementById('txt_UName');
    var ObjValue = inputObj.value.Trim();
    var tipObj = document.getElementById(TipID);
    
    refreshcheck();
    
    var slen = getLength(ObjValue);
    if(slen == 0)
    {
        tipObj.innerHTML = PROMPT_REQUIRED;
        unameOK = false;
    }
    else if(slen<5 || slen>15)
    {
        tipObj.innerHTML = PROMPT_INVALID_LENGTH;
        unameOK = false;
    }
    else if(ObjValue.indexOf(' ') > 0)
    {
        tipObj.innerHTML = PROMPT_INVALID_LENGTH;
        unameOK = false;
    }
    else {
        var sQueryString = "item=username&value=" + encodeURIComponent(ObjValue) + "&rndnum=" + String(Math.round(Math.random()*10000));
        var clsAjax = new Ajax(vPostPage, sQueryString, fun_usernameData, null, 0);
        if (clsAjax != null)
            clsAjax.get();
    }
}
function pin(TipID)
{
    var inputObj = document.getElementById('txt_pwd');
    var ObjValue = inputObj.value.Trim();
    var tipObj = document.getElementById(TipID);
    
    refreshcheck();
    
    var plen = getLength(ObjValue);
    if(plen == 0)
    {
        tipObj.innerHTML = PROMPT_REQUIRED;
        passOK = false;
    }
    else if(plen < 6 || plen > 30)
    {
        tipObj.innerHTML = PROMPT_INVALID_PWD;
        passOK = false;
    }
    else
    {
        tipObj.innerHTML = PROMPT_OK;
        passOK = true;
    }
}

function pinconfirm(TipID)
{
    var inputObj = document.getElementById('txt_confirmpwd');
    var ObjValue = inputObj.value.Trim();
    var tipObj = document.getElementById(TipID);
    
    refreshcheck();
    
    var plen = getLength(ObjValue);
    if(plen == 0)
    {
        tipObj.innerHTML = PROMPT_REQUIRED;
        confirmpassOK = false;
    }
    else if (ObjValue != document.getElementById('txt_pwd').value.Trim()) 
    {
        tipObj.innerHTML = PROMPT_PWD_NOT_MATCH;
        confirmpassOK = false;
    }
    else
    {
        tipObj.innerHTML = PROMPT_OK;
        confirmpassOK = true;
    }
}

function email(TipID)
{
    var inputObj = document.getElementById('txt_Email');
    var ObjValue = inputObj.value.Trim();
    var tipObj = document.getElementById(TipID);
    
    
    refreshcheck();
    
    if(ObjValue.length == 0)
    {
        tipObj.innerHTML = PROMPT_REQUIRED;
        emailOK = false;
    }
    else
    {
        var sQueryString = "item=email&value=" + ObjValue + "&rndnum=" + String(Math.round(Math.random()*10000));
        var clsAjax = new Ajax(vPostPage, sQueryString, fun_emailData, null, 0);
        if (clsAjax != null)
            clsAjax.get();
    }
}
function gender(TipID)
{
    var tipObj = document.getElementById(TipID);
    if(document.getElementById('rbl_Gender_0').checked == false && document.getElementById('rbl_Gender_1').checked == false)
    {
        tipObj.innerHTML = PROMPT_MUST_SELECTED;
        genderOK = false;
    }
    else
    {
        tipObj.innerHTML = PROMPT_OK;
        genderOK = true;
    }
}
function birthday(TipID)
{
    var yearStr = document.getElementById('ddl_year').value;
    var monthStr = document.getElementById('ddl_month').value;
    var dateStr = document.getElementById('ddl_date').value;
    var tipObj = document.getElementById(TipID);
    
    
    refreshcheck();
    
    if(yearStr == '' || monthStr == '' || dateStr == '')
    {
        tipObj.innerHTML = PROMPT_MUST_SELECTED2;
        b_IsUserInfoOK = false;
    }
    else
    {
        if(isDate(yearStr + '-' + monthStr + '-' + dateStr))
        {
            var crtDate = new Date();
            if (crtDate.getFullYear() - parseInt(yearStr) > 13)
            {
                tipObj.innerHTML = PROMPT_OK;
                birthdayOK = true;
            }
            else
            {
                tipObj.innerHTML = PROMPT_NOT_ENOUGH_AGE;
                birthdayOK = false;
            }
        }
        else
        {
            tipObj.innerHTML = PROMPT_TRY_AGAIN;
            birthdayOK = false;
        }
    }
}

function giftcode(TipID)
{
    if(document.getElementById('txt_GiftCode'))
    {
        var inputObj = document.getElementById('txt_GiftCode');
        var ObjValue = inputObj.value.Trim();
        var tipObj = document.getElementById(TipID);
        
        
        refreshcheck();
        
        if(ObjValue.length > 0)
        {
            var sQueryString = "item=giftcode&value=" + ObjValue + "&rndnum=" + String(Math.round(Math.random()*10000));
            var clsAjax = new Ajax(vPostPage, sQueryString, fun_giftcodeData, null, 0);
            if (clsAjax != null)
                clsAjax.get();
        }
        else
        {
            giftcodeOK = true;
        }
    }
    else
    {
        giftcodeOK=true;
    }
}

function agreecheck()
{
    var inputObj = document.getElementById('cb_agree');
    var btnObj = document.getElementById('btn_Register');
    if (inputObj.checked == true)
    {
        genderOK = document.getElementById('rbl_Gender_0').checked || document.getElementById('rbl_Gender_1').checked;
        
        if(!fnameOK)
        {
            firstname('lbl_FName');
        }
        if(!lnameOK)
        {
            lastname('lbl_LName');
        }
        if(!unameOK)
        {
            username('lbl_UName');
        }
        if(!passOK)
        {
            pin('lbl_pwd');
        }
        if (!confirmpassOK)
        {
            pinconfirm('lbl_confirmpwd');
        }
        if(!emailOK)
        {
            email('lbl_Email');
        }            
        if(!genderOK)
        {
            gender('lbl_Gender');
        }
        if(!birthdayOK)
        {
            birthday('lbl_Birthday');
        }
        if(!giftcodeOK)
        {
            giftcode('lbl_GiftCode');
        }
        
        b_IsUserInfoOK = fnameOK && lnameOK && unameOK && passOK && confirmpassOK && emailOK && genderOK && birthdayOK && giftcodeOK;
        
        if(b_IsUserInfoOK)
        {
            btnObj.disabled = false;
            btnObj.className = 'submit';
            inputObj.checked = true;
        }
        else
        {
            btnObj.disabled = true;
            btnObj.className = 'submit2';
            inputObj.checked = false;
        }
    }
    else
    {
        btnObj.disabled = true;
        btnObj.className = 'submit2';
        inputObj.checked = false;
    }
}
//Ajax回调函数
function fun_usernameData(res)
{
    var tipObj = document.getElementById('lbl_UName');
    if(res != null)
    {
        if(res.toString() == 'true')
        {
            tipObj.innerHTML = PROMPT_OK;
            unameOK = true;
        }
        else
        {
            tipObj.innerHTML = PROMPT_USER_EXIST;
            unameOK = false;
        }
    }
    else
    {
        tipObj.innerHTML = PROMPT_TRY_AGAIN;
        unameOK = false;
    }
}
function fun_emailData(res)
{
    var tipObj = document.getElementById('lbl_Email');
    if(res != null)
    {
        if(res.toString() == 'true')
        {
            tipObj.innerHTML = PROMPT_OK;
            emailOK = true;
        }
        else
        {
            tipObj.innerHTML = PROMPT_INVALID_EMAIL;
            emailOK = false;
        }
    }
    else
    {
        tipObj.innerHTML = PROMPT_TRY_AGAIN;
        emailOK = false;
    }
}
function fun_giftcodeData(res)
{
    var tipObj = document.getElementById('lbl_GiftCode');
    if(res != null)
    {
        if(res.toString() == '1')
        {
            tipObj.innerHTML = PROMPT_OK;
            giftcodeOK = true;
        }
        else if(res.toString() == '2'||res.toString()=='5')
        {
            tipObj.innerHTML = PROMPT_INVALID_GIVEAWAY;
            giftcodeOK = false;
        }
        else if(res.toString()=='3')
        {
            tipObj.innerHTML = PROMPT_GIVEAWAY_USED;
            giftcodeOK=false;

        }
        else if(res.toString()=='4')
        {
            tipObj.innerHTML = PROMPT_GIVEAWAY_USEAGAIN;
            giftcodeOK=false;
        }
    }
    else
    {
        tipObj.innerHTML = PROMPT_TRY_AGAIN;
        giftcodeOK = false;
    }
}
function isDate(dateStr)
{
    if(dateStr.length==0)
        return false;
    
    var reg = /^(\d{4})(\/|-)(\d{1,2})\2(\d{1,2})$/;
    var arr = reg.exec(dateStr);
    if(arr == null)
        return false;
    var date = new   Date(arr[1],arr[3]-1,arr[4]);
    return date.getFullYear()==arr[1] && date.getMonth()==(arr[3]-1) && date.getDate()==arr[4];
}
function refreshcheck()
{
    var checkObj = document.getElementById('cb_agree');
    var btnObj = document.getElementById('btn_Register');
    
    checkObj.checked = false;
    btnObj.disabled = true;
    btnObj.className = 'submit2';
}
