﻿var regName = "";
var userExists = false;

function setCurrentItem(row_id) {
	document.getElementById("username_row").style.backgroundColor = "";
	document.getElementById("password_row").style.backgroundColor = "";
	document.getElementById("surepass_row").style.backgroundColor = "";
	document.getElementById("question_row").style.backgroundColor = "";
	document.getElementById("answer_row").style.backgroundColor = "";
	document.getElementById("namechs_row").style.backgroundColor = "";
	document.getElementById("nameeng_row").style.backgroundColor = "";
	document.getElementById("sex_row").style.backgroundColor = "";
	document.getElementById("title_row").style.backgroundColor = "";
	document.getElementById("birthday_row").style.backgroundColor = "";
	document.getElementById("identity_row").style.backgroundColor = "";
	document.getElementById("subject_row").style.backgroundColor = "";
	document.getElementById("degree_row").style.backgroundColor = "";
	document.getElementById("direction_row").style.backgroundColor = "";
	document.getElementById("tel_row").style.backgroundColor = "";
	document.getElementById("mobile_row").style.backgroundColor = "";
	document.getElementById("email_row").style.backgroundColor = "";
	document.getElementById("address_row").style.backgroundColor = "";
	document.getElementById("zip_row").style.backgroundColor = "";
	document.getElementById(row_id).style.backgroundColor = "#F1F6FC";
}

function checkUserName(checkExist) {
	var user_name = document.getElementById("UserName").value.toLowerCase();
	if (regName != user_name) {
		getObject("username_explain").className = "explain";
		var pattern=/^[a-zA-Z][a-zA-Z0-9_]{1,14}[a-zA-Z0-9]$/i;
		var patternLastChar = /^[a-zA-Z0-9_]{1,15}_$/i;
		var patternFirstChar = /^[0-9_][a-zA-Z0-9_]{1,14}$/i;
		if (user_name.length < 3)	{ // 用户名长度不能小于3
			regName = document.form1.UserName.value;
			getObject("username_explain").innerHTML = '用户名不能少于3位';
		} else if (user_name.length > 16) {// 用户名长度不能大于16
			regName = document.form1.UserName.value;
			getObject("username_explain").innerHTML = '<span class="red">用户名不能大于16位';
		} else if (patternFirstChar.test(user_name)) { // 开头字符必须为字母
			regName = document.form1.UserName.value;
			getObject("username_explain").innerHTML = '用户名必须以字母开头';
		} else if (patternLastChar.test(user_name)) { // 末字符不能是下划线
			regName = document.form1.UserName.value;
			getObject("username_explain").innerHTML = '下划线(_)不能放在末尾';
		} else if (!pattern.test(user_name)) { // 用户名只能是字母下画线和数字 并且字母开头 3 - 16位
			regName = document.form1.UserName.value;
			getObject("username_explain").innerHTML = '只能由3-16位字母、数字或下划线(_)构成';
		}  else {
			if (checkExist) { // 是否检查用户名是否存在
				regName = document.form1.UserName.value;
				getObject("username_explain").innerHTML = "正在检查..." + regName;
				getObject("username_explain").className = "explain";
				validateUserName();
			} else {
				getObject("username_explain").innerHTML = "只能由3-16位字母(a-z)、数字(0-9)或下划线(_)构成，并且必须以字母开头";
				getObject("username_explain").className = "explain";
			}
		}
	} else {
		getObject("username_explain").className = "explain";
	}
}

function userNameFocus() {
	getObject("username_note").innerHTML = "只能由3-16位字母(a-z)、数字(0-9)或下划线(_)构成，并且必须以字母开头";
	getObject("username_note").className = "note";
}

function userPwdFocus(id) {
	getObject(id).innerHTML =  '&nbsp;密码要至少8位以上，且不能包含空格，英文字母区分大小写';
	getObject(id).className = "note";
}

function userQuestionFocus() {
	getObject("question_note").innerHTML =  '&nbsp;输入密码问题，这是您在遗忘密码后申请找回的重要凭据';
	getObject("question_note").className = "note";
}

function userEmailFocus() {
    getObject("email_note").innerHTML = '&nbsp;邮箱格式为：yourname@yourcompany.com,该邮箱将作为编审对稿件操作记录接收邮箱';
    getObject("email_note").className = "note";
}

function userAnswerFocus() {
	getObject("answer_note").innerHTML =  '&nbsp;输入密码答案，这是您在遗忘密码后申请找回的重要凭据';
	getObject("answer_note").className = "note";
}

function checkPassword() {
	var password1 = getObject("UserPwd").value;
	var userName = getObject("UserName").value;
	var password2 = getObject("AffirmPwd").value;
	
	var numericPattern = /^[0-9]{1,9}$/i;
	var repeatPattern = /^[\w]*(\w)\1{3,}[\w]*$/i;
	if (password1 == "") {
		getObject("pass_explain").className = "explain";
		getObject("pass_explain").innerHTML = '密码要至少8位以上，且不能包含空格，英文字母区分大小写';
	} else if (password1.indexOf(" ", 0) != -1) {
		getObject("pass_explain").style.color = "red";
		getObject("pass_explain").innerHTML = '不能包含空格';
	} else if (password1.length < 8) {
		getObject("pass_explain").style.color = "red";
		getObject("pass_explain").innerHTML = '至少要8位以上';
	} else if (numericPattern.test(password1)) {
		getObject("pass_explain").style.color = "black";
		getObject("pass_explain").innerHTML = '不能使用9位以下的纯数字，这样容易被人猜到';
	} else if ((password1.indexOf(userName, 0) != -1) && (password1.length - userName.length < 3)) {
		getObject("pass_explain").style.color = "black";
		getObject("pass_explain").innerHTML = '不能和用户名太相似，这样容易被人猜到';
	} else if (repeatPattern.test(password1)) {
		getObject("pass_explain").style.color = "black";
		getObject("pass_explain").innerHTML = '太多连续或重复的字符(如：1234、abcd、3333、ssss等)';
	} else {
		getObject("pass_explain").style.color = "green";
		getObject("pass_explain").innerHTML = "√";
	}
}

function checkPasswordConfirm()
{
	var password1 = getObject("UserPwd").value;
	var password2 = getObject("AffirmPwd").value;
	
	if (password2 != "") {
		if (password1 != password2) {
			getObject("pass_confirm_explain").innerHTML = '与上次输入的密码不一致';
			getObject("pass_confirm_explain").style.color = "red";
		} else if (password2.length > 0) {
			getObject("pass_confirm_explain").style.color = "green";
			getObject("pass_confirm_explain").innerHTML = "√";
			getObject("pass_explain").style.color = "green";
			getObject("pass_explain").innerHTML = "√";
		}
	}
}

function checkEmail()
{
    var email = getObject("UserEmail").value;
    if (email != "") {
        var regm = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;//验证Mail的正则表达式,^[a-zA-Z0-9_-]:开头必须为字母,下划线,数字,
        if(!email.match(regm))
        {
            getObject("email_explain").innerHTML = '邮箱格式不正确';
			getObject("email_explain").style.color = "red";
        }
        else
        {
            getObject("email_explain").innerHTML = '√';
			getObject("email_explain").style.color = "green";
        }
    }
}

function getObject(id) {
	if (document.getElementById(id)) {
		return document.getElementById(id);
	} else if(document.all) {
		return document.all[id];
	} else if(document.layers) {
		return document.layers[id];
	}
}

function isMail(mail)  { 
    return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail)); 
}

function validateUserName() {
	var oXmlHttp = XHConn();
	var request_url = "Inc/CheckUser.aspx?name=" + escape(regName) + "&id=" + Math.random() * 10000;

	try {
		oXmlHttp.open("GET", request_url, true);
		oXmlHttp.onreadystatechange = function() {
			if (oXmlHttp.readyState == 4 && oXmlHttp.status == 200) {
				var tmp = oXmlHttp.responseText;
				getObject("username_explain").innerHTML = tmp
				getObject("username_explain").className = "explain";
				if (tmp == "此用户名已经被注册")
				{
				    userExists = true;
				}
				else if (tmp == "此用户名可以使用")
				{
				    userExists = false;
				}
				
			}
		}
		oXmlHttp.send(null);
	} catch (e) {
		// do nothing
	}
}

function XHConn() {
    var xmlhttp;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) { 
  	    try {
  		    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  	    } catch (e) {
  		    try {
  			    xmlhttp = new XMLHttpRequest();
  		    } catch (e) {
  			    xmlhttp = false;
  		    }
  	    }
    }
  
    return xmlhttp;
}

function trim(obj){
	str = obj.split(/^\s+|\s+$/)[0];
	return str;
}

function check() {
	var account = trim(getObject("UserName").value.toLowerCase());
	var password1 = getObject("UserPwd").value;
	var password2 = getObject("AffirmPwd").value;
	var email = getObject("UserEmail").value;
	var question = getObject("Question").value;
	var answer = getObject("Answer").value;
	
	var pattern=/^[a-zA-Z][a-zA-Z0-9_]{1,14}[a-zA-Z0-9]$/i;
	var regm = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;//验证Mail的正则表达式,^[a-zA-Z0-9_-]:开头必须为字母,下划线,数字,
	if (!pattern.test(account)) {
		alert("只能由3-16位字母(a-z)、数字(0-9)或下划线(_)构成，并且必须以字母开头!");
		getObject("UserName").focus();
		return false;
	} else if (account.length < 3) { // 判断长度
  	    alert("用户名不能少于3位!");
	    getObject("UserName").focus();
	    return false;
    } else if (account.length > 16) {
  	    alert("用户名不能大于16位!");
	    getObject("UserName").focus();
	    return false;
    } else if (password1 == "") {
  		alert("密码不能为空!");
		getObject("UserPwd").focus();
		return false;
    } else if(password1.length < 8) {
  		alert("密码不能少于8位!");
		getObject("UserPwd").focus();
		return false;
    } else if (password1 != password2){
  		alert("密码两次输入不同!");
		getObject("AffirmPwd").focus();
		return false;
    } else if (password1.indexOf(" ") != -1) {
  		alert("密码不能包含空格!");
		getObject("UserPwd").focus();
		return false;
    } else if (email.length == 0 || email == "") {
  		alert("邮箱不能为空!");
		getObject("UserEmail").focus();
		return false;
    } else if (!email.match(regm)) {
  		alert("邮箱格式不正确!");
		getObject("UserEmail").focus();
		return false;
    } else if (question == "") {
  		alert("密码问题不能为空!");
		getObject("Question").focus();
		return false;
    } else if (answer == "") {
  		alert("密码答案不能为空!");
		getObject("Answer").focus();
		return false;
    } else if (userExists == true) {
    	alert("此用户名已经存在，请换其它用户名再试!");
    	getObject("UserName").focus();
    	return false;
    }
  
  getObject("Submit").value = " 正在注册... ";
  return true;
}

function encodeParse(obj) {
    if ((obj == null) || (obj.value == "")) {
    	return false;
    }
    var str = obj.value;
    var result = "";
    for(var i = 0; i < str.length; i++) {
        var c = str.charCodeAt(i);
        if(c == 12288) {
            result += String.fromCharCode(32);
            continue;
        }
        if (c > 65280 && c < 65375) {
            result += String.fromCharCode(c - 65248);
            continue;
        }
        result += String.fromCharCode(c);
    }
    obj.value = result;
    
    return true;
}

function CharMode(iN) {  
	if (iN>=48 && iN <=57) {
		return 1;
	}
	
	if (iN>=65 && iN <=90) {
		return 2; 
	}
	
	if (iN>=97 && iN <=122) {
		return 4; 
	} else  {
		return 8;
	}
}  

function bitTotal(num) {  
	var modes=0;  
	for (i = 0; i < 4; i++) {  
		if (num & 1) {
			modes++; 
		}
		num>>>=1;  
	}
	return modes;  
}  

function checkStrong(sPW){  
	if (sPW.length<=4) {
		return 0;
	}
	var Modes = 0;
	for (i = 0; i < sPW.length; i++) {
		Modes |= CharMode(sPW.charCodeAt(i));
	} 
	
	return bitTotal(Modes);  
}

function changeEmailProvider(tips) {
    var emailProvider = document.getElementById("Email_Provider");
    if (emailProvider) {
    	if (emailProvider.value == "-1") {
    		var container = document.getElementById("Email_Provider_Container");
    		container.innerHTML = '&nbsp;@&nbsp;<input id="Email_Provider" name="Email_Provider" tabindex="8" size="21" onchange="changeEmailProvider(); checkMail();" />';
    	}
    }
}

function showadv()
{
	if (document.getElementById("advshow").checked == true)
		{
			document.getElementById("adv").style.display = "inline";
			document.getElementById("advance").innerHTML="关闭高级用户设置选项";
		}
	else
		{
			document.getElementById("adv").style.display = "none";
			document.getElementById("advance").innerHTML="显示高级用户设置选项";
		}
}