﻿/// <reference path="jquery-1.2.6-vsdoc-cn.js" />

Array.toArray = function() {
    return $.browser.msie ?
        function(a, i, j, res) {
            res = [];
            $.each(a, function(i, v) {
                res.push(v);
            });
            return res.slice(i || 0, j || res.length);
        } :
        function(a, i, j) {
            return Array.prototype.slice.call(a, i || 0, j || a.length);
        }
} ();

//扩展String的format方法
String.format = function(format) {
    var args = Array.toArray(arguments, 1);
    return format.replace(/\{(\d+)\}/g, function(m, i) {
        return args[i];
    });
};

$(document).ready(function() {

    var isEmail = function(str) {
        res = /^[0-9a-zA-Z_\-\.]+@[0-9a-zA-Z_\-]+(\.[0-9a-zA-Z_\-]+)*$/;
        var re = new RegExp(res);
        return !(str.match(re) == null);
    }

    var strLoading = '<img src="images/signup-loading.gif">';

    var strMailFormatError = '<span style="padding:1px 0 1px 25px;color:red;background:transparent url(images/signup-wrong.png) no-repeat scroll 5px center">Email格式有误，请重新输入</span>';
    var strMailFormatOk = '<span style="padding:1px 0 1px 25px;color:red;background:transparent url(images/signup-right.png) no-repeat scroll 5px center"></span>';
    var strMailIsExists = '<span style="padding:1px 0 1px 25px;color:red;background:transparent url(images/signup-wrong.png) no-repeat scroll 5px center">此EMail已被注册，请重新输入</span>';

    var strNickFormatError = '<span style="padding:1px 0 1px 25px;color:red;background:transparent url(images/signup-wrong.png) no-repeat scroll 5px center">昵称长度太短，最少 2 个字符</span>';
    var strNickFormatOk = '<span style="padding:1px 0 1px 25px;color:red;background:transparent url(images/signup-right.png) no-repeat scroll 5px center"></span>';
    var strNickIsExists = '<span style="padding:1px 0 1px 25px;color:red;background:transparent url(images/signup-wrong.png) no-repeat scroll 5px center">此昵称已存在，请重新输入</span>';

    var userinfo = {};
    $('#txtMail').blur(function(e) {
        if (!userinfo.mail) {
            if (isEmail($('#txtMail').val())) {
                //通过ajax方式检测是否有效
                $('#lblMailInfo').html(strLoading);

                $.ajax({//此格式请参照jQuery帮助文档
                    type: "POST", //一定要用POST，所以不用$.ajax方法的话就只能用$.post方法
                    url: "WCF/RegisterService.svc/CheckMail", //svc文件的路径/svc.cs中的UriTemplate值
                    contentType: 'application/json',
                    dataType: "json",
                    data: '{"mail":"' + $('#txtMail').val() + '"}',
                    success: function(obj) {
                        if (obj.CheckMailResult == 200) {
                            userinfo.mail = $('#txtMail').val();
                            $('#lblMailInfo').html(strMailFormatOk);
                        }
                        else {
                            $('#lblMailInfo').html(strMailIsExists);
                        }
                    }
                });
            }
            else {
                $('#lblMailInfo').html(strMailFormatError);
            }
        }
    });
    $('#txtMail').change(function() {
        userinfo.mail = null;
    });


    $('#txtNickName').blur(function(e) {
        if (!userinfo.nickName) {
            if ($('#txtNickName').val().length >= 2) {
                //通过ajax方式检测是否有效
                $('#lblNickInfo').html(strLoading);

                $.ajax({//此格式请参照jQuery帮助文档
                    type: "POST", //一定要用POST，所以不用$.ajax方法的话就只能用$.post方法
                    url: "WCF/RegisterService.svc/CheckNickName", //svc文件的路径/svc.cs中的UriTemplate值
                    contentType: 'application/json',
                    dataType: "json",
                    data: '{"nickName":"' + $('#txtNickName').val() + '"}',
                    success: function(obj) {
                        if (obj.CheckNickNameResult == 200) {
                            userinfo.nickName = $('#txtNickName').val();
                            $('#lblNickInfo').html(strNickFormatOk);
                        }
                        else {
                            $('#lblNickInfo').html(strNickIsExists);
                        }
                    }
                });
            }
            else {
                $('#lblNickInfo').html(strNickFormatError);
            }
        }
    });
    $('#txtNickName').change(function() {
        userinfo.nickName = null;
    });

    var strPassFormatError = '<span style="padding:1px 0 1px 25px;color:red;background:transparent url(images/signup-wrong.png) no-repeat scroll 5px center">密码长度太短，最少 4 个字符</span>';
    var strPassError = '<span style="padding:1px 0 1px 25px;color:red;background:transparent url(images/signup-wrong.png) no-repeat scroll 5px center">密码不一致，请重新输入</span>';
    var strPassOk = '<span style="padding:1px 0 1px 25px;color:red;background:transparent url(images/signup-right.png) no-repeat scroll 5px center"></span>';

    var validPass = function() {
        if ($('#txtPass').val() == $('#txtVerifyPass').val()) {
            $('#lblPassInfo').html(strPassOk);
            $('#lblverifypassInfo').html(strPassOk);
            userinfo.pass = hex_md5($('#txtPass').val());
        }
        else {
            $('#lblPassInfo').html('');
            $('#lblverifypassInfo').html(strPassError);
            userinfo.pass = null;
        }
    };

    $('#txtPass').change(function() {
        if ($('#txtPass').val().length < 4) {
            $('#lblPassInfo').html(strPassFormatError);
        }
        else {
            validPass();
        }
    });
    $('#txtVerifyPass').change(function() {
        if ($('#txtVerifyPass').val().length < 4) {
            $('#lblverifypassInfo').html(strPassFormatError);
        }
        else {
            validPass();
        }
    });

    if (!$.browser.msie) {
        $('#txtVerifyPass').keydown(function(e) {
            if (e.keyCode == 13)
                $('#btRegister').focus();
        });
    }

    $('#btRegister').click(function() {
        if (userinfo.mail && userinfo.nickName && userinfo.pass) {
            $.ajax({//此格式请参照jQuery帮助文档
                type: "POST", //一定要用POST，所以不用$.ajax方法的话就只能用$.post方法
                url: "WCF/RegisterService.svc/CreateUser", //svc文件的路径/svc.cs中的UriTemplate值
                contentType: 'application/json',
                dataType: "json",
                data: String.format('{"mail":"{0}","nickName":"{1}","pass":"{2}"}', userinfo.mail, userinfo.nickName, userinfo.pass),
                success: function(obj) {
                    if (obj.CreateUserResult) {
                        alert('注册成功，欢迎加入温州仿真城。');
                    }
                    else {
                        alert('注册失败，请稍候重试。');
                    }
                }
            });
        }
        else {
            alert('注册信息填写有误，请检查。');
        }
    });
});