KT.User = {};
KT.User.SecureName = function (f, parent, name) {
    	var jsonRequest = new Request.JSON({url: "/user/secure_name.php", onSuccess: function(jso)
	{
	    f.call((parent || this),jso.result);
	}}).post({u_name:name});
}
KT.User.SecureMail = function (f, parent, mail) {
    	var jsonRequest = new Request.JSON({url: "/user/secure_mail.php", onSuccess: function(jso)
	{
	    f.call((parent || this),jso.result);
	}}).post({email:mail});
}

KT.Reg =  (function() {
    /* 注册form表单 */
    var f;
    var email;
    var name;
    var passwd;
    var passwd_re;
    var invite_type;
    var inviter;
    var canvas_name;
    var invite_flag;

    var secureNameCB = function(result) {
	if (result < 0) {
	    $('name_tip').set('text', '没有通过真实姓名检验,请您填写真实中文姓名^_^');
	    $('name_tip').set('style', 'color:red');
	}
	else {
	    $('name_tip').set('text', '姓名通过检验^_^');
	    $('name_tip').set('style', 'color:green');
	}
	return true;
    };
    var secureMailCB = function(result) {
	if (result < 0) {
	    $('email_tip').set('text', '您的邮件地址已经注册，请换邮件地址重试^_^');
	    $('email_tip').set('style', 'color:red');
	}
	else {
	    $('email_tip').set('text','您的电子邮件地址已通过检验^_^');
	    $('email_tip').set('style', 'color:green');
	}
	return true;
    };
    var success = function(result){
	var url = '/home';
	if (invite_type > 0) {
	    url += "?command=friend&friend_id="+inviter+"&friend_flag="+invite_flag;
	}
	if (canvas_name != "" && canvas_name != "0") {
	    url += "?command=friend&friend_id="+inviter+"&friend_flag="+invite_flag+"&canvas_name="+canvas_name;
	}
	window.location.replace(url);
    };
    return {
	/* 构造函数 */
	reg:function(form_in, invite_type_in, inviter_in, canvas_name_in, invite_flag_in) {
	    f = $(form_in);
	    invite_type = invite_type_in;
	    inviter = inviter_in;
	    canvas_name = canvas_name_in;
	    invite_flag = invite_flag_in;
	    [$(f.email),$(f.name),$(f.passwd),$(f.passwd_re)].each(function(el){
		el.addEvent('keydown',function(e) {
		    e=new Event(e);
		    if(e.code==13) 
			KT.Reg.submit();
		});
	    });
	},
	/* 检查email */
	secureMail:function(cb_flag){
	    email = f.email.value;
	    if(email.match(/^[-a-zA-Z0-9_\.]+\@([0-9A-Za-z][0-9A-Za-z-]+\.)+[A-Za-z]{2,3}$/) == null) {
		$('email_tip').set('text','您的邮件地址未通过校验，请输入真实电子邮件地址');
		$('email_tip').set('style', 'color:red');
		return false;
	    }

	    if (!cb_flag) {
		KT.User.SecureMail(secureMailCB, null, email);
	    }
	    return true;
	},
	/* 检查name */
	secureName:function(cb_flag){
	    name = f.name.value;
	    /* 判断名字是否为空 */
	    if (name == "") {
		$('name_tip').set('text','您的姓名不能为空,请填写真实中文姓名');
		$('name_tip').set('style', 'color:red');
	        return false;
	    }
	    if (!cb_flag) {
		KT.User.SecureName(secureNameCB, null, name);
	    }
	    return true;
	},
	/* 检查passwd */
	securePasswd:function(){
	    passwd = f.passwd.value;
	    if(passwd.match(/^[a-zA-Z0-9_]{6,16}$/)==null) {
		$('passwd_tip').set('text',"请输入6-16位的英文字母,数字或下划线");
		$('passwd_tip').set('style', 'color:red');
		return false;
	    }
	    $('passwd_tip').set('text',"密码通过校验^_^");
	    $('passwd_tip').set('style', 'color:green');
	    return true;
	},
	securePasswdRe:function(){
	    passwd = f.passwd.value;
	    passwd_re = f.passwd_re.value;
	    if (passwd != passwd_re) {
		$('passwd_tip').set('text',"两次输入的密码不一致,请重新输入^_^");
		$('passwd_tip').set('style', 'color:red');
		return false;
	    }
	    $('passwd_tip').set('text',"密码通过校验^_^");
	    $('passwd_tip').set('style', 'color:green');
	    return true;
	},
	/* 注册提交 */
	submit:function(){
	    var s = $('reg_submit');
//	    s.disabled = 'disabled';
	    /* 不带回调去检查一次 */
	    if (!this.secureMail(true) ||
		!this.secureName(true) ||
		!this.securePasswd() ||
		!this.securePasswdRe() ) {
		s.disabled = '';
		return false;
	    }
	    f.set('send',{onSuccess:function(e) {
		var j = parseInt(JSON.decode(e).result);
		s.disabled = '';
		if(j==-2)	{
		    $('email_tip').set('text', '您的邮件地址已经注册，请换邮件地址重试^_^');
		    $('email_tip').set('style', 'color:red');
		    f.email.focus();			
		}
		else if(j==-1){
		    $('email_tip').set('text', '注册服务暂时无法使用,请稍后重试');
		    $('email_tip').set('style', 'color:red');
		}
	        else if(j==-3){
		    $('email_tip').set('text', '没有通过签名验证,请从合法的邀请链接进入');
		    $('email_tip').set('style', 'color:red');
		}
	        else if(j==-4) {
		    $('name_tip').set('text', '没有通过真实姓名检验,请您填写真实中文姓名^_^');
		    $('name_tip').set('style', 'color:red');
		    f.name.focus();			
		}
		else
		    success();
	    }});
	    f.send();
	    return true;
	}
    };
} )();
