﻿function popLoginReg(popId){
	closePop("pop-login");
	closePop("pop-login-skip");
	closePop("pop-reg");
	closePop("pop-login-fail");
	closePop("pop-reg-success");
	
	if (popId == "pop-reg") {
		showVcodeImg();
	}
	
	var p = document.getElementById(popId);
	if(!p) return;
	p.style.display = "block";
	(window.onresize=function(){
		if (parent==window) {
			if(document.getElementById("doc") == null){
				p.style.left = ((document.getElementById("wp").offsetWidth - p.offsetWidth)/2) +"px";
			} else {
				p.style.left = ((document.getElementById("doc").offsetWidth - p.offsetWidth)/2) +"px";
			}
			p.style.top = ((document.documentElement.clientHeight-p.offsetHeight)/2+(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop))+"px";
		} else {
			if(document.getElementById("doc") == null){
				p.style.left = ((document.getElementById("wp").offsetWidth - p.offsetWidth)/2 + 100) +"px";
			} else {
				p.style.left = ((document.getElementById("doc").offsetWidth - p.offsetWidth)/2 + 100) +"px";
			}
			p.style.top = (document.body.clientHeight - 350) + "px";
			
			//p.style.top = ((document.documentElement.clientHeight-p.offsetHeight)/2+(top.document.documentElement.scrollTop?top.document.documentElement.scrollTop:top.document.body.scrollTop))+"px";
		}
		
		//p.style.left = ((document.body.offsetWidth-p.offsetWidth)/2+(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft))+"px";
	})();
	hideTag("select",true,"MSIE 6.0");
	//p.getElementsByTagName("input")[0].focus();
}

function closePop(popId, refresh){
	var p = document.getElementById(popId);
	if(p) p.style.display = "none";
	if (refresh) {
		refreshSelf();
	}
}

function hideTag(tagName, hide, client){
	if(client && navigator.userAgent.indexOf(client)<0) return;
	
	var e=document.getElementsByTagName(tagName);
	for(var i=0;i<e.length;i++){
		if(e[i].style) e[i].style.visibility=hide?"hidden":"";
	}
}


//以下提交表单相关
var pass_uid = 0;
var pass_pwd = 0;
var pass_email = 0;
var pass_vcode = 0;
var ra = 1;//Firefox刷新图片时，防止缓存改变图片链接用

jQuery(document).ready(function(){
	/**============注册相关============**/
	//账号实时验证
	jQuery("#reg-uid").blur(checkLoginId).focus(function(){
		showErrorMsg(jQuery("#reg-uid-tip"), "中文站用户可以直接登录", "");
	});
	
	//密码实时验证
	jQuery("#reg-pwd").blur(checkPwd).focus(function(){
		showErrorMsg(jQuery("#reg-pwd-tip"), "", "");
	});
	
	//邮箱实时验证
	jQuery("#reg-email").blur(checkEmail).focus(function(){
		showErrorMsg(jQuery("#reg-email-tip"), "", "");
	});
	
	//验证码实时验证
	jQuery("#reg-vcode").blur(checkVerifyCode).focus(function(){
		showErrorMsg(jQuery("#reg-vcode-tip"), "", "");
	});
	
	//点击刷新图片
	jQuery("#vcodeImg").click(showVcodeImg);
	
	/**============登录相关============**/
});

//函数定义
function onSubmitLoginForm(form) {
	var loginId = jQuery("#login-uid").val();
	var password = jQuery("#login-pwd").val();

	if (loginId && password) {//账号密码都填写则提交登录信息
		closePop("pop-login");
		if(jQuery("#pop-login-skip")) closePop("pop-login-skip");
		jQuery.post("http://www.alibado.com/course/user/doFastLogin.htm",
				{	"loginId" : loginId,
					"password" : password
				}, function(data){
					if (data.status == "success"){
						refreshSelf();
					} else {
						popLoginReg("pop-login-fail");
					}
				},
				"json"		
		);
	} else {
		alert("请填写用户名和密码");
	}
	
	return false;
}

function onSubmitRegForm(form){
	//提交时所有input失去焦点，触发验证
//	jQuery("#reg-uid, #reg-pwd, #reg-email, #reg-vcode").blur();
	
	//先判断条款是否同意
	if (!jQuery("#reg-agreement").attr("checked")){
		alert("请同意服务条款");
		return false;
	}
	
	//判断其他验证全部通过，用ajax提交注册信息
	if ((pass_uid + pass_pwd + pass_email + pass_vcode) == 4) {
		closePop("pop-reg");

		var loginId = jQuery("#reg-uid").val();
		var password = jQuery("#reg-pwd").val();
		var email = jQuery("#reg-email").val();
		var vcode = jQuery("#reg-vcode").val();
		var ep = email.indexOf("@");
		var emailName = ep > -1 ? email.substring(0, ep) : "xx";
		var emailType = ep > -1 ? email.substring(ep + 1) : "xx";
		
		jQuery.post("/course/courseRegistry/doFastRegistry.htm",
				{	"userRegistry.loginId" : loginId,
					"userRegistry.password" : password,
					"userRegistry.emailName" : emailName,
					"userRegistry.emailType" : emailType,
					"userRegistry.firstName" : "xxxXX",
					"userRegistry.valcode" : vcode,
					"userRegistry.email" : email
				}, function(data){
					if (data.status == "success"){
						popLoginReg('pop-reg-success');
						doDot(loginId);
					} else if (data.status == "vcodeFail") {
						popLoginReg('pop-reg');
						showVcodeImg();
						showErrorMsg(jQuery("#reg-vcode-tip"), "验证码错误", "error");
					} else {
						alert("服务器验证失败，请过会再试");
					}
				},
				"json"		
		);
	}
	
	return false;
}

function checkLoginId() {
	var pass = false;
	var error = "";
	var status = "right";
	var uid = jQuery("#reg-uid").val();
	
	if (!uid) {//验证必填
		error = "此项为必填项";
	} else if (uid.length < 4 || uid.length > 20) {//验证账号长度
		error = "账号长度必须在4-20之间";
	} else if (!(/^[a-z]/.test(uid))) {//验证账号以字母开头
		error = "账号必须以小写字母开头";
	} else if (!(/^[a-z0-9]+$/.test(uid))) {//验证账号只能使用英文字母、数字
		error = "必须使用小写字母或数字";
	} else if (!nameChecker(uid)) {//验证账号唯一性
		error = "账号已被注册";
	} else {
		pass = true;
	}
	
	if (pass) {
		pass_uid = 1;
	} else {
		pass_uid = 0;
		status = "error";
	}
	
	showErrorMsg(jQuery("#reg-uid-tip"), error, status);
}

function checkPwd() {
	var pass = false;
	var error = "";
	var status = "right";
	var pwd = jQuery("#reg-pwd").val();
	var uid = jQuery("#reg-uid").val();
	var nasc = "0123456789";
	var ndesc = "9876543210";
	var azasc = "abcdefghijklmnopqrstuvwxyz";
	var azdesc = "zyxwvutsrqponmlkjihgfedcba";
	var aZasc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var aZdesc = "ZYXWVUTSRQPONMLKJIHGFEDCBA";
	
	if (!pwd) {//验证必填
		error = "此项为必填项";
	} else if (pwd.length < 6 || pwd.length > 20) {//验证 密码长度
		error = "密码长度必须在6-20之间";
	} else if (!(/^[a-zA-Z0-9]+$/.test(pwd))) {//验证 密码只能使用英文字母、数字
		error = "必须使用英文字母或数字";
	} else if (pwd == uid) {//验证 密码不使用账号
		error = "密码不要与账号相同";
	} else if (uid && pwd.indexOf(uid) > -1) {//验证 密码中不包含账号
		error = "密码中不要包含账号";
	} else if (uid && uid.indexOf(pwd) > -1) {//验证 账号中不包含密码
		error = "账号的一部分不能作为密码";
	} else if (nasc.indexOf(pwd) > -1 || ndesc.indexOf(pwd) > -1) {//验证 密码不能为连续的数字
		error = "密码不能为连续的数字";
	} else if (azasc.indexOf(pwd) > -1 || azdesc.indexOf(pwd) > -1) {//验证 密码不能为连续的小写字母
		error = "密码不能为连续小写字母";
	} else if (aZasc.indexOf(pwd) > -1 || aZdesc.indexOf(pwd) > -1) {//验证 密码不能为连续的大写字母
		error = "密码不能为连续大写字母";
	} else if ((/^(\d)\1+$/.test(pwd))) {//验证 密码不能为相同的数字
		error = "密码不能为相同的数字";
	} else if ((/^([a-zA-Z])\1+$/.test(pwd))) {//验证 密码不能为相同的字母
		error = "密码不能为相同的字母";
	} else if (pwd == 'password') {//验证 密码不能为"password"
		error = '密码不能为\"password\"';
	} else {
		pass = true;
	}
	
	if (pass) {
		pass_pwd = 1;
	} else {
		pass_pwd = 0;
		status = "error";
	}
	
	showErrorMsg(jQuery("#reg-pwd-tip"), error, status);
}

function checkEmail() {
	var pass = false;
	var error = "";
	var status = "right";
	var email = jQuery("#reg-email").val();
	var reg = /^[\w\-]+(\.[\w\-]*)*@[\w\-]+([\.][\w\-]+)+$/;
	var pwd = jQuery("#reg-pwd").val();
	
	if (!email) {//验证必填
		error = "此项为必填项";
	} else if (email.length > 50){//验证邮箱长度，限制50字符
		error = "邮箱超出最大长度50";
	} else if (!(reg.test(email))){//验证邮箱格式
		error = "邮箱格式不正确";
	} else if (!(/^[a-zA-Z]/.test(email))){//验证邮箱必须以字母开头
		error = "邮箱必须以字母开头";
	} else if (email.split('@')[0] == pwd){//验证邮箱前缀不能与密码相同
		error = "邮箱前缀不能与密码相同";
	} else if (!emailChecker(email)){//验证邮箱唯一性
		error = "邮箱已被注册过";
	} else {
		pass = true;
	}	
	
	if (pass) {
		pass_email = 1;
	} else {
		pass_email = 0;
		status = "error";
	}
	
	showErrorMsg(jQuery("#reg-email-tip"), error, status);
}

function checkVerifyCode() {
	var pass = false;
	var error = "";
	var status = "tip";
	var vcode = jQuery("#reg-vcode").val();
	
	if (!vcode) {
		error = "此项为必填项";
	} else if (vcode.length != 4) {
		error = "验证码错误";
//	} else if (!vcodeChecker(vcode)) {
//		error = "验证码错误";
	} else {
		pass = true;
	}
	
	if (pass) {
		pass_vcode = 1;
	} else {
		pass_vcode = 0;
		status = "error";
	}
	
	showErrorMsg(jQuery("#reg-vcode-tip"), error, status);
}

function showErrorMsg(tip, msg, status){
	if (status == "right") {
		tip.attr("class","tip-right");
		msg = "&nbsp;&nbsp;&nbsp;&nbsp;";
	} else if (status == "error") {
		tip.attr("class","tip-error");
	} else {
		tip.attr("class","reg-tip");
	}
	
	tip.html(msg);
}

function refreshSelf(){
	top.location.href = top.location.href;
}

function nameChecker(loginId) {
	var success = false;
	//Ajax去同步判断账号是否被注册
	jQuery.ajax({
	   type: "GET",
	   url: "/course/courseRegistry/nameChecker.htm",
	   data: "value="+loginId,
	   success: function(msg){
		success = msg.indexOf("SUCCESS::") > -1;
	   },
	   async: false
	}); 
	
	return success;
}

function emailChecker(email) {
	var success = false;
	//Ajax去同步判断邮箱是否被注册
	jQuery.ajax({
		type: "GET",
		url: "/course/courseRegistry/emailChecker.htm",
		data: "value="+email,
		success: function(msg){
		success = msg.indexOf("SUCCESS::") > -1;
	},
	async: false
	}); 
	
	return success;
}

function vcodeChecker(vcode) {
	var success = false;
	//Ajax去同步判断验证码
	jQuery.ajax({
		type: "GET",
		url: "/course/courseRegistry/vcodeChecker.htm",
		data: "value="+vcode,
		success: function(msg){
		success = msg.indexOf("SUCCESS::") > -1;
	},
	async: false
	}); 
	
	return success;
}

function showVcodeImg() {
	var src = "http://checkcode.alibado.com/service/checkcode?sessionID=";
	
//	jQuery.ajax({
//		   type: "GET",
//		   url: "/course/courseRegistry/getSessionId.htm",
//		   data: "",
//		   success: function(msg){
//			jQuery("#vcodeImg").attr("src", src + msg + "&ramNo=" + ra++);
//		   }
//		}); 
	
	var sessionIdInput = jQuery("#reg-sessionId");
	
	if (!sessionIdInput.val()){//第一次取sessionId
		jQuery.ajax({
			   type: "GET",
			   url: "/course/courseRegistry/getSessionId.htm",
			   data: "",
			   success: function(msg){
				jQuery("#vcodeImg").attr("src", src + msg);
				sessionIdInput.val(msg);
			   }
			}); 
	} else {//已经取过SessionId,直接从hidden域中取
		jQuery("#vcodeImg").attr("src", src + sessionIdInput.val() + "&ramNo=" + ra++);
	}
}



function doDot(loginId){
	var m_content=document.createElement("iframe");
    m_content.id="regSuccess";
    m_content.width="0px";
    m_content.height="0px";
    m_content.scrolling="no";
    m_content.setAttribute("frameborder", "0", 0);
    m_content.src="http://www.alibado.com/course/courseRegistry/userRegistSuccess.htm?uid="+"CN_"+loginId;
    document.body.appendChild(m_content);
}