﻿/// <summary>
/// FileName : EmailValidator.js
/// Author : 
/// Description : 自定义ASP.NET Ajax客户端组件，用于E-mail格式的有效性验证（正确格式：username@hostname.xxx）
/// ClassName : NBBS.CustomControl.EmailValidator
/// Namespace : NBBS.CustomControl
/// Inheritee : Sys.UI.Control
/// </summary>

Type.registerNamespace('NBBS.CustomControl');

NBBS.CustomControl.EmailValidator = function(associatedElement) {
    NBBS.CustomControl.EmailValidator.initializeBase(this, [associatedElement]);
}

NBBS.CustomControl.EmailValidator.prototype = {
    /// <summary>
    /// 私有成员变量
    /// </summary>
    /// <param name="_data">待验证数据</param>
    /// <param name="_isPass">是否通过验证</param>
    _data: null,
    _isPass :false,
    
    /// <summary>
    /// 属性
    /// </summary>
    get_data: function() {
        return this._data;
    },

    set_data: function(value) {
        if (this._data !== value) {
            this._data = value;
            this.raisePropertyChanged('data');
        }
    },
    
    get_isPass: function() {
    return this._isPass;
    },

    set_isPass: function(value) {
        if (this._isPass !== value) {
            this._isPass = value;
            this.raisePropertyChanged('isPass');
        }
    },

    /// <summary>
    /// 构造函数
    /// </summary>
    initialize: function() {
        NBBS.CustomControl.EmailValidator.callBaseMethod(this, 'initialize');
    
        this.get_element().innerHTML="<font color=\"#CCCCCC\">正确的E-mail格式为：username@hostname.xxx</font>";
        this.set_isPass(false);
    },

    /// <summary>
    /// 析构函数
    /// </summary>
    dispose: function() {
        if(this.get_element())
        {
            this.get_element().innerHTML="";
        }
    
        NBBS.CustomControl.EmailValidator.callBaseMethod(this, 'dispose');
    },

    /// <summary>
    /// 对数据进行验证
    /// </summary>
    validate: function() {
        this.get_element().innerHTML="<img src=\"Icons/loading_validate.gif\" alt=\"\" />&nbsp;<font color=\"CCCCCC\">正在验证E-mail……</font>";
        Validate.ValidateEmail(this.get_data(),this.onSucceeded,this.onFailed,this);
    },

    /// <summary>
    /// 验证正常进行时的回调函数
    /// </summary>
    onSucceeded: function(result,validator) {
        if(result==0)
        {
            validator.get_element().innerHTML="<img src=\"Icons/icon_ok.gif\" alt=\"\" />";
            validator.set_isPass(true);
        }
        else
        {
            validator.get_element().innerHTML="<font color=\"#FF0000\">E-mail格式不合法，请输入类似username@hostname.com的形式</font>";
            validator.set_isPass(false);
        }
    },
    
    /// <summary>
    /// 验证出现异常，无法进行时的回调
    /// </summary>
    onFailed: function(error,validator) {
        validator.get_element().innerHTML="<font color=\"#FF0000\">内部错误，无法完成检验，请与管理员联系</font>";
    }
}

NBBS.CustomControl.EmailValidator.registerClass('NBBS.CustomControl.EmailValidator', Sys.UI.Control);

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
