/*
 * For ZLL change password page
 *
 * @Author Wang Hao
 * @Developer WuKan 6544
 *
 * Revision: PassWord.js 20090811
 */
if (typeof SII != "object") {
    SII = {};
}
/**
 * 用户注册模块缺省设置
 *
 * @desc initialize the options of changing password page.
 *
 */
SII.UserRegist = function() {
	var  s_birthday=$("#setupValue")[0].getAttribute("birthday");
	var  s_user_setting=$("#setupValue")[0].getAttribute("user_setting");
	var  s_gender=$("#setupValue")[0].getAttribute("gender");
	var dyear=1980,dmouth=1,dday=1;
	
	if(s_birthday)
	{
		var arr=s_birthday.split("_");
		dyear=arr[0];
		dmouth=arr[1];
		dday=arr[2];
		
	}
	
	if(s_user_setting)
	{
		$("#user_setting").val(s_user_setting);
	
	}

	if(s_gender)
	{
		if(s_gender=="1")
		{
		
		$("#radio_m")[0].setAttribute("checked","true");
		}
		else if(s_gender=="2")
		{
		$("#radio_w")[0].setAttribute("checked","true");
		}
		else
		{
		$("#radio_m")[0].setAttribute("checked","true");
		}
	}
	else
	{
		$("#radio_m")[0].setAttribute("checked","true");
	
	}



	  //初始化生日联动区域
	   $("#birthdayContainer").zllDate({begin:2010,end:1930,defaultVal:dyear + "/" + dmouth + "/" + dday,style:"",showDay:true});

    var regInfo = {
        base: {//基础
            tip: '<span class="lotaicon li3"></span>',
            error: '<span class="lotaicon li1"></span>',
            success: '<span class="lotaicon li2"></span>'
        },
        tip: {//提示
            email: "<font color=red>重要！</font>请填<font color=red>有效Email地址</font>，以收邮件完成注册.",
            password: "密码由6-16个英文字母、数字或特殊字符组成",
            repassword: "请再次输入密码",
            username: "请一定填写你的<font color=red>真实中文姓名</font>,以方便朋友联络。"
        },
        error: {//错误
            //email: "请填写有效Email地址，以便用来确认邮件完成注册！",
            email: "请填写有效Email地址。",
            password: "密码长度不正确，6-16位。",
            repassword: "两次输入不一致。",
            username: "真实姓名必须为2-4个汉字且不能为空。"
        },
        success: {//成功
            email: "",
            password: "",
            repassword: "",
            username: ""
        }
    };

    /**
    * 测试输入字符是否正确.
    *
    * @example test($("#email"));
    * @desc 测试输入字符是否正确.
    * @el jQuery Object 待测试的jQuery对象
    *
    */
    function testInput(el) {

        switch (el.attr("id")) {
            case "email":
                var _outemail = $.isEmail($.trim(el.val()));
                if (_outemail == true) {
                    return true;
                }
                else {
                    regInfo.error.email = _outemail;
                }
                break;
            case "password":
                var _outpwd = $.isPassword(el.val());
                if (_outpwd == true) {
                    return true;
                }
                else {
                    regInfo.error.password = _outpwd;
                }
                break;
            case "repassword":
                if ($.trim(el.val()).length != 0 && el.val() == $("#password").val()) {
                    return true;
                } else if ($.trim(el.val()).length == 0) {
                    regInfo.error.repassword = '密码长度不正确，6-16位。';
                }
                else {
                    regInfo.error.repassword = '两次输入不一致。';
                }
                break;
            case "username":
                var _value = $.trim(el.val());
                if ($.isNotEmpty(_value) && $.isChinese(_value) && $.lengthw(_value) <= 8 && $.lengthw(_value) >= 4) {
                    return true;
                }
                break;
			 case "rcode":
			  var _value = $.trim(el.val());
			  if ($.isNotEmpty(_value) && $.isNumber(_value)) {
				return true;
			  }
			 break;
        }
        return false;
    };

    /**
    * email注册验证.
    *
    * @desc  email注册验证，如已注册则显示提示，并不许提交
    *
    */
    function ajax_check_email(fn) {
	
        if ($("#email").val().length > 0 && testInput($("#email")) == true) {
            var _url = "/register/check";
            var _para = "regist_email=" + $.trim($("#email").val());
            SII.Ajax(_url, _para, function(_data) {
                if (_data.rst.toString() == "fail") {
                    fn(false, _data.reason || "你填写的邮箱已被注册，请重新输入");
                }
                else {
                    fn(true);
                }
            }, "post", true);
        }
        else {
            fn(false, "请填写有效Email地址。");
        }
    };
    /* 绑定页面输入事件 */
    var els = [$("#email"), $("#password"), $("#repassword"), $("#username")];
    for (var i = 0; i < els.length; i++) {

        if (els[i].length > 0) {
            els[i].focus(function() {
                //需要重新校验,移除isok类                $(this).removeClass("isok");
                /*
                $(this).parent().next().html(
                regInfo.base.tip+
                regInfo.tip[$(this).attr("id")]
                );
                */
              $(this).parent().find(".lgf_bdpop").show();
			  $(this).parent().addClass("lgf_bdinfop");
			  $(this).removeClass("libdinput2").addClass("libdinput2s");
			  $(this).parent().find(".lgf_bdtip").hide();
            });

            els[i].blur(function(e, onsubmit) {
			
			for(var j=0;j<els.length;j++)
			{
				els[j].parent().find(".lgf_bdpop").hide();
				els[j].parent().removeClass("lgf_bdinfop");
				$(this).removeClass("libdinput2s").addClass("libdinput2");
			}
			
                if ($(this).attr("id") == "email") {
                    var _self = $(this);
                    //$("#password").focus();
                    ajax_check_email(function(result, reason) {
                        if (result) {
						
                            _self.addClass("isok");
							_self.parent().find(".errowTip").html(regInfo.base.success + regInfo.success[_self.attr("id")]);
							_self.parent().find(".lgf_bdtipicon").removeClass("li1").removeClass("li3");
							_self.parent().find(".lgf_bdtipicon").addClass("li2");
						
							_self.parent().find(".lgf_bdtip").show();
                           // _self.parent().next().html(regInfo.base.success + regInfo.success[_self.attr("id")]);
                            if (onsubmit) {
                                //提交表单
                                $("#registerform").submit();
                                return true;
                            }
                            //$("#password").focus();
                        }
                        else {
						
                            _self.removeClass("isok");
							_self.parent().find(".errowTip").html(regInfo.base.error + reason);
							_self.parent().find(".lgf_bdtipicon").removeClass("li2").removeClass("li3");
							_self.parent().find(".lgf_bdtipicon").addClass("li1");
						
							_self.parent().find(".lgf_bdtip").show();
                            //_self.parent().next().html(regInfo.base.error + reason);
                            // $("#password").focus();
                        }
                    });

                } else if ("username" == $(this).attr("id")) {
                    //校验用户名                    var jqUsername = $(this);
                    if (testInput(jqUsername)) {
                        //前端校验通过，进行后端校验                        SII.Ajax("/register/checkname", {
                            nickname: jqUsername.val()
                        }, function(_data) {
                            if (_data.rst.toString() == "fail") {
                                jqUsername.removeClass("isok");
								jqUsername.parent().find(".errowTip").html(regInfo.base.error + _data.reason);
								jqUsername.parent().find(".lgf_bdtipicon").removeClass("li2").removeClass("li3");
								jqUsername.parent().find(".lgf_bdtipicon").addClass("li1");
							
								jqUsername.parent().find(".lgf_bdtip").show();
                               // jqUsername.parent().next().html(regInfo.base.error + _data.reason);
                            } else {
                                jqUsername.addClass("isok");
								jqUsername.parent().find(".errowTip").html(regInfo.base.success + regInfo.success[jqUsername.attr("id")]);
								jqUsername.parent().find(".lgf_bdtipicon").removeClass("li1").removeClass("li3");
								jqUsername.parent().find(".lgf_bdtipicon").addClass("li2");
								
								jqUsername.parent().find(".lgf_bdtip").show();
								// jqUsername.parent().next().html(regInfo.base.success + regInfo.success[jqUsername.attr("id")]);
                                if (onsubmit) {
                                    //提交表单
                                    $("#registerform").submit();
                                    return true;
                                }
                            }
                        }, "post", true);
                    } else {
                        jqUsername.removeClass("isok");
				
						jqUsername.parent().find(".errowTip").html(regInfo.error[jqUsername.attr("id")]);
						jqUsername.parent().find(".lgf_bdtipicon").removeClass("li2").removeClass("li3");
						jqUsername.parent().find(".lgf_bdtipicon").addClass("li1");
        
						jqUsername.parent().find(".lgf_bdtip").show();
						//jqUsername.parent().next().html(regInfo.base.error + regInfo.error[jqUsername.attr("id")]);
                    }
                } else {
                    if (testInput($(this))) {
                        $(this).addClass("isok");
						$(this).parent().find(".errowTip").html(regInfo.base.success + regInfo.success[$(this).attr("id")]);
						$(this).parent().find(".lgf_bdtipicon").removeClass("li1").removeClass("li3");
						$(this).parent().find(".lgf_bdtipicon").addClass("li2");
					
						$(this).parent().find(".lgf_bdtip").show();
                        //$(this).parent().next().html(regInfo.base.success + regInfo.success[$(this).attr("id")]);
                        if (onsubmit) {
                            //提交表单
                            $("#registerform").submit();
                            return true;
                        }
                    }
                    else {
                        $(this).removeClass("isok");
						$(this).parent().find(".errowTip").html(regInfo.base.error + regInfo.error[$(this).attr("id")]);
						$(this).parent().find(".lgf_bdtipicon").removeClass("li2").removeClass("li3");
						$(this).parent().find(".lgf_bdtipicon").addClass("li1");
					
						$(this).parent().find(".lgf_bdtip").show();
                        //$(this).parent().next().html(regInfo.base.error + regInfo.error[$(this).attr("id")]);
                    }
                }
                /*if (onsubmit) {
                //提交表单时校验失败,定位焦点
                $(this).focus();
                $(this).value += "";
                }*/
            });

        }
    }

    /*$("#email").blur(function() {
    ajax_check_email();
    });*/
    $("#password").keyup(function() {
        var lvl = $.pwdStrength($(this).val());
        $("#pwdstr").css("width", (33 * lvl + 1) + "%");
		if($("#repassword").val())
        $("#repassword").blur();
        $(this).focus();
    });
	
	$("#submitbtn").click(function(){
	
		 $("#registerform").submit();
            return false;
	
	});
	$("#changeImg").click(function(){	
            var rand = Math.random();
            $("#rcodeimg").attr("src","/captcha/register?rand="+rand);
            return false;
	});
    $("#password").focus(function() {
	
        $("#pwdstrong").show();
        $("#repanel").hide();
    });

    $("#password").blur(function() {
        $("#pwdstrong").hide();
        $("#repanel").show();
    });

    /* 提交事件绑定 */
    $("#submit").click(function() {

        var isok = true;
        var nLength = els.length - 1;
        for (var i = nLength; i >= 0; i--) {
            //if (testInput(els[i]) == false) {
            if (!els[i].hasClass("isok")) {
                isok = false;
                //仍存在未校验通过表单项,校验注册信息的合法化
                els[i].trigger("blur", true);
            }
            //break;
            //}
        }
        /*for (var i = 0; i < els.length; i++) {
        if (testInput(els[i]) == false) {
        els[i].focus();
        break;
        }
        }*/
        clearTimeout(SII.UserRegist.timer);
        SII.UserRegist.timer = setTimeout(function() {
            for (var i = 0; i < els.length; i++) {
                if (!els[i].hasClass("isok")) {
                    els[i].focus();
                    els[i][0].value += "";
                    break;
                }
            }
        }, 2000);

        /*for (var i = 0; i < els.length; i++) {
        if (!els[i].hasClass("isok")){
        isok = false;
        clearTimeout(SII.UserRegist.timer);
        SII.UserRegist.timer = setTimeout(function(){els[i].focus();els[i][0].value+="";},2000);
        //els[i].focus();
        //els[i][0].value+="";//定位在末尾        return false;
        }
        }*/
        if (isok) {
		
            if ($("#accept").attr("checked") == true) {
				for (var i = 0; i < els.length; i++) {//去掉所有各种空格，保证提交到后端的是无空格的                    els[i].val($.trim(els[i].val()));
                }
                //$("form:first").submit();
                /*var _url = $("#registerform").attr("action");
                var _para = {};
                _para['email'] = $("#email").val();
                _para['password'] = $("#password").val();
                _para['username'] = $("#username").val();
                SII.Ajax(_url,_para,function(_data){
                SII.Err(_data.msg);
                },"post");*/
				
				var genderselects=document.getElementsByName("gender");
				var gender;
				for(var i=0;i<genderselects.length;i++)
				{
					
					if (genderselects[i].checked) {  
					gender=genderselects[i].value;
					break;
					}
				}
				
				var birthday=$("#birthdayContainer_yearSel").val()+"-"+$("#birthdayContainer_monthSel").val()+"-"+$("#birthdayContainer_daySel").val();
			
				$("#birthday").val(birthday);
				
			
			/*	var user_setting=$("#user_setting").val();
				
				var rcode=$("#rcode").val();
			
				
				 var _url = $("#registerform").attr("action");
                var _para = {};
                _para['regist_email'] = $("#email").val();
                _para['password'] = $("#password").val();
				
                _para['username'] = $("#username").val();
				_para['birthday'] = birthday;
				_para['user_setting'] = user_setting;
				//_para['rcode'] = rcode;
				
				_para['gender'] = 1;
			*/
				
               // SII.Ajax(_url,_para,function(_data){
				//console.log(_data);
               //SII.Err(_data.msg);
               // },"post");
				
				
                $("#registerform").unbind("submit");
                $("#registerform").submit(); //form 提交
            }
            else {
                SII.Msg("你必须勾选接受众乐网服务条款才能注册");
                return false;
            }

        }
        else {
            return false;
        }
    });
    $("form:first").submit(function() {
        $("#submit").click();
        return false;
    });
    $("#email").focus();
}
SII.UserRegist.timer;