﻿/*********************************************************
*
*	用于会员模块的js文件
*	Power By LiShilin@Gmail.com
*	2008-05-02
*
*********************************************************/

/********************************************
	页面浮动div操作，主要用于显示提示信息
********************************************/
//创建一个可关闭的层，并显示错误信息
function ShowError(text,width)
{
	var state = $("Tranning");
	if(state == null)
	{
		state = CreateStateDiv();
		if(document.readyState == "complete")
		{
			document.body.appendChild(state);
		}
		else
		{
			timer = window.setTimeout(function(){document.body.appendChild(state);window.clearTimeout(timer);},1000);
		}
	}
	else
	{
		//重新设置样式
		state.innerHTML = "";
		state.removeAttribute("style");
		state.id = "Tranning";
		state.style.display = "none";
		state.style.position = "absolute";
		state.style.zIndex = "100000";
		state.style.border = "1px solid #cccccc";
		state.style.backgroundColor = "#ffffff";
	}
	
	var swidth = (width == null || width == "" || width == 0) ? 234 : width;
	
	state.style.filter = "progid:DXImageTransform.Microsoft.DropShadow(color=#CCCCCC,offx=3,offy=3,positive=2)";
	
	var content = '<div style="background-color:#999999; height:22px; color:#FFFFFF;width:'+ swidth + 'px;" onmousedown="MouseDownToRemove(this)" onmouseup="MouseUpToRemove(this)" onmousemove="MouseMoveToRemove(this)">';
	content += '<div style="display:inline; font-size: 14px; vertical-align:middle; padding-left:2px;">网页对话框</div>';
	content += '<div title="关闭" style="position: absolute; width: 12px; height: 9px; z-index: 100003; left: '+ (swidth - 23) + 'px; top: 1px; font-size: 14px; font-weight: bold; cursor: pointer;" onmouseover="this.style.border=\'1px solid #cccccc\';" onmouseout="this.style.border=\'0px\';" onclick="HiddenState();">×</div>';
	content += '</div>';
	content += '<div style="MARGIN-TOP: 8px! important; MARGIN-BOTTOM: 5px; MARGIN-LEFT: 11px; WIDTH: '+ (swidth - 23) + 'px">';
	content += text;
	content += '</div>';
	
	state.innerHTML = content;
	state.style.display = "inline";
	state.style.top = (document.documentElement.scrollTop+(document.documentElement.clientHeight-state.offsetHeight)/2)+"px";

	state.style.left = (document.documentElement.scrollLeft+(document.documentElement.clientWidth-state.offsetWidth)/2)+"px";

}
function GetSingleMsgContainer()
{
	var state = $("Tranning");
	if(state == null)
	{
		state = CreateStateDiv();
		if(document.readyState == "complete")
		{
			document.body.appendChild(state);
		}
		else
		{
			timer = window.setTimeout(function(){document.body.appendChild(state);window.clearTimeout(timer);},1000);
		}
	}
	state.innerHTML = "";
	//state.style.width = "";
	//state.style.height = "";
	return state;
}
/******************************
	表单验证
******************************/

//用于会员注册页面的表单验证
//总验证
function CheckRegisterInfo()
{
	var content = "";
	var errortitle = "<strong>您的输入有以下错误：</strong><br /><ul>";
	//必填验证
	if($("txtLoginName").value.Trim() == "")
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-未填写登录名称。</li>";
	}
	else if($("txtLoginName").value.Trim().length >= 21 || $("txtLoginName").value.Trim().length < 2)
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-登录名长度必须在2和20个字之间。</li>";
	}
	if($("txtLoginPassword").value.Trim() == "")
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-未填写登录密码。</li>";
	}
	else if($("txtLoginPassword").value.Trim().length >= 17 || $("txtLoginPassword").value.Trim().length < 6)
	{
		
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-登录密码长度必须在6～16之间。</li>";
	}
	if($("txtLoginPassword2").value.Trim() == "")
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-未填写确认密码。</li>";
	}
	else if($("txtLoginPassword").value.Trim().length >= 17 || $("txtLoginPassword").value.Trim().length < 6)
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-确认密码长度必须在6～16之间。</li>";
	}
	if($("txtLoginPassword").value.Trim()!="" && $("txtLoginPassword2").value.Trim()!="")
	{
		if($("txtLoginPassword").value.Trim() != $("txtLoginPassword2").value.Trim())
		{
			if(content == "" )
				{content += errortitle;}
			content += "<li style='color:red;'>-两次输入的密码不一致。</li>";
		}
	}
	if($dropGet($("selQuestion")) == "none")
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-未设置密码保护提示问题。</li>";
	}
	if($("txtAnswer").value.Trim() == "")
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-未设置密码保护问题的答案。</li>";
	}
	else if($("txtAnswer").value.Trim().length >= 51 || $("txtAnswer").value.Trim().length < 1)
	{
		
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-密码保护问题的答案长度应在1～50个字之间。</li>";
	}
	var reg = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/ig;
	if($("txtEmail").value.Trim() == "")
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-请输入您的常用邮箱。</li>";
	}
	else
	{
		var mail = $("txtEmail").value;
		if(mail.match(reg) == null)
		{
			if(content == "" )
				{content += errortitle;}
			content += "<li style='color:red;'>-输入的电子邮件格式不正确。</li>";
		}
	}
	if($("txtValidate").value.Trim() == "")
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-请输入验证码。</li>";
	}
	else if($("txtValidate").value.Trim().length >4 ||$("txtValidate").value.Trim().length <4)
	{
		if(content == "" )
			{content += errortitle;}
		content += "<li style='color:red;'>-请正确填写验证码。</li>";
	}
	//选填项验证：
	if($("cbxAdvance"))
	{
		if($("cbxAdvance").value=="true")
		{
			if($("txtMSN").value != "")
			{
				var msn = $("txtMSN").value;
				if(msn.match(reg) == null)
				{
					if(content == "" )
						{content += errortitle;}
					content += "<li style='color:red;'>-输入的MSN格式不正确。</li>";
				}
			}
		}
	}
	
	if(content.length == 0)
	{
		return true;
	}
	else
	{
		content += "</ul>";
		ShowError(content,0);
		return false;
	}
}
//检测用户名是否已存在
var btnSubmit = null;//定义用于操作的按钮对象
function CheckUserName(btnObj,txtObj)
{
	btnObj.disabled = true;
	btnObj.value = "请稍候...";
	btnSubmit = btnObj;
	var msgbox = GetSingleMsgContainer();
	msgbox.width = 80;
	msgbox.style.wordWrap = "break-word";
	msgbox.style.wordBreak = "break-all";
	msgbox.style.top = GetTop(txtObj) + txtObj.clientHeight + 8;
	msgbox.style.left = GetLeft(txtObj);
	msgbox.style.height = 20;
	if(txtObj.value == "")
	{
		msgbox.innerHTML = "<strong style='color:red;'>请输入用户名。</strong>";
		msgbox.style.border = "0px";
		msgbox.style.textAlign = "center";
		msgbox.style.display = "inline";
		txtObj.onkeydown = function(){ $("Tranning").style.display="none";this.onkeydown=function(){}; };
		txtObj.select();
		btnObj.disabled = false;
		btnObj.value="检查用户名";
	}
	else if(txtObj.value.Trim().length >=21 || txtObj.value.Trim().length < 2)
	{
		msgbox.innerHTML = "<strong style='color:red;'>用户名长度必须在2到20个字之间。</strong>";
		msgbox.style.border = "0px";
		msgbox.style.textAlign = "center";
		msgbox.style.display = "inline";
		txtObj.onkeydown = function(){ $("Tranning").style.display="none";this.onkeydown=function(){}; };
		txtObj.select();
		btnObj.disabled = false;
		btnObj.value="检查用户名";
	}
	else
	{
		//开启进度条
		msgbox.innerHTML = "<strong style='color:#cccccc;'>正在检测，请稍候。。。</strong>";
		//msgbox.style.border = "1px solid #cccccc";
		msgbox.style.textAlign = "center";
		msgbox.style.display = "inline";
		var url = "/Users/UserForm.aspx?action=tryuser&un=" + encodeURIComponent(txtObj.value.Trim());
		if(GetXmlDoc(url,TranUserName) == "error")
		{
			msgbox.innerHTML = "<strong style='color:#cccccc'>网络出错，请稍候重试</strong>";
			btnObj.disabled = false;
			btnObj.value="检查用户名";
			HiddenObjTimer("Tranning",2000);
		}
	}
}
//处理用户名检测反馈结果
function TranUserName()
{
	if(XmlHttp.readyState == 4)
	{
		//获取反馈。
		var root = XmlHttp.responseXML.documentElement;
		if(root == null)
		{
			$("Tranning").innerHTML = "<strong>网络出错，请稍候重试</strong>";
		}
		else
		{
			var result = root.selectNodes("result")[0].text;
			if(result == "0")
			{
				$("Tranning").innerHTML = "<strong style='color:green;'>您可以使用这个名称</strong>";
			}
			else if(result == "1")
			{
				$("Tranning").innerHTML = "<strong style='color:red;'>您选择的名称已经被人占用了，请重新输入</strong>";
			}
			else if(result=="2")
			{
				$("Tranning").innerHTML = "<strong style='color:red;'>参数出错，请不要进行非法的操作。</strong>";
			}
			else if(result=="3")
			{
				$("Tranning").innerHTML = "<strong style='color:red;'>登录名称长度必须在2到20个字之间</strong>";
			}
		}
		HiddenObjTimer("Tranning",2000);
		btnSubmit.disabled=false;
		btnSubmit.value="检查用户名";
	}
}
/*****************************************
	用户完整登录页面的验证及操作
*****************************************/
//验证
function CheckLoginInfo()
{
	if($("_txtUserName").value.Trim() == "")
	{
		alert("请输入用户名");
		return false;
	}
	if($("_txtPassword").value.Trim() == "")
	{
		alert("请输入密码");
		return false;
	}
	if($("_txtVali").value.Trim() == "")
	{
		alert("请输入验证码");
		return false;
	}
	return true;
}
//登录
function LoginPageAction(obj)
{
	if(CheckLoginInfo())
	{
		obj.value = "正在登录，请稍候";
		obj.disabled = true;
		var un = $("_txtUserName").value.Trim();
		var pwd = $("_txtPassword").value;
		var vali = $("_txtVali").value.Trim();
		var url = "/Users/UserForm.aspx?action=login&un=" + encodeURIComponent(un) + "&pwd=" + pwd + "&vali=" + vali;
		if(GetXmlDoc(url,TranLoginPage) == "error")
		{
			alert("网络出现故障，请稍候重试");
			obj.disabled = false;
			obj.value = "登 录";
		}
	}
}
//处理返回的数据
function TranLoginPage()
{
	if(XmlHttp.readyState == 4)
	{
		var root = XmlHttp.responseXML.documentElement;
		if(root == null)
		{
			alert("网络出现故障，请稍候重试");
		}
		else
		{
			var result = root.selectNodes("result")[0].text;
			if(result == "0")
			{
				alert("用户名或密码错误");
			}
			else if(result == "1")
			{
				//登录成功。
				var url = decodeURIComponent(GetRequest("redirect","/Users/"));
				LocationTo(url);
			}
			else if(result == "2")
			{
				alert("您输入的验证码与系统产生的不符，请刷新页面后重新输入");
			}
		}
		$("btnSubmit").disabled = false;
		$("btnSubmit").value = "登 录";
	}
}
/*********************************
	用户修改密码的简单验证
*********************************/
function CheckChangePasswordInUsers()
{
	if($("txtOldPassword").value.Trim() == "")
	{
		alert("请输入您的当前密码。");
		$("txtOldPassword").focus();
		return false;
	}
	if($("txtNewPassword").value.Trim() == "")
	{
		alert("请输入您想设置的新密码。");
		$("txtOldPassword").focus();
		return false;
	}
	else if($("txtNewPassword").value.Trim().length >= 17 || $("txtNewPassword").value.Trim().length < 6)
	{
		alert("密码的长度应在6～16之间。");
		$("txtNewPassword").focus();
		return false;
	}
	if($("txtNewPassword2").value.Trim() == "")
	{
		alert("请输入确认密码。");
		$("txtNewPassword2").focus();
		return false;
	}
	else if($("txtNewPassword2").value.Trim().length >= 17 || $("txtNewPassword2").value.Trim().length < 6)
	{
		alert("确认密码的长度应在6～16之间。");
		$("txtNewPassword2").focus();
		return false;
	}
	if($("txtNewPassword").value.Trim() != $("txtNewPassword2").value.Trim())
	{
		alert("两次输入的密码不一致。");
		$("txtNewPassword2").focus();
		return false;
	}
	return true;
}
/*****************************************
	用户修改密码保护资料的表单验证
*****************************************/
function CheckPasswordSafeInUsers()
{
	if($("txtAnswer").value.Trim() == "")
	{
		alert("请输入提示问题的答案。");
		$("txtAnswer").focus();
		return false;
	}
	else if($("txtAnswer").value.Trim().length >= 51 || $("txtAnswer").value.Trim().length < 1)
	{
		alert("提示问题的答案长度应在1～50个字之间。");
		$("txtAnswer").focus();
		return false;
	}
	return true;
}
/****************************************
	用户收货地址表单验证
	还可以增加：校验手机号码格式、校验电话号码格式等
****************************************/
function CheckAddressInUsers()
{
	if($("txtReceiveUserName").value.Trim() == "")
	{
		alert("请输入收货人姓名。");
		$("txtReceiveUserName").focus();
		return false;
	}
	else if($("txtReceiveUserName").value.Trim().length > 25)
	{
		alert("收货人姓名长度应小于25个字");
		$("txtReceiveUserName").focus();
		return false;
	}
	if($dropGet($("selProvinceID")) == "none")
	{
		alert("请选择省份。");
		return false;
	}
	if($("txtAddress").value.Trim() == "")
	{
		alert("请输入收货的街道地址。");
		$("txtAddress").focus();
		return false;
	}
	else if($("txtAddress").value.Trim().length > 150)
	{
		alert("收货的街道地址长度应小于150个字。");
		$("txtAddress").focus();
		return false;
	}
	if($("txtZipCode").value.Trim() == "")
	{
		alert("请输入收货地址所在地的邮政编码。");
		$("txtZipCode").focus();
		return false;
	}
	else if($("txtZipCode").value.Trim().length < 6 || $("txtZipCode").value.Trim().length > 6)
	{
		alert("请正确输入收货地址所在地的邮政编码(6位数字)。");
		$("txtZipCode").focus();
		return false;
	}
	if($("txtPhone").value.Trim() == "" && $("txtMobile").value.Trim() == "")
	{
		alert("电话或手机请务必输入一个，便于我们与您联系。");
		$("txtPhone").focus();
		return false;
	}
	if($("txtEmail").value.Trim() != "")
	{
		var mail = $("txtEmail").value.Trim();
		if(mail.match("\\w+([-+.\']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*") == null)
		{
			alert("电子邮件格式不正确。");
			$("txtEmail").focus();
			return false;
		}
	}
	return true;
}
/*************************************************
	用户收藏管理页动作
*************************************************/
//选中所有
function SelectedAllFavorites(obj)
{
	var cbxlist = $Name("cbxFavoritesID");
	if(cbxlist != null)
	{
		for(var i=0;i<cbxlist.length;i++)
		{
			cbxlist[i].checked=obj.checked;
		}
	}
}
//检测至少选中了一个
function SelectedOneCheck()
{
	var cbxlist = $Name("cbxFavoritesID");
	if(cbxlist != null)
	{
		for(var i=0;i<cbxlist.length;i++)
		{
			if(cbxlist[i].checked)
			{
				return true;
			}
			else
			{
				continue;
			}
		}
	}
	return false;
}
//获取选中行的值
function GetSelectedRows()
{
	var cbxlist = $Name("cbxFavoritesID");
	if(cbxlist != null)
	{
		var list = new Array();
		for(var i=0;i<cbxlist.length;i++)
		{
			if(cbxlist[i].checked)
			{
				list.push(cbxlist[i].value);
			}
		}
		if(list.length > 0)
		{
			return list;
		}
	}
	return null;
}
//提交删除
function DeleteSelectedRows()
{
	if(SelectedOneCheck())
	{
		var list = GetSelectedRows();
		if(list != null)
		{
			var url = SetUrlAddParam(location.href,"params=" + list.toString());
			url = SetUrlAddParam(url,"action=del");
			$("formFavorites").action = url;
			$("formFavorites").submit();
		}
	}
	else
	{
		alert("您没有选择任何数据。");
	}
}
//打开层进行编辑
function EditorSelectedRow()
{
	if(SelectedOneCheck())
	{
		var list = GetSelectedRows();
		if(list != null)
		{
			if(list.length > 1)
			{
				alert("一次只能编辑一行，请重新选择。");
			}
			else
			{
				var content = '<iframe src="/Users/EditFavorites.aspx?params=' + list.toString() + '" width="100%" height="226" frameborder="0" scrolling="no"></iframe>';
				ShowError(content,500);
			}
		}
	}
	else
	{
		alert("您没有选择任何数据。");
	}
}
//提交按组筛选
function QuerySubmit(obj)
{
	var selvalue = $dropGet(obj);
	if(selvalue == "none")
	{
		RefreshMe();
	}
	else
	{
		var url = SetUrlAddParam(location.href,"params=" + encodeURIComponent(selvalue));
		url = SetUrlAddParam(url,"action=group");
		$("formFavorites").action = url;
		$("formFavorites").submit();
	}
}
//将选中的分类输入到文本框
function SetColumnNameTextBox(obj)
{
	$("txtColumnName").value = $dropGet(obj);
}
/****************************************************
	提交参与活动表单
****************************************************/
function CheckSubmitJoinParty()
{
	if($("txtJoinUserName").value.Trim() == "")
	{
		alert("请输入您的名字。");
		$("txtJoinUserName").focus();
		return false;
	}
	if($("txtContent").value.Trim() == "")
	{
		alert("请留下您的感言。");
		$("txtContent").focus();
		return false;
	}
	if($("txtEmail").value.Trim() != "")
	{
		var reg = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/ig;
		if($("txtEmail").value.Trim().match(reg) == null)
		{
			alert("邮箱地址不正确，请重新输入一个有效的邮箱。");
			$("txtEmail").focus();
			return false;
		}
	}
	return true;
}
/****************************************************
	忘记密码的操作
****************************************************/
//验证用户名
function CheckSubmitUserNameInForgetPasswordStep1()
{
	if($("txtUserLoginName").value.Trim() == "")
	{
		alert("请输入您的注册用户名。");
		$("txtUserLoginName").focus();
		return false;
	}
	else if($("txtUserLoginName").value.Trim().length < 3 || $("txtUserLoginName").value.Trim().length >=21)
	{
		alert("用户名长度应大于3个字，小于20个字");
		$("txtUserLoginName").focus();
		return false;
	}
	if($("txtValidate").value.Trim() == "")
	{
		alert("请输入验证码。");
		$("txtValidate").focus();
		return false;
	}
	else if($("txtValidate").value.Trim().length < 4)
	{
		alert("请正确输入验证码。");
		$("txtValidate").focus();
		return false;
	}
	return true;
}
//验证答案
function CheckSubmitAnswerInForgetPasswordStep2()
{
	if($("txtAnswer").value.Trim() == "")
	{
		alert("请输入您的答案。")
		$("txtAnswer").focus();
		return false;
	}
	else if($("txtAnswer").value.Trim().length >= 51 || $("txtAnswer").value.Trim().length < 6)
	{
		alert("您的答案长度应在6～50个字之间。");
		$("txtAnswer").focus();
		return false;
	}
	return true;
}