var illegalChars = new Array("\"", "'", "&", "!", "^");

function submitUpdateUser()
{
	if ( validUpdateUser() )
		document.userForm.submit();
}

function validUpdateUser()
{
	if (document.getElementById("cmbEducation").value=="")
	{ 
		alert("对不起，请选择您的教育程度!");
		document.getElementById("cmbEducation").focus();
		return false; 
	}
	if (document.getElementById("cmbOccupation").value=="")
	{ 
		alert("对不起，请选择您的职业!");
		document.getElementById("cmbOccupation").focus();
		return false; 
	}
	if (document.getElementById("cmbArea").value=="")
	{ 
		alert("对不起，请选择您所在的省!");
		document.getElementById("cmbArea").focus();
		return false; 
	}
	var address = document.getElementById("txtAddress").value;
	if (address.trim()=="" || isInvalid(address.trim()))
	{ 
		alert("对不起，详细住址不能含有特殊字符!");
		document.getElementById("txtAddress").focus();
		return false; 
	}	
	var postcode = document.getElementById("txtPostcode").value;
	if (!checkZip(postcode.trim()))
	{
		alert("对不起，请输入正确的邮政编码!");
		document.getElementById("txtPostcode").focus();
		return false; 
	}
	/*
	if (document.getElementById("txtPhone").value!="" && isInvalid(document.getElementById("txtPhone").value))
	{ 
		alert("对不起，电话号码不能含有特殊字符!");
		document.getElementById("txtPhone").focus();
		return false; 
	}
	if (document.getElementById("txtMobile").value!="" && isInvalid(document.getElementById("txtMobile").value))
	{ 
		alert("对不起，手机不能含有特殊字符!");
		document.getElementById("txtMobile").focus();
		return false; 
	}
	*/
	if (document.getElementById("txtEMail").value == "" || !checkEmail(document.getElementById("txtEMail").value))
	{ 
		alert("对不起，邮箱无效!");
		document.getElementById("txtEMail").focus();
		return false; 
	}
	if (isInvalid(document.getElementById("txtPassword").value) || document.getElementById("txtPassword").value.length < 6)
	{
		alert("对不起，密码含有特殊字符或者长度小于6!");
		document.getElementById("txtPassword").focus();
		return false; 
	}
	if (isInvalid(document.getElementById("txtConfirmPwd").value) || document.getElementById("txtConfirmPwd").value.length < 6)
	{
		alert("对不起，确认密码含有特殊字符或者长度小于6!");
		document.getElementById("txtConfirmPwd").focus();
		return false; 
	}
	if ( document.getElementById("txtConfirmPwd").value != document.getElementById("txtPassword").value )
	{
		alert("对不起，确认密码与密码不一致!");
		document.getElementById("txtConfirmPwd").focus();
		return false; 
	}
	/*
	if ((document.getElementById("txtQuestion").value=="")||isInvalid(document.getElementById("txtQuestion").value))
	{ 
		alert("对不起，查询密码问题不能为空或查询密码问题含有特殊字符!");
		document.getElementById("txtQuestion").focus();
		return false; 
	}
	if ((document.getElementById("txtAnswer").value=="")||isInvalid(document.getElementById("txtAnswer").value))
	{ 
		alert("对不起，查询密码答案不能为空或查询密码答案含有特殊字符!");
		document.getElementById("txtAnswer").focus();
		return false; 
	}*/

	return true;
}

function submitRegister()
{
	if ( validUserRegister() )
		document.regForm.submit();
}

function submitRegisterMore()
{
	if ( validUserRegisterMore() )
		document.regForm.submit();
}

function validUserRegisterMore()
{
/*
	if (!checkZip(document.getElementById("txtPostcode").value))
	{
		alert("对不起，请输入正确的邮政编码!");
		document.getElementById("txtPostcode").focus();
		return false; 
	}
	if (document.getElementById("txtAddress").value=="" || isInvalid(document.getElementById("txtAddress").value))
	{ 
		alert("对不起，详细住址不能含有特殊字符!");
		document.getElementById("txtAddress").focus();
		return false; 
	}
*/
	if (document.getElementById("cmbEducation").value=="")
	{ 
		alert("对不起，请选择您的教育程度!");
		document.getElementById("cmbEducation").focus();
		return false; 
	}
	if (document.getElementById("cmbOccupation").value=="")
	{ 
		alert("对不起，请选择您的职业!");
		document.getElementById("cmbOccupation").focus();
		return false; 
	}
	if (document.getElementById("cmbArea").value=="")
	{ 
		alert("对不起，请选择您所在的省!");
		document.getElementById("cmbArea").focus();
		return false; 
	}
/*
	if (document.getElementById("txtPhone").value!="" && isInvalid(document.getElementById("txtPhone").value))
	{ 
		alert("对不起，电话号码不能含有特殊字符!");
		document.getElementById("txtPhone").focus();
		return false; 
	}
	if (document.getElementById("txtMobile").value!="" && isInvalid(document.getElementById("txtMobile").value))
	{ 
		alert("对不起，手机不能含有特殊字符!");
		document.getElementById("txtMobile").focus();
		return false; 
	}
*/
	return true;
}

function validSendAddress()
{
	var postcode = document.getElementById("txtPostcode").value;
	if (!checkZip(postcode.trim()))
	{
		alert("对不起，请输入正确的邮政编码!");
		document.getElementById("txtPostcode").focus();
		return false; 
	}
	if (document.getElementById("txtAddress").value=="" || isInvalid(document.getElementById("txtAddress").value))
	{ 
		alert("对不起，详细住址不能含有特殊字符!");
		document.getElementById("txtAddress").focus();
		return false; 
	}
	if ( isInvalid(document.getElementById("txtPhone").value))
	{ 
		alert("对不起，电话号码不能含有特殊字符!");
		document.getElementById("txtPhone").focus();
		return false; 
	}
	if ( isInvalid(document.getElementById("txtMobile").value))
	{ 
		alert("对不起，手机不能含有特殊字符!");
		document.getElementById("txtMobile").focus();
		return false; 
	}
	if ( document.getElementById("txtPhone").value == "" && document.getElementById("txtMobile").value =="")
	{
		alert("手机和联系电话必须输入一项");
		return false;
	}

	return true;
}

function validUserRegister()
{
	if (document.getElementById("txtFullName").value=="" || isInvalid(document.getElementById("txtFullName").value) )
	{ 
		alert("对不起，真实姓名不能含有特殊字符!!");
		document.getElementById("txtFullName").focus();
		return false; 
	}
	/*
	if (checkIdCard(document.getElementById("txtIDCard").value).length > 0)
	{ 
		alert("对不起，证件号码不能含有特殊字符!");
		document.getElementById("txtIDCard").focus();
		return false; 
	}*/
	if ( document.getElementById("cmbBirthdayYear").value=="" )
	{
		alert("对不起，请输入生日年份!");
		document.getElementById("cmbBirthdayYear").focus();
		return false; 
	}
	if ( document.getElementById("cmbBirthdayMonth").value=="" )
	{
		alert("对不起，请输入生日月份!");
		document.getElementById("cmbBirthdayMonth").focus();
		return false; 
	}
	if ( document.getElementById("cmbBirthdayDay").value=="" )
	{
		alert("对不起，请输入生日日份!");
		document.getElementById("cmbBirthdayDay").focus();
		return false; 
	}
	if ( !checkDate(document.getElementById("cmbBirthdayYear").value, document.getElementById("cmbBirthdayMonth").value,
		document.getElementById("cmbBirthdayDay").value) )
	{
		alert("对不起，生日日份无效!");
		document.getElementById("cmbBirthdayDay").focus();
		return false;
	}		
	var email = document.getElementById("txtEMail").value;
	if (email == "" || !checkEmail(email.trim()))
	{ 
		alert("对不起，邮箱无效!");
		document.getElementById("txtEMail").focus();
		return false; 
	}
	if (isInvalid(document.getElementById("txtUserName").value) || document.getElementById("txtUserName").value.length < 2)
	{
		alert("对不起，用户名含有特殊字符或者长度小于2!");
		document.getElementById("txtUserName").focus();
		return false; 
	}
	if (isInvalid(document.getElementById("txtPassword").value) || document.getElementById("txtPassword").value.length < 6)
	{
		alert("对不起，密码含有特殊字符或者长度小于6!");
		document.getElementById("txtPassword").focus();
		return false; 
	}
	if (isInvalid(document.getElementById("txtConfirmPwd").value) || document.getElementById("txtConfirmPwd").value.length < 6)
	{
		alert("对不起，确认密码含有特殊字符或者长度小于6!");
		document.getElementById("txtConfirmPwd").focus();
		return false; 
	}
	if ( document.getElementById("txtConfirmPwd").value != document.getElementById("txtPassword").value )
	{
		alert("对不起，确认密码与密码不一致!");
		document.getElementById("txtConfirmPwd").focus();
		return false; 
	}
	/*
	if ((document.getElementById("txtQuestion").value=="")||isInvalid(document.getElementById("txtQuestion").value))
	{ 
		alert("对不起，查询密码问题不能为空或查询密码问题含有特殊字符!");
		document.getElementById("txtQuestion").focus();
		return false; 
	}
	if ((document.getElementById("txtAnswer").value=="")||isInvalid(document.getElementById("txtAnswer").value))
	{ 
		alert("对不起，查询密码答案不能为空或查询密码答案含有特殊字符!");
		document.getElementById("txtAnswer").focus();
		return false; 
	}*/
	if ( isInvalid(document.getElementById("txtCode").value) || document.getElementById("txtCode").value.length == 0 )
	{
		alert("对不起，验证码格式不正确");
		document.getElementById("txtCode").focus();
		return false; 
	}

	return true;
}

function checkDate(year, month, day)
{
	var dtDate = new Date(year, month-1, day);
	if ( dtDate.getFullYear() == year && dtDate.getMonth() == month-1 && dtDate.getDate() == day )
		return true;
	return false;
}

function check( reg, str )
{
	if( reg.test( str ) )
	{
		return true;
	}
	return false;
}

function isInvalid(str)
{
	if((str.indexOf ('%') != -1)||(str.indexOf ('^') != -1)
	||(str.indexOf ("'") != -1)||(str.indexOf ("<") != -1)
	||(str.indexOf (">") != -1)||(str.indexOf ("=") != -1)
	||(str.indexOf (",") != -1)||(str.indexOf ("\"") != -1)
	||(str.indexOf (" ") != -1))
	{	
		return true;
	}
	else
	{
		return false;
	}
}

// 数字
function checkNumber( str )
{
	var reg = /^\d*(?:$|\.\d*$)/;
	return check( reg, str );
}

// 邮编
function checkZip( str )
{
	var reg = /^\d{6}$/;
	return check( reg, str );
}

// Email
function checkEmail( str )
{
	var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
	return check( reg, str );
}

function checkIdCard(idcard)
{
	var Errors=new Array(
		"",
		"身份证号码位数不对!",
		"身份证号码出生日期超出范围或含有非法字符!",
		"身份证号码校验错误!",
		"身份证地区非法!"
	);
	var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",
	23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",
	41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",
	52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",
	71:"台湾",81:"香港",82:"澳门",91:"国外"} 

	var idcard,Y,JYM;
	var S,M;
	var idcard_array = new Array();
	idcard_array = idcard.split("");
	//地区检验
	if(area[parseInt(idcard.substr(0,2))]==null) 
		return Errors[4];
	//身份号码位数及格式检验
	switch(idcard.length)
	{
	case 15:
		if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 ))
		{
			ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
		} 
		else 
		{
			ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
		}
		if(ereg.test(idcard)) 
			return Errors[0];
		else 
			return Errors[2];
		break;
	case 18:
		//18位身份号码检测
		//出生日期的合法性检查 
		//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
		//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
		if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
			ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
		} else {
			ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
		}
		if(ereg.test(idcard))
		{//测试出生日期的合法性
			//计算校验位
			S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
			+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
			+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
			+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
			+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
			+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
			+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
			+ parseInt(idcard_array[7]) * 1 
			+ parseInt(idcard_array[8]) * 6
			+ parseInt(idcard_array[9]) * 3 ;
			Y = S % 11;
			M = "F";
			JYM = "10X98765432";
			M = JYM.substr(Y,1);//判断校验位
			if(M == idcard_array[17]) return Errors[0]; //检测ID的校验位
			else return Errors[3];
		}
		else 
			return Errors[2];
		break;
	default:
		return Errors[1];
		break;
	}
}

function checkUser(userName)
{
	if ( userName.length > 0 )
	{
		/*
		var co = wsCaller.createCallOptions();
		co.async = false;			
		co.funcName = "CheckUser";
		var oResult = wsCaller.SYClient.callService(co, userName);
		*/
		var oResult = CommonPage.CheckUser(userName);
		if ( oResult.error != null )
			displayMessage("id_web_service_error","An error occurred while attempting to call the Web Service.");
		else
		{		
			if ( oResult.value == true )
				alert("用户已经存在");
			else
				alert("用户可以使用");
		}
	}
}

function checkEMail(email)
{
	if ( !checkEmail(email) )
		alert("邮箱无效");
	else
	{
		/*
		var co = wsCaller.createCallOptions();
		co.async = false;			
		co.funcName = "CheckEMail";
		var oResult = wsCaller.SYClient.callService(co, email);
		*/
		var oResult = CommonPage.CheckEMail(email);
		if ( oResult.error != null )
			displayMessage("id_web_service_error","An error occurred while attempting to call the Web Service.");
		else
		{
			if ( oResult.value == true )
				alert("邮箱已经存在");
			else
				alert("邮箱可以使用");
		}
	}
}

function userLogin()
{
	if (isInvalid(document.getElementById("name").value) || document.getElementById("name").value.length == 0 )
	{
		alert("对不起，用户名含有特殊字符!");
		document.getElementById("name").focus();
		return false; 
	}
	if (isInvalid(document.getElementById("password").value) || document.getElementById("password").value.length == 0 )
	{
		alert("对不起，密码含有特殊字符!");
		document.getElementById("password").focus();
		return false; 
	}
	//document.loginForm.submit();
	
	return true;
}

function onLoadUserInfo()
{
	//initWebService(GetUserInfo);
	loadPage();
	GetUserInfo();
}

function checkRecommend()
{
	var email = document.getElementById("txtEmail").value;
	if ( !checkEmail(email) )
	{
		document.getElementById("txtEmail").focus();
		alert("邮箱无效");
		return false;
	}
	return true;
}

function checkEmailInput(obj)
{
	if ( !checkEmail(obj.value) )
	{
		alert("邮箱无效");
		obj.focus();
		return false;
	}
	
	document.loginForm.submit();
}

function checkUserName(obj)
{
	if (isInvalid(obj.value) || obj.value.length == 0 )
	{
		alert("对不起，用户名含有特殊字符!");
		obj.focus();
		return false; 
	}
	
	document.loginForm.submit();
}

function GetUserInfo()
{
	var userName;
	if (document.all)
		userName = document.getElementById("spanUserName").innerText;
	else
		userName = document.getElementById("spanUserName").textContent;
	var sessionID = document.getElementById("hidSessionID").value;
	/*
	var co = wsCaller.createCallOptions();
	co.async = false;			
	co.funcName = "GetUserInfo";
	var oResult = wsCaller.SYClient.callService(co, sessionID, userName);
	*/
	var oResult = CommonPage.GetUserInfo(sessionID, userName);
	if ( oResult.error != null )
		displayMessage("id_web_service_error","An error occurred while attempting to call the Web Service.");
	else
	{
		//判断是否为Firefox或IE 
		var moz = document.implementation && document.implementation.createDocument; 
		var ie = window.ActiveXObject;

		var xdData;
		if ( moz )
		{
			var oParser = new DOMParser();
			xdData = oParser.parseFromString(oResult.value, "text/xml");
		}
		else
		{
			xdData = new ActiveXObject("Microsoft.XMLDOM");
			xdData.async="false";
			xdData.loadXML(oResult.value);
		}
		if ( xdData != null && xdData.documentElement != null && 
			xdData.documentElement.childNodes != null )
		{			
			var i = 0;
			//for ( var i=0; i < xdData.documentElement.childNodes.length; i++ )
			{
				var xeRow = xdData.documentElement.childNodes[i];
				var sex = xeRow.getAttribute("Sex");
				var marital = xeRow.getAttribute("MaritalStatus");
				var hobby = xeRow.getAttribute("Hobby");
				var skinQuestions = xeRow.getAttribute("SkinQuestions");
				var arrSkins = skinQuestions.split("|");
				//var arrHobbies = hobby.split("|");
				if ( document.all )
				{					
					document.getElementById("spanBirthday").innerText = xeRow.getAttribute("Birthday");
					document.getElementById("spanSex").innerText = sex == "Male" ? "男" : "女";
				}
				else
				{
					document.getElementById("spanBirthday").textContent = xeRow.getAttribute("Birthday");
					document.getElementById("spanSex").textContent = sex == "Male" ? "男" : "女";
				}
				document.getElementById("truename").value = xeRow.getAttribute("FullName");
				document.getElementById("radSingle").checked = (marital=="0");
				document.getElementById("radMarried").checked = (marital=="1");
				setSelectedOption(document.getElementById("cmbEducation"), xeRow.getAttribute("Education"));
				setSelectedOption(document.getElementById("cmbOccupation"), xeRow.getAttribute("Occupation"));

				for ( var j=0; j < arrSkins.length; j++ )
				{					
					document.getElementById("chkSkin"+j).checked = ( arrSkins[j] == "1" );
				}
				setSelectedOption(document.getElementById("cmbHobby1"), hobby);
				//if ( arrHobbies.length > 0 )
				//	setSelectedOption(document.getElementById("cmbHobby1"), arrHobbies[0]);
				//if ( arrHobbies.length > 1 )
				//	setSelectedOption(document.getElementById("cmbHobby2"), arrHobbies[1]);
				//if ( arrHobbies.length > 2 )
				//	setSelectedOption(document.getElementById("cmbHobby3"), arrHobbies[2]);
				setSelectedOption(document.getElementById("cmbSalary"), xeRow.getAttribute("Salary"));
				setSelectedTextOption(document.getElementById("cmbArea"), xeRow.getAttribute("Province"));
				
				document.getElementById("txtPostcode").value = xeRow.getAttribute("Postcode");
				document.getElementById("address").value = xeRow.getAttribute("Address");
				
				document.getElementById("email").value = xeRow.getAttribute("EMail");
				//document.getElementById("password").value = xeRow.getAttribute("Password");
				//document.getElementById("pwdConfirm").value = xeRow.getAttribute("Password");
				// BBS
				document.getElementById("telephone").value = xeRow.getAttribute("Phone");
				document.getElementById("mobile").value = xeRow.getAttribute("Mobile");
				//document.getElementById("question").value = xeRow.getAttribute("Question");
				//document.getElementById("answer").value = xeRow.getAttribute("Answer");
				
			}			
		}
		oResult = CommonPage.GetBBSUserInfo(userName);
		if ( oResult.error == null )
		{
			if ( moz )
			{
				var oParser = new DOMParser();
				xdData = oParser.parseFromString(oResult.value, "text/xml");
			}
			else
			{
				xdData = new ActiveXObject("Microsoft.XMLDOM");
				xdData.async="false";
				xdData.loadXML(oResult.value);
			}
			if ( xdData != null && xdData.documentElement != null && 
				xdData.documentElement.childNodes != null )
			{	
				var i = 0;
				var xeRow = xdData.documentElement.childNodes[i];
				var info = xeRow.getAttribute("info");
				var infos = info.split("\t");
				if ( infos.length >= 3 )
				{
					document.getElementById("homepage").value = infos[0];
					document.getElementById("qq").value = infos[1];
					document.getElementById("msn").value = infos[2];
				}
				var face = xeRow.getAttribute("face");
				var faces = face.split("\t");
				document.getElementById("face").value = face;
				if ( faces.length >= 3 )
				{
					document.getElementById("face").value = faces[0];
					document.getElementById("facewidth").value = faces[1];
					document.getElementById("faceheight").value = faces[2];
				}
				document.getElementById("signature").value = xeRow.getAttribute("signature");
				document.getElementById("rank").value = xeRow.getAttribute("rank");
			}
		}
	}
}

function doExchangeGift(giftID)
{
	document.getElementById("hidGift").value = giftID;
	document.forms[0].submit();
}