/*
 * Libairy 王庆川 effect: 用于辅助web前端的数据验证及填充
 */
var isAllowReg=false;
// Trim() , Ltrim() , RTrim()
String.prototype.Trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function() {
	return this.replace(/(^\s*)/g, "");
}
String.prototype.RTrim = function() {
	return this.replace(/(\s*$)/g, "");
}

// 异步通信对象
var xmlhttp;
// IE浏览参数
var isIE = true;
// 产品编号
var proNosMove = new Array();
// 创建异步请求对象
function createXMLHttpRequest() {

	if (window.XMLHttpRequest) // 非IE浏览器，用xmlhttprequest对象创建
	{
		xmlhttp = new XMLHttpRequest();
		isIE = false;
	} else if (window.ActiveXObject) // IE浏览器用activexobject对象创建
	{
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
	}
}

// 验证Email通讯
function validateEmail(_txt) {
	var reg = /^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/gi;
	_txt = _txt.replace(/(^\s*)|(\s*$)/g, "");
	if (!reg.test(_txt)) {
		document.getElementById("vemailTipc").style.display = "block";
		document.getElementById("vemailTipc").innerHTML = "请输入有效邮箱!";
		document.getElementById("vemailTipcImg").style.display = "none";
		isAllowReg=false;
	} else {
		document.getElementById("vemailTipcImg").style.display = "block";
		document.getElementById("vemailTipcImg").src = "images/accept.png";
		document.getElementById("vemailTipc").style.display = "none";
		isAllowReg=true;
	}
}
function ajaxCheckEMailCall() {
	// 回掉函数
	if (xmlhttp.readyState == 4) {
		// 请求成功
		if (xmlhttp.status == 200) {
			var txt = xmlhttp.responseText.replace(/(^\s*)|(\s*$)/g, "");
			if (txt == "able") {
				document.getElementById("emailTipc").style.display = "none";
				document.getElementById("emailTipcImg").style.display = "block";
				document.getElementById("emailTipcImg").src = "images/accept.png";
				document.getElementById("emailTipcImg").alt = "恭喜！此用户名可以使用!";
				isAllowReg=true;
			} else {
				document.getElementById("emailTipc").style.display = "none";
				document.getElementById("emailTipcImg").style.display = "block";
				document.getElementById("emailTipcImg").src = "images/cross.png";
				document.getElementById("emailTipcImg").alt = "对不起！此用户名已被注册,请更换新用户名!";
				document.getElementById("userNo_Id").select();
				isAllowReg=false;
			}
		}
	}
}
// 后台验证email是否未被注册
function ajaxCheckEMail(_val) {
	if (_val.replace(/(^\s*)|(\s*$)/g, "").length == 0) {
		document.getElementById("emailTipc").style.display = "block";
		document.getElementById("emailTipc").innerHTML = "*必填";
		document.getElementById("emailTipcImg").style.display = "none";		
		return;
	}
	if (validateEmail(_val)) {
		createXMLHttpRequest();
		xmlhttp.open("get", "validateEMail.action?vEMail=" + _val);
		xmlhttp.onreadystatechange = ajaxCheckEMailCall;
		xmlhttp.send(null);
	}
}

function ajaxCheckUser() {
	// 回掉函数
	if (xmlhttp.readyState == 4) {
		// 请求成功
		if (xmlhttp.status == 200) {
			var txt = xmlhttp.responseText.replace(/(^\s*)|(\s*$)/g, "");
			if (txt == "able") {
				document.getElementById("emailTipc").style.display = "none";
				document.getElementById("emailTipcImg").style.display = "block";
				document.getElementById("emailTipcImg").src = "images/accept.png";
				document.getElementById("emailTipcImg").alt = "恭喜！此用户名可以使用!";
				isAllowReg=true;
				// document.getElementById("emailTipc").innerHTML = "此用户名可以使用!";
			} else {
				// document.getElementById("emailTipc").style.display = "none";
				// document.getElementById("emailTipcImg").style.display =
				// "block";
				// document.getElementById("emailTipcImg").src =
				// "images/cross.png";
				// document.getElementById("emailTipcImg").alt =
				// "对不起！此用户名已被注册,请更换新用户名!";
				document.getElementById("emailTipc").innerHTML = "此用户名已被注册!";
				document.getElementById("userNo_Id").select();
				isAllowReg=false;
			}
		}
	}
}

// 验证用户名
function ajaxCheckUserNo(_val) {

	if (_val.replace(/(^\s*)|(\s*$)/g, "").length == 0) {
		document.getElementById("emailTipc").style.display = "block";
		document.getElementById("emailTipc").innerHTML = "*必填";
		document.getElementById("emailTipcImg").style.display = "none";
		isAllowReg=false;
		return;
	}
	if (_val) {
		createXMLHttpRequest();
		xmlhttp.open("get", "vlidateUserNo.action?userNo=" + _val);
		xmlhttp.onreadystatechange = ajaxCheckUser;
		xmlhttp.send(null);
	}
}

// 登录密码文本框失去焦点事件
function pwdTipcONBlurs(_val) {
	if (_val.replace(/(^\s*)|(\s*$)/g, "").length == 0) {
		document.getElementById("pwdTipc").style.display = "block";
		document.getElementById("pwdTipc").innerHTML = "*必填";
		document.getElementById("pwdTipcImg").style.display = "none";
		isAllowReg=false;
		return;
	}
	if (_val.replace(/(^\s*)|(\s*$)/g, "").length < 6) {// 长度小于6
		// document.getElementById('pwdTipc').style.display = "none";
		// document.getElementById("pwdTipcImg").style.display = "block";
		// document.getElementById("pwdTipcImg").src = "images/cross.png";
		// document.getElementById("pwdTipcImg").alt = "对不起！密码位数应大于6!";
		document.getElementById('pwdTipc').innerHTML = "密码位数应大于6!";
		isAllowReg=false;		
	} else {
		document.getElementById('pwdTipc').style.display = "none";
		document.getElementById("pwdTipcImg").style.display = "block";
		document.getElementById("pwdTipcImg").src = "images/accept.png";
		document.getElementById("pwdTipcImg").alt = "恭喜!密码输入正确!";
		isAllowReg=true;
	}
}
// 密码输入框的change事件
function pwdChange(_val) {
	var length = 45;
	if (_val.replace(/(^\s*)|(\s*$)/g, "").length > length) {// 大于length的位数就只取length位数的参数
		document.getElementById('userPwd_Id').value = _val.replace(
				/(^\s*)|(\s*$)/g, "").substring(0, length);

	} else {
		document.getElementById("pwdTipcImg").style.display = "none";
		document.getElementById('pwdTipc').style.display = "block";
		var count = 0;
		count = _val.replace(/(^\s*)|(\s*$)/g, "").length;
		document.getElementById("pwdTipc").innerHTML = "密码位数:" + count + "!";
	}
}
// common
function imgTipc(_imgId, src, alt, state) {
	document.getElementById(_imgId).style.display = state;
	document.getElementById(_imgId).src = src;
	document.getElementById(_imgId).alt = alt;
}

// 确认密码
function validateRPwd(_rpwd) {
	var pwd = document.getElementById('userPwd_Id').value;
	var rpwd = _rpwd.replace(/(^\s*)|(\s*$)/g, "");
	// 空值
	if (rpwd.length == 0) {
		document.getElementById('rpwdTipc').style.display = "block";
		document.getElementById("rpwdTipc").innerHTML = "*必填";
		document.getElementById("rpwdTipcImg").style.display = "none";
		isAllowReg=false;
		return false;
	}
	if (pwd != rpwd) {
		document.getElementById('rpwdTipc').style.display = "block";
		document.getElementById('rpwdTipc').innerHTML = "*请与密码一致!";
		document.getElementById('rpwdTipcImg').style.display = "none";
		isAllowReg=false;
		return false;
	} else {
		document.getElementById('rpwdTipc').style.display = "none";
		imgTipc("rpwdTipcImg", "images/accept.png", "确认密码输入正确!", "block");
		isAllowReg=true;
		return true;
	}
}
/**
 * 验证用户是否同意协议
 */
function agreeCKXEvent(_ckd) {
	if (_ckd) {// 同意,提交按钮可用
		document.getElementById('regSubmitBtn').removeAttribute("disabled");
	} else {// 提交按钮灰化
		document.getElementById('regSubmitBtn').disabled = true;

	}
}

// 异步对象回调函数
function HandleStateChange() {
	// 回掉函数
	if (xmlhttp.readyState == 4) {
		// 请求成功
		if (xmlhttp.status == 200) {
			var xml = xmlhttp.responseXML;
			// 获得根节点
			var topNod = xml.documentElement;
			// 类似这样去遍历XML的数据，然后给DOM赋值
			var area = xml.getElementsByTagName("area");
			var op = document.createElement("option");
			op.text = "---未知---";
			op.value = -1;
			document.getElementById("city_Id").options.add(op);
			// 循环添加select option 项
			for (var i = 0; i < area.length; i++) {
				var key = area[i].getElementsByTagName("key")[0].firstChild.data;
				var value = area[i].getElementsByTagName("value")[0].firstChild.data;
				var option = document.createElement("option");
				option.text = key;
				option.value = value;
				document.getElementById("city_Id").options.add(option);
				// document.getElementById("SmallClassName").options.add(new
				// Option(text,value));
			}

		}
	}
}

/**
 * 所在城市下拉框联动
 */
function cityLianMove(_val) {

	// 将城市下拉列表框先清空
	var targetCb = document.getElementById('city_Id');
	for (var i = targetCb.options.length; i >= 0; i--) {
		if (isIE) {
			document.getElementById("city_Id").options.remove(i);
		} else {
			document.getElementById("city_Id").remove(i);
		}
	}
	// 执行异步
	if (_val == -1) {
		var op = document.createElement("option");
		op.text = "---未知---";
		op.value = -1;
		targetCb.options.add(op);
	} else {
		createXMLHttpRequest();
		xmlhttp.open("get", "AresBPID.action?pId=" + _val);
		xmlhttp.onreadystatechange = HandleStateChange;
		xmlhttp.send(null);
	}
}
/*
 * 验证必填项
 */
function requireValidate(_val) {
	var array = _val.split(',');
	var isOk = true;
	for (var i = 0; i < array.length; i++) {
		var value = document.getElementById(array[i]).value.replace(
				/(^\s*)|(\s*$)/g, "");
		if (value.length == 0) {
			alert("信息输入不完整!请检查必填项");
			isOk = false;
			break;
		}
	}
	if (isOk) {
		// 验证密码是否一致
		var rpwd = document.getElementById('ruserPwd_Id').value;
		if (validateRPwd(rpwd)) {
			isOk = true;
		} else {
			alert("确认密码请与密码一致！");
			isOk = false;
		}
		if(!isAllowReg){
			alert('请检查必填项是否正确!');
			return false;
		}
	}
	return isOk;
}
/**
 * 验证用户登录
 */
function requireLogVal() {
	var name = document.getElementById('lgUNo').value.replace(/(^\s*)|(\s*$)/g,
			"");
	var pwd = document.getElementById('lgUPWD').value.replace(/(^\s*)|(\s*$)/g,
			"");
	// 姓名为空了
	if (name.length == 0) {
		alert('请输入用户名!');
		document.getElementById('lgUNo').focus();
		document.getElementById('lgUNo').select();
		return false;
	}
	if (pwd.length == 0) {
		alert('请输入登录密码!');
		document.getElementById('lgUPWD').focus();
		document.getElementById('lgUPWD').select();
		return false;
	}
	return true;
}
/**
 * 添加商品的回调函数
 */
function callBackJoinSC() {

	// 回掉函数
	if (xmlhttp.readyState == 4) {
		// 请求成功
		if (xmlhttp.status == 200) {
			var txt = xmlhttp.responseText;
			if (txt.replace(/(^\s*)|(\s*$)/g, "") == "true") {
				alert("成功将商品添加到购物车!");
			} else {
				alert("添加商品到购物车失败!");
			}

		}
	}
}

/**
 * 将商品添加到购物车
 */
function joinShopCart(proId) {

	var countobj = document.getElementById("itemCount");
	var count = '1';
	if (countobj) {
		count = countobj.value;
	}
	if (count.replace(/(^\s*)|(\s*$)/g, "").length == 0) {
		// alert("请输入所需商品数数量");
		// document.getElementById("itemCount").focus();
		// document.getElementById("itemCount").select();
		count = '1';
	} else {
		createXMLHttpRequest();
		xmlhttp.open("get", "ajaxJoinSCart.action?n=" + escape(new Date())
				+ "&proNo=" + proId + "&proCount=" + count);
		xmlhttp.onreadystatechange = callBackJoinSC;
		xmlhttp.send(null);
	}
}

/**
 * 编辑商品数量的回调函数
 */
function callBackModityPST(count,price) {
	// 回掉函数
	if (xmlhttp.readyState == 4) {
		// 请求成功
		if (xmlhttp.status == 200) {
			var txt = xmlhttp.responseText;
			if (txt.replace(/(^\s*)|(\s*$)/g, "") == "true") {
				if(!count){
					count=0;
				}
				document.getElementById('subtotal_id').innerHTML="￥"+(parseInt(count)*parseInt(price));

			} else {
				alert("商品数量编辑失败!");
			}
		}
	}
}
/**
 * 修改购物车中商品数量
 */
function modityProductQt(count, _value,price) {


	if(isNaN(count)){
		alert('请输入数字');
		document.getElementById('pdtcount_id').value='';
		count=0;
	}
	var url = "ajaxModitySCart.action?n=" + escape(new Date()) + "&proNo="
				+ _value + "&count=" + count;
		createXMLHttpRequest();
		xmlhttp.open("get", url);
		xmlhttp.onreadystatechange =function(){ callBackModityPST(count,price)};
		xmlhttp.send(null);

}

/**
 * 删除商品的回调函数
 */
function callBackRemovePST() {
	// 回掉函数
	if (xmlhttp.readyState == 4) {
		// 请求成功
		if (xmlhttp.status == 200) {
			var txt = xmlhttp.responseText;
			if (txt.replace(/(^\s*)|(\s*$)/g, "") == "true") {
				alert("商品数量删除成功!");
			} else {
				alert("商品数量删除失败!");
			}
		}
	}
}
/**
 * 删除指定购物车中商品
 */
function removeProduct() {

	// 获取被选中的checkbox
	var obj = document.getElementsByName('shopcart_chk_Name');
	var qiandao = '';
	for (var i = 0; i < obj.length; i++) {
		if (obj[i].checked == true) {
			qiandao = qiandao + obj[i].value + ',';
		}
	}
	if (qiandao.length == 0) {
		alert("请选择要删除的商品条目!");
		return;
	}
	qiandao = qiandao.substring(0, qiandao.length - 1);

	var url = "ajaxRemoveCItme.action?n=" + escape(new Date()) + "&proNo="
			+ qiandao;
	createXMLHttpRequest();
	xmlhttp.open("get", url);
	xmlhttp.onreadystatechange = callBackRemovePST;
	xmlhttp.send(null);

	location.reload();

}

// checkbox集合的全选即取消
function checkBoxAllOption(_value) {
	var obj = document.getElementsByName('shopcart_chk_Name');
	for (var i = 0; i < obj.length; i++) {
		obj[i].checked = _value;
	}
}

// 删除收货人信息
function deleteBCongnees() {
	// 组织数据
	var obj = document.getElementsByName('congneechk');
	var cid = document.getElementById("chkhiddencid").value;
	var bcId = '';
	var isdo = false;
	for (var i = 0; i < obj.length; i++) {
		if (obj[i].checked == true) {
			bcId = bcId + obj[i].value + ',';
			isdo = true;
		}
	}
	// 是否执行删除
	if (!isdo) {
		alert("请选择要删除的商品条目!");
		return;
	}
	// 执行删除
	window.location = 'deleteBCgn.action?cusId=' + cid + '&bcId=' + bcId;
}
// 保存订单
function saveBillSell() {

	var rdios = document.getElementsByName("cnradio");
	var rd;
	for (var i = 0; i < rdios.length; i++) {
		if (rdios[i].checked == true) {
			rd = rdios[i].value;
		}
	}
	document.getElementById('consignIdHidden').value = rd;
	document.getElementById('svbillform').submit();
}
// ---------------------------------------------------------------------------异步级联问题类型begin

// 异步对象回调函数
function ajaxLinkAgeQuesCateHandleStateChange(tid) {
	// 回掉函数
	if (xmlhttp.readyState == 4) {
		// 请求成功
		if (xmlhttp.status == 200) {
			var xmlt = xmlhttp.responseXML;
			// 获得根节点
			var topNod = xmlt.documentElement;
			// 类似这样去遍历XML的数据，然后给DOM赋值
			var area = xmlt.getElementsByTagName("BQuestionCategory");
			var op = document.createElement("option");
			op.text = "---未知---";
			op.value = -1;
			document.getElementById(tid).options.add(op);
			// 循环添加select option 项
			for (var i = 0; i < area.length; i++) {
				var key = area[i].getElementsByTagName("name")[0].firstChild.data;
				var value = area[i].getElementsByTagName("value")[0].firstChild.data;
				var option = document.createElement("option");
				option.text = key;
				option.value = value;
				document.getElementById(tid).options.add(option);
				// document.getElementById("SmallClassName").options.add(new
				// Option(text,value));
			}

		}
	}
}

/**
 * 所在城市下拉框联动 arg1 arg2 _val select选中的值
 */
function ajaxLinkAgeQuesCate(arg1, arg2, _val) {

	// 将城市下拉列表框先清空
	var targetarg1 = document.getElementById(arg1);
	var targetarg2 = document.getElementById(arg2);

	for (var i = targetarg1.options.length; i >= 0; i--) {
		try {
			targetarg1.options.remove(i);
		} catch (e) {
			targetarg1.remove(i);
		}
	}
	for (var i = targetarg2.options.length; i >= 0; i--) {
		try {
			targetarg2.options.remove(i);
		} catch (e) {
			targetarg2.remove(i);
		}
	}
	// 执行异步
	if (_val == -1) {
		var op = document.createElement("option");
		op.text = "---未知---";
		op.value = -1;
		targetarg1.options.add(op);
		targetarg2.options.add(op);
	} else {
		createXMLHttpRequest();
		xmlhttp.open("get", "ajaxGetQCAteData.action?qcateid=" + _val);
		xmlhttp.onreadystatechange = function() {
			ajaxLinkAgeQuesCateHandleStateChange(arg1);
		};
		xmlhttp.send(null);
	}
}
// ---------------------------------------------------------------------------异步级联问题类型end
// 验证悬赏分数
function validatePriz(arg1, arg2) {
	var t1 = document.getElementById(arg1).value;
	var t2 = document.getElementById(arg2).value;

	if (isNaN(t1))
		return false;
	if (isNaN(t2))
		return false;

	if (!t1) {
		t1 = 0;
	}// 无分数

	t1 = parseInt(t1);
	t2 = parseInt(t2);

	if (t1 > t2) {
		alert("对不起！你的积分不够支付此次提问悬赏!");
		document.getElementById(arg1).select();
		return false;
	} else {
		return true;
	}
}
// -----------------答案回复
function expandRep(divId) {
	// div object
	var divobj = document.getElementById('part_pl_id' + divId);
	var dis = divobj.style.display;
	// img object
	var imgobj = document.getElementById('img_part_pl_id' + divId);
	// 闭合 & 展开
	if (dis == "none") {
		imgobj.src = "images/img_expand.gif";
		divobj.style.display = "block";
	} else {
		imgobj.src = "images/img_expand_r.gif";
		divobj.style.display = "none";
	}
}

// 调节搜索项
function validateDatumSerch() {

	var cols = document.getElementsByName("columname");
	var param;
	for (var i = 0; i < cols.length; i++) {
		if (cols[i].checked) {
			param = cols[i].value;
			break;
		}
	}
	if (param=='datum') {
		document.getElementById('search_form_index').action = 'searcfix.action';
	}
	return true;
}
// lddate

function CalDays(year, month) {
	var days = 0;
	switch (month) {
		case 1 :
		case 3 :
		case 5 :
		case 7 :
		case 8 :
		case 10 :
		case 12 :
			days = 31;
			break;
		case 4 :
		case 6 :
		case 9 :
		case 11 :
			days = 30;
			break;
		case 2 :
			if (isLeapYear(year))
				days = 29;
			else
				days = 28;
			break;
	}
	return days;
//	var date = new Date(year, month, 0);
//	return date.getDate();
}

function isLeapYear(year) {
	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
		return true;
	else
		return false;
}
//日期联动验证闰年
function lddate() {
	// 获取参数对象
	var ryear = document.getElementById('reg_year_id');
	var rmonth = document.getElementById('reg_month_id');
	var rday = document.getElementById('reg_day_id');
	//
	var year=parseInt(ryear.value);
	var month=parseInt(rmonth.value);
	var days=CalDays(year,month);
	//清空day的select option	
	for (var i = rday.options.length; i >= 0; i--) {
		try {
			rday.options.remove(i);
		} catch (e) {
			rday.remove(i);
		}
	}
	for(var i=1;i<=days;i++){
		var option=document.createElement("option");
		option.text=i;
		option.value=i;
		document.getElementById('reg_day_id').options.add(option);
	}
}
//处理投票操作
function callBackProcessPoll(){

  
  // 回掉函数
	if (xmlhttp.readyState == 4) {
		// 请求成功
		if (xmlhttp.status == 200) {
			var txt = xmlhttp.responseText;
			if(txt!='error'){
 				document.getElementById('grantval').innerHTML=txt;
 				document.getElementById('grantansdiv_id').disable=true;
			}  
		}
	}
}
//执行最佳答案的投票操作
function ajaxdopoll(_ansid){
	//获取答案编号
	var url = "dopoll.action?proname=1&ansId="+_ansid;	
	createXMLHttpRequest();
	xmlhttp.open("get", url);
	xmlhttp.onreadystatechange = callBackProcessPoll;
	xmlhttp.send(null);
}
//订单确认的收货人折叠
function dispalyRecAct(_val){
	
	if(_val=='addconsign'){
	    document.getElementById('addsingmandiv_id').style.display='block';
	}else{
		document.getElementById('addsingmandiv_id').style.display='none';
	}
}



















