var for_login_tag = false; // 
var for_signup_tag = false;//
var login_tag = false;
var login_user_id = "";
var login_user_name = "";//
var login_user_truename = ""; //
var login_user_sex = ""; //
var login_user_email = "";
var login_user_mobile = "";
var login_user_token = "";
// ----------------------------------------------------------------------------


$(document).ready(function(){
	$("#login_user").keydown(doLoginKeyDown);
	$("#login_pwd").keydown(doLoginKeyDown);
	
	$("#registerDlg input[type='text']").keydown(registerKeyDown);
	$("#registerDlg input[type='password']").keydown(registerKeyDown);
	
	$("#takepwdDlg input[type='text']").keydown(takepwdKeyDown);
});

function doLoginKeyDown(e){
    // var key = window.event ? event.keyCode:event.which;
    key = e.which;
    if(key!=13) {
        return true;
    } else {
    	doLogin();
        return false;
    }
}

/*
 * // var uv = null;
 * 
 * function loadUv(){ if (uv==null) { // uv = new UserVoice();
 * uv.show({key:100002,lan:"en",align:'right',dock:'bottom',showFloatBar:false}); //
 * effectBtn("en_footer_uv",function(){uv.open(true)}); } if (login_tag) {
 * uv.user( { userLogin:true, userId:login_user_id, userName:login_user_name } ); }
 * else { uv.user( { userLogin:false, userId:"", userName:"" } ); } }
 */

function showCheckResult(dlgObj,result){
	var cr=$("[class='checkResultMsg']:first",dlgObj);
	if((cr == null) || (cr.length < 1)){
		alert("[div class='checkResultMsg'] is need to show check result message.");
	}
	if((result == null) || (result == undefined)){
		cr.hide();
	}else{
		cr.html(result);
		cr.show();
	}
}

/*------------------------------------------------------------------------------

------------------------------------------------------------------------------*/


//
function openTakePwd() {
	/*
	 * $.get('/ajax/Pages.takepwd', function(html) { var end=function(){ var
	 * loaded = function() { $("#tp_user").focus(); }
	 * dlg.endOpenWin(html,loaded); } dlg.openWin({title:"Forget you
	 * password?",width:300,height:240,onLoad:end}); });
	 */
	$.fn.colorbox({
		opacity:"0.3",
		speed:0,
		width:"350px",
		height:"180px",
		inline:true,
		href:"#takepwdDlg"
	});
	$("#takepwdDlg").css("z-index",800)
	
	$("#tp_user").focus();
	$("#tp_user").keydown(takepwdKeyDown);
	$("#tp_code").keydown(takepwdKeyDown);
	
	clearCheckMsg();
}

//
function doTakePwd() {	
	showCheckResult($("#takepwdDlg"),null);
	
	var tp_user=$("#tp_user");
	var user=tp_user.val();
	var tp_code=$("#tp_code");
	var code=tp_code.val();
	if(user.length<3){
		showCheckResult($("#takepwdDlg"),"Please enter correct Email/Cell phone");
		return false;
	}
	if(code.length!=4){
		showCheckResult($("#takepwdDlg"),"Please input valid code");
		return false;
	}
    window.SO.gofindpwd(user,code);
}

function takepwdKeyDown(e) {
    // var key = window.event ? event.keyCode:event.which;
	var key=e.which;
    key = parseInt(key);
    if(key!=13) {
        return true;
    } else {
    	doTakePwd();
        return false;
    }
}

//
function doResSetImg(){
    var objimg=document.getElementById("codeImg");  
    var realname=objimg.src.substring(0,objimg.src.lastIndexOf("?")); 
    objimg.src=realname+'?id='+Math.random();
    return false;
}

//
function openSignUp() {
	$.fn.colorbox({
		opacity:"0.3",
		speed:0,
		width:"400px",
		height:"350px",
		inline:true,
		href:"#registerDlg"
	});
	
	$("#sp_truename").focus();
	clearCheckMsg();
}

function doSignUp() {
	showCheckResult($("#registerDlg"),null);
	
	var sp_mobile=$("#sp_mobile");
	var mobile=sp_mobile.val();
    var sp_email=$("#sp_email");
    var email=sp_email.val();
    var sp_user=$("#sp_user");
    var user=sp_user.val();
    var sp_truename=$("#sp_truename");
    var true_name=sp_truename.val();
    
    var sp_pwd_1=$("#sp_pwd_1");
    var pwd_1=sp_pwd_1.val();
    var sp_pwd_2=$("#sp_pwd_2");
    var pwd_2=sp_pwd_2.val();
    
    var mobileReg=/^([1][3,5,8]\d{9})|(^021\d{8}$)$/;
    var emailReg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    var pwdReg=/^[a-zA-Z0-9_]{6,15}$/;

    if(!mobileReg.test(mobile)){
    	showCheckResult($("#registerDlg"),"Invalid Mobile Number");
    	sp_mobile.focus();
        return;
    }
    if(!email){
    	showCheckResult($("#registerDlg"),"Email Cannot Be Left Empty");
    	sp_email.focus();
        return;
    }
    if(!emailReg.test(email)){
    	showCheckResult($("#registerDlg"),"Inlegal email");
    	sp_email.focus();
        return;
    }
	if (v_isEmpty(user)){
        showCheckResult($("#registerDlg"),"Nick Name Cannot Be Left Empty");
        sp_user.focus();
        return;
    }
	if (v_isEmpty(true_name)){
        showCheckResult($("#registerDlg"),"Name Cannot Be Left Empty");
        sp_truename.focus();
        return;
    }

	if (pwd_1==null || pwd_1.length<6) {
		showCheckResult($("#registerDlg"),"The length of password can't be less than 6 letters");
    	sp_pwd_1.focus();
    	return false;
	}
	
    if(pwd_1==null||!pwdReg.test(pwd_1)){
    	showCheckResult($("#registerDlg"),"Inlegal password");
    	sp_pwd_1.focus();
        return false;
    }
    if(pwd_1!=pwd_2){
    	showCheckResult($("#registerDlg"),"Two passwords is't same");
    	sp_pwd_1.focus();
        return false;
    }
    for_signup_tag = true;
    window.SO.goreg(email,mobile,pwd_1,'',user,true_name,null,"en");
}

function registerKeyDown(e) {
	var key=e.which;
    key = parseInt(key);
    if(key!=13) {
        return true;
    } else {
    	doSignUp();
        return false;
    }
}

function openLogin(){
	$.fn.colorbox({
		opacity:"0.3",
		speed:0,
		width:"400px",
		height:"180px",
		inline:true,
		href:"#loginDlg"
	});
	$("#login_user").focus();
	clearCheckMsg();
}

function showReturnMsg(msg){
	showCheckResult($("#registerDlg"),msg);
	showCheckResult($("#loginDlg"),msg);
	showCheckResult($("#takepwdDlg"),msg);
}

function clearCheckMsg(){
	showCheckResult($("#registerDlg"),null);
	showCheckResult($("#loginDlg"),null);
	showCheckResult($("#takepwdDlg"),null);
}

function chkIsLogin() {
    window.SO.login=function(jdata){
    	updateLoginState(true,jdata);
        if (for_login_tag) {
        	for_login_tag = false;
        }
        
        if (for_signup_tag) {
        	for_signup_tag = false;
        }
    }
	
	window.SO.prereg=function(jdata){
		showReturnMsg(getLoginEnStrByCode(jdata.code));
	}
    
    window.SO.nologin=function(jdata){
    	updateLoginState(false,jdata);
    }
    
    window.SO.prelogin=function(jdata){
    	showReturnMsg(getLoginEnStrByCode(jdata.code));
    }
    
    window.SO.prefindpwd=function(jdata){
    	if (jdata.code==609) {
    		showReturnMsg(getLoginEnStrByCode(jdata.code));
    	} else {
    		showReturnMsg(getLoginEnStrByCode(jdata.code));
        	doResSetImg();
    	}
    }
 
    window.SO.logout=function(jdata){
    	updateLoginState(false);
    }
	window.SO.G('http://passport.57575777.com/');
}

function updateLoginState(logined,jdata) {
	login_tag = logined;
	if (login_tag) {
		login_user_id = jdata.u.id;
		login_user_name = jdata.u.nickname;		
		login_user_truename = jdata.u.name;
		login_user_sex = jdata.u.sex;
		login_user_token = jdata.u.token;
		login_user_email = jdata.u.email;
		login_user_mobile = jdata.u.mobilephone;
	} else {
		login_user_id = "";
		login_user_name = "";		
		login_user_truename = "";
		login_user_sex = "";
		login_user_token  = "";
		login_user_email = "";
		login_user_mobile = "";
	}

	if (logined){
		var str = "<span class='hello'></span> " +
		"<a  href='/html/UserCenter/mainpage?userId=" + login_user_id + "'>User Center</a>|" +
		"<a  href='javascript:;' onclick='return doLogout()'>Logout</a>"
		$("#login_panel").html(str);
	    // 保存用户id至 session
	    // $.getJSON("/ajax/UserCenter.saveUserIdToSession",{"userId":login_user_id});
	    // 替换  Register链接换掉，然后guest换成用户名
	    $("#registerArea").html("")
	    // 关闭登录框
    	$.fn.colorbox.close();
	    
	    if($("#regInTips")){
	    	$("#regInTips").css('display','none');
	    }
	    
	} else {
		$("#login_panel").html("<a href='javascript:;' onclick='openSignUp()'>Register</a>|" +
				"<a href='javascript:;' class='loginLink' onclick='openLogin()'>Login</a>");
		$("#registerArea").html("<a href='javascript:;' class='btnRed120' onclick='openSignUp()'>Register</a>")
	    
	}
	// 执行的顺序
	if (typeof callBackLogin != "undefined") {
    	callBackLogin();
    }
    if(typeof initUserInfo != "undefined"){
    	initUserInfo();
    }
    if(typeof initUserProfile != "undefined"){
    	initUserProfile()
    }
    if(typeof restoreKeySet != "undefined"){  // 兑换
    	restoreKeySet()
    }
    if(typeof loginCallback_pleaselogin != "undefined"){
    	loginCallback_pleaselogin();
    }
    if(typeof replaceLoginNotice != "undefined"){
    	replaceLoginNotice();
    }
}

//
function doLogin() {
	showCheckResult($("#loginDlg"),null);
	
	var login_user = $("#login_user");
	var user = $.trim(login_user.val());
	var login_pwd = $("#login_pwd");
	var pwd = $.trim(login_pwd.val());
	if (v_isEmpty(user)){
		login_user.focus();
		showCheckResult($("#loginDlg"),"Email/Cell phone Cannot Be Left Empty");
		return;
	}
	if (v_isEmpty(pwd)){
		login_pwd.focus();
		showCheckResult($("#loginDlg"),"Password Cannot Be Left Empty");
		return;
	}
	for_login_tag = true;
	
    window.SO.gologin(user,pwd);
}

//
function doLogout() {
	window.SO.O();
	// 跳转至首页
	location.href = "/"
	// 移除用户session
//    $.getJSON("/ajax/UserCenter.removeUserSession");
	if($("#regInTips")){
    	$("#regInTips").css('display','block');
    }
	return false;
}

//
function getLoginEnStrByCode(code) {
	if (code==100) {
		return "Logout";
	} else if (code==200) {
		return "Log-in successful";
	} else if (code==304) {
		return "User name or password incorrect";
	} else if (code==305) {
		return "Invalid cell phone number  or password ";
	} else if (code==306) {
		return "Invalid email password";
	} else if (code==307) {
		return "Please enter your cell phone number or email address(email is like 'xxx@xxx.xx')";
	} else if (code==308) {
		return "Account not found";
	} else if (code==500) {
		return "Request denied";
	} else if (code==405) {
		return "Please fill in the required fields ";
	} else if (code==406) {
		return "An account already exists with that email address";
	} else if (code==407) {
		return "An account already exists with that cell phone number";
	} else if (code==408) {
		return "Username is already registered";
	} else if (code==409) {
		return "Please enter your email";
	} else if (code==410) {
		return "Please enter your cell phone number";
	} else if (code==444) {
		return "System error. Please contact administrator.";
	} else if (code==601) {
		return "Please input your cell phone number. For PHS users, please add 021 before your number. ";
	} else if (code==602) {
		return "Security code incorrect";
	} else if (code==603) {
		return "Cell phone number not yet registered";
	} else if (code==604) {
		return "Request successful. Code will be sent via cell phone within two minutes. ";
	} else if (code==605) {
		return "Text message failed , Please try again! ";
	} else if (code==606) {
		return "Security code incorrect";
	} else if (code==607) {
		return "Please enter your cell phone number or email address";
	} else if (code==608) {
		return "Email failed. Please try again later.";
	} else if (code==609) {
		return "Password sent. Please check your email account.";
	} else if (code==701) {
		return "Please enter your cell phone number. For PHS users, please add 021 before your number. ";
	} else if (code==702) {
		return "An account already exists with that cell phone number";
	} else if (code==703) {
		return "send failed. Please try again later.";
	} else if (code==704) {
		return "Authentication code has been sent. Please check your cell phone.";
	} else if (code==705) {
		return "Can't see it clearly? Request a new security code.";
	} else if (code==706) {
		return "Registration unsuccessful. Please contact administrator.";
	} else if (code==707) {
		return "Registration successful.";
	}  else {
		return "Registration failed(code="+code+")";
	}
}
