﻿/// <summary>
/// FileName : Register.aspx.js
/// Author : 
/// Description : Register.aspx页面的后台Ajax脚本
/// </summary>

/// <summary>
/// 将各种控件生命为全局变量，方便调用
/// </summary>
var tbUserName;
var tbPassword;
var tbPasswordCheck;
var tbEmail;
var tbRealName;
var tbFrom;
var tbTel;
var tbQQ;
var sltSex;
var tbAge;
var btnSubmit;
var btnCancel;
var vUserName;
var vPassword;
var vPasswordCheck;
var vEmail;
var vTel;
var vQQ;
var vAge;
var mask;
var result;
var infoText;

Sys.Application.add_init(onPageInit);

function onPageInit() {
    /// <summary>
    /// 图片预加载
    /// </summary>
    var imgInfoBg = new Image();
    var imgLoadingValidate = new Image();
    var imgLoadingProcess = new Image();
    imgInfoBg.src = "Images/bg_info.gif";
    imgLoadingValidate.src = "Icons/loading_validate.gif";
    imgLoadingProcess.src = "Icons/loading_process.gif";
    
    /// <summary>
    /// 创建客户端控件
    /// </summary>
    tbUserName=$create(Sys.Preview.UI.TextBox,null,null,null,$get("Name"));
    tbPassword=$create(Sys.Preview.UI.TextBox,null,null,null,$get("Password"));
    tbPasswordCheck=$create(Sys.Preview.UI.TextBox,null,null,null,$get("PasswordCheck"));
    tbEmail=$create(Sys.Preview.UI.TextBox,null,null,null,$get("Email"));
    tbRealName=$create(Sys.Preview.UI.TextBox,null,null,null,$get("RealName"));
    tbFrom=$create(Sys.Preview.UI.TextBox,null,null,null,$get("From"));
    tbTel=$create(Sys.Preview.UI.TextBox,null,null,null,$get("Tel"));
    tbQQ=$create(Sys.Preview.UI.TextBox,null,null,null,$get("QQ"));
    sltSex=$create(Sys.Preview.UI.Selector,null,null,null,$get("Sex"));
    tbAge=$create(Sys.Preview.UI.TextBox,null,null,null,$get("Age"));
    btnSubmit=$create(Sys.Preview.UI.Button,null,null,null,$get("Submit"));
    btnCancel=$create(Sys.Preview.UI.Button,null,null,null,$get("Cancel"));
    vUserName=$create(NBBS.CustomControl.UserNameValidator,null,null,null,$get("NameValidator"));
    vPassword=$create(NBBS.CustomControl.PasswordValidator,null,null,null,$get("PasswordValidator"));
    vPasswordCheck=$create(NBBS.CustomControl.PasswordCheckValidator,null,null,null,$get("PasswordCheckValidator"));
    vEmail=$create(NBBS.CustomControl.EmailValidator,null,null,null,$get("EmailValidator"));
    vTel=$create(NBBS.CustomControl.CustomValidator,{tip: "请输入手机或座机号码",errorMessage: "电话号码格式不正确",allowEmpty: true,textBox: tbTel,regularExpression: ""},null,null,$get("TelValidator"));
    vQQ=$create(NBBS.CustomControl.CustomValidator,{tip: "请输入您的QQ号",errorMessage: "QQ号码格式不合法",allowEmpty: true,textBox: tbQQ,regularExpression: "^\\d{5,}$"},null,null,$get("QQValidator"));
    vAge=$create(NBBS.CustomControl.CustomValidator,{tip: "请输入您的年龄",errorMessage: "年龄不合法，年龄必须是1-200之间的数字",allowEmpty: true,textBox: tbAge,regularExpression: ""},null,null,$get("AgeValidator"));
    mask=$create(NBBS.CustomControl.MaskWindow,{windowElement: $get("info"),windowWidth: 400,windowHeight: 150},null,null,$get("mask"));
    result=$create(NBBS.CustomControl.InformationPanel,{loadingIcon: "Icons/loading_process.gif"},null,null,$get("result"));
    //$create(NBBS.CustomBehavior.DragBehavior,{dragElement: $get("info")},null,null,$get("infoWindowHead"));
    infoText = $create(Sys.Preview.UI.Label,null,null,null,$get("infoText"));
    
    /// <summary>
    /// 创建事件监听
    /// </summary>
    $addHandler($get("Name"),"blur",tbUserName_onBlur);
    $addHandler($get("Password"),"blur",tbPassword_onBlur);
    $addHandler($get("PasswordCheck"),"blur",tbPasswordCheck_onBlur);
    $addHandler($get("Email"),"blur",tbEmail_onBlur);
    $addHandler($get("Tel"),"blur",tbTel_onBlur);
    $addHandler($get("QQ"),"blur",tbQQ_onBlur);
    $addHandler($get("Age"),"blur",tbAge_onBlur);
    btnSubmit.add_click(btnSubmit_onClick);
    btnCancel.add_click(btnCancel_onClick);
}

/// <summary>
/// tbUserName失去焦点处理函数
/// 数据验证
/// </summary>
function tbUserName_onBlur() {
    vUserName.set_data(tbUserName.get_text());
    vUserName.validate();
}

/// <summary>
/// tbPassword失去焦点处理函数
/// 数据验证
/// </summary>
function tbPassword_onBlur() {
    vPassword.set_data(tbPassword.get_text());
    vPassword.validate();
    
    vPasswordCheck.initialize();
    tbPasswordCheck.set_text("");
}

/// <summary>
/// tbPasswordCheck失去焦点处理函数
/// 数据验证
/// </summary>
function tbPasswordCheck_onBlur() {
    vPasswordCheck.set_data(tbPasswordCheck.get_text());
    vPasswordCheck.set_checkData(tbPassword.get_text());
    vPasswordCheck.validate();
}

/// <summary>
/// tbEmail失去焦点处理函数
/// 数据验证
/// </summary>
function tbEmail_onBlur() {
    vEmail.set_data(tbEmail.get_text());
    vEmail.validate();
}

/// <summary>
/// tbTel失去焦点处理函数
/// 数据验证
/// </summary>
function tbTel_onBlur() {
    vTel.set_data(tbTel.get_text());
    vTel.validate();
}

/// <summary>
/// tbQQ失去焦点处理函数
/// 数据验证
/// </summary>
function tbQQ_onBlur() {
    vQQ.set_data(tbQQ.get_text());
    vQQ.validate();
}

/// <summary>
/// tbAge失去焦点处理函数
/// 数据验证
/// </summary>
function tbAge_onBlur() {
    vAge.set_data(tbAge.get_text());
    vAge.validate();
}

/// <summary>
/// btnSubmit单击处理函数
/// 提交注册
/// </summary>
function btnSubmit_onClick() {
    result.showProcess();
    btnSubmit.get_element().disabled="true";
    btnCancel.get_element().disabled="true";
    
    if(vUserName.get_isPass() === true &&
       vPassword.get_isPass() === true &&
       vPasswordCheck.get_isPass() === true &&
       vEmail.get_isPass() === true &&
       vTel.get_isPass() === true &&
       vQQ.get_isPass() === true &&
       vAge.get_isPass() === true)
    {
        var user = new NBBS.Entity.UserInfo();
        user.Name = tbUserName.get_text();
        user.Password = tbPassword.get_text();
        user.Email = tbEmail.get_text();
        user.RealName = tbRealName.get_text();
        user.From = tbFrom.get_text();
        user.Tel = tbTel.get_text();
        user.QQ = tbQQ.get_text();
        user.Sex = sltSex.get_selectedValue();
        user.Age = tbAge.get_text();
        
        UserPL.Register(user,onRegisterSucceeded,onRegisterFailed);
    }
    else
    {
        result.set_errorMessage("您输入的信息不完整，或者没有全部通过验证，请检查");
        result.showError();
    }
    
    btnSubmit.get_element().disabled="";
    btnCancel.get_element().disabled="";
}

/// <summary>
/// btnCancel单击处理函数
/// 重置表单
/// </summary>
function btnCancel_onClick() {
    reset();
}

/// <summary>
/// 注册操作完成后的回调函数
/// </summary>
function onRegisterSucceeded(response) {
    sltSex.get_element().disabled="true";
    result.hide();
    reset();
    infoText.set_text("恭喜！注册成功！");
    mask.show();
}

/// <summary>
/// 注册操作的异常处理
/// </summary>
function onRegisterFailed(error) {
    result.set_errorMessage(error.get_message());
    result.showError();
}

/// <summary>
/// 表单重置
/// </summary>
function reset() {
    tbUserName.set_text("");
    tbPassword.set_text("");
    tbPasswordCheck.set_text("");
    tbEmail.set_text("");
    tbRealName.set_text("");
    tbFrom.set_text("");
    tbTel.set_text("");
    tbQQ.set_text("");
    sltSex.set_selectedValue("保密");
    tbAge.set_text("");
    
    vUserName.initialize();
    vPassword.initialize();
    vPasswordCheck.initialize();
    vEmail.initialize();
    vTel.initialize();
    vQQ.initialize();
    vAge.initialize();
}

/// <summary>
/// 关闭模态窗体
/// </summary>
function close() {
    sltSex.get_element().disabled="";
    mask.hide();
}

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();




