﻿CreateAccountClass = function() {
    var self = this;
    this.FirstCheckHandler = function() {
        var email = jQuery("#tbEmail").val();
        var pwd = jQuery("#tbPassword").val();
        var pwd2 = jQuery("#tbCPassword").val();
        var boo = true;
        if (CreateAccountObj.CheckEmail(jQuery("#tbEmail").val())) {
            var boo3 = CreateAccount.CheckAccount(jQuery("#tbEmail").val()).value;
            if (boo3) {
                boo = false;
                this.ShowErrorMsg("tbEmail", "E-mail already registered");
            } else {
                this.ShowErrorMsg("tbEmail", "");
            }
            CreateAccountObj.CheckYesOrNo("tbEmail", !boo3);
        } else {
            boo = false;
            CreateAccountObj.CheckYesOrNo("tbEmail", boo);
        }


        var divArr = ["tbPassword", "tbCPassword"];
        var boolArr = [this.CheckPassword(pwd, pwd2), this.CheckCPassword(pwd, pwd2)];

        for (var i = 0; i < divArr.length; i++) {
            //this.CheckYesOrNo(divArr[i],boolArr[i]);
            CreateAccountObj.OnFocusOutHandler(divArr[i]);
            if (boo && boolArr[i] == false) boo = false;
        }

        if (document.getElementById("ckAgreement").checked == false) {
            alert("Please read user agreement first");
            return false;
        }

        return boo;
    }

    this.CheckEmail = function(str) {
        if (str == "" || str == null) return false;
        var reg = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/gi;
        var Match = str.match(new RegExp(reg));
        return (Match != null);
    }

    this.CheckPassword = function(pwd, pwd2) {
        var match = pwd.match(new RegExp(/^[a-zA-Z0-9!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_]{6,16}$/gi));
        return match != null;
    }


    this.CheckCPassword = function(pwd, pwd2) {
        var match = pwd2.match(new RegExp(/^[a-zA-Z0-9!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_]{6,16}$/gi));
        if (match == null) return false;
        return (pwd == pwd2);
    }

    //初始化第一张页面
    this.InitPage = function() {
        //将勾和叉去掉
        var arr = ["tbEmail", "tbPassword", "tbCPassword"];
        for (var i = 0; i < arr.length; i++) {
            this.CheckYesOrNo(arr[i]);
            this.OnFocusOut(arr[i]);
        }
    }

    //检查是否正确
    this.CheckYesOrNo = function(textID, flag) {
        //alert(textID+","+flag);
        var span = jQuery("#" + textID).parent().find("SPAN");

        if (span.length == 0) return; //{jQuery("#"+textID).parent().append("<SPAN />");span = jQuery("#"+textID).parent().find("SPAN");}

        span.removeClass();

        if (flag == null) return;

        if (flag) { span.addClass("yes"); }
        else { span.addClass("No"); }
    }

    this.ShowErrorMsg = function(divID, msg) {
        //<p class="err">5-12 characters, no spaces and must be unique</p>   style='color:#ff0000;'

        var strong = jQuery("#" + divID).parent();
        var td = jQuery(strong).parent();
        var p = jQuery(td).find("P");
        if (p.length == 0) {
            jQuery(strong).after("<P class='err'/>");
            p = jQuery(td).find("P");
        }
        if (msg != null && msg != "") { jQuery(p).html(msg).show(); }
        else { jQuery(p).hide(); }
    }


    //注册失去焦点事件
    this.OnFocusOut = function(divID) {
        jQuery("#" + divID).blur(function() {
            CreateAccountObj.OnFocusOutHandler(divID);
        });
    }

    this.OnFocusOutHandler = function(divID) {
        //alert(divID);
        var boo;
        switch (divID) {
            case "tbEmail":
                boo = CreateAccountObj.CheckEmail(jQuery("#tbEmail").val());
                if (boo) {
                    var boo3 = CreateAccount.CheckAccount(jQuery("#tbEmail").val()).value;
                    if (boo3) {
                        this.ShowErrorMsg(divID, "E-mail already registered");
                    } else {
                        this.ShowErrorMsg(divID, "");
                    }
                    CreateAccountObj.CheckYesOrNo(divID, !boo3);
                } else {
                    CreateAccountObj.CheckYesOrNo(divID, boo);
                }
                break;

            case "tbPassword":
                CreateAccountObj.CheckYesOrNo(divID, CreateAccountObj.CheckPassword(jQuery("#tbPassword").val(), jQuery("#tbCPassword").val()));
                if (jQuery("#tbCPassword").val() != "") CreateAccountObj.CheckYesOrNo("tbCPassword", CreateAccountObj.CheckCPassword(jQuery("#tbPassword").val(), jQuery("#tbCPassword").val()));
                break;

            case "tbCPassword":
                CreateAccountObj.CheckYesOrNo(divID, CreateAccountObj.CheckCPassword(jQuery("#tbPassword").val(), jQuery("#tbCPassword").val()));
                break;

        }
    }

    //初始化页面
    this.InitPage();

    //测试
    //this.InitDate(); 
}

