
var language = new Array(5);
var IsBuy = new Array();
var returnState = true;
var returnValue = 0;

language[0] = _language["shopping-text1"];
language[1] = _language["shopping-text2"];
language[2] = _language["shopping-text3"];
language[3] = _language["shopping-text4"];
language[4] = _language["shopping-text5"];
language[5] = _language["shopping-text6"];

/**
 * 检查购物车数量格式是否正确
 */
function _shopping(_form,_this,_ispay)
{
	var form = document.forms[_form];
	var totalcount = form.totalcount.value;
	
	this._ispay = (typeof(_ispay) != "undefined")?_ispay:1;

	form.action = "checkout.asp";
	form.target = "";

	if (totalcount == 0)
	{
		alert (language[0])
		return (false);
	}else{
		for (var i=1;i<=totalcount;i++)
		{
			var e = form.elements["count_" + i];
			var oe	= form.elements["o_count_" + i];

			if ((!isNumberString(e.value)) || (e.value == 0))
			{
				if (e.value == 0)
				{
					alert (language[2]);
				}else{
					alert (language[1]);
				}

				e.focus();
				returnState = false;
			}else{
				if (typeof(IsBuy[i]) == "undefined")
				{
					IsBuy[i] = oe.value;
				}

				oe.value = 0;
				doEventPrice("frmShopping",e,0);
			}
		}

		if (this._ispay == 0)
		{
			form.action = "checkout.asp?nostep=1";
			form.target = "_hidden";

			if (returnState)
			{
				form.submit();
			}
		}
		
		return (returnState);
	}
}



/**
 * 检查购物车所购买的商品是否还有库存
 * 重新与数据库做比对
 */
function doShoppingChecking(_form)
{
	var form = document.forms[_form];
	var count = 0;
	for (var i=0;i<form.elements.length;i++)
	{
		var e = form.elements[i];
		if (e.name.indexOf("product_") != -1)
		{
			count = count + 1;
		}
	}

	form.totalcount.value = count;

	for (var i=1;i<=count;i++)
	{
		var ce	= form.elements["count_" + i];
		var oe	= form.elements["o_count_" + i];

		if (typeof(IsBuy[i]) == "undefined")
		{
			IsBuy[i] = oe.value;
		}

		oe.value = 0;
		doEventPrice("frmShopping",ce,0);
	}
}

/**
 * 获取商品的价格及数量
 */
function doEventPrice(form,_this,_flag)
{
	this._flag = _flag?_flag:2;

	returnState = true;

	if (_this != null)
	{
		var arrname = _this.name.split("_");
		var obj =  new Array(4);

		var name	= arrname[0];
		var index	= arrname[1];

		form = document.forms[form];

		obj[0]	= form.elements["count_" + index];
		obj[1]	= form.elements["product_" + index];
		obj[2]	= form.elements["color_" + index];
		obj[3]	= form.elements["size_" + index];
		obj[4]	= form.elements["o_count_" + index];

		var count	= obj[0].value;

		if (count <= 0)
		{
			alert (language[2]);

			obj[0].value = 1;
			obj[0].focus();
			returnState = false;
		}else{
			if (!isNumberString(count))
			{
				alert (language[1]);
				obj[0].value = 1;
				obj[0].focus();
				returnState = false;
			}else{
				var product	= obj[1].value;
				var color	= obj[2].value;
				var size	= obj[3].value;
			
				if (obj[0].value > obj[4].value)
				{
					// <summary>
					// 获取当前会员所允许选购的商品数量
					// 该会员选择商品库存不允许超过商品最大库存，如
					// 商品A的最大库存为：10
					// 用户A最大可以选够商品，10个/件。
					// 用户B同样可以选够商品，10个/件。
					// 但只要有一方已经下单并确认订单。剩余的用户只能选择所剩余的库存数，此时可能会出现负数现象。
					// </summary>

					/**
					 * 通过XMLHTTP获取当前商品数量。
					 * @params 商品ID
					 * @params 颜色ID
					 * @params 规格ID
					 */
					var xmlhttp;
					var isIE = false;
					var isErr = false;
					var url = "_detail_size_color_stock.asp?productId="+product+"&size="+size+"&color="+color;

					/**
					 * 通过XMLHTTP获取当前商品数量。
					 * @params 商品ID
					 * @params 规格ID
					 * @params 颜色ID
					 */
					if (window.XMLHttpRequest)
					{
						xmlhttp = new XMLHttpRequest();
						url += "&ie=1";
						xmlhttp.open("GET",url,false)
						xmlhttp.send(null);
					}else if (window.ActiveXObject){
						isIE = true;
						xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
						url += "&ie=1";
						xmlhttp.open("GET",url,false)
						xmlhttp.send();
					}

					if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200))
					{
						returnValue = parseInt(xmlhttp.responseText) + parseInt(IsBuy[index]);
						isErr = false;

						if (obj[0].value > returnValue)
						{
							if (returnValue == 0)
							{
								alert (language[5]);
							}else{
								alert (language[3] + " " + returnValue);
							}

							obj[0].value = returnValue;
							obj[0].focus();
							returnState = false;
						}
					}else{
						isErr = true;
					}
					
					if (isErr)
					{
						alert (language[4]);
						returnState = false;
					}
				}
			}
		}
	}
	
	setTotalcount("frmShopping","totalcount",1);
}


/**
 * 设置总数
 * @params 表单
 * @parmas 统计总数对象控件
 * @params 商品个数
 **/
function setTotalcount(_form,_name,_count)
{
	var form  = document.forms[_form];
	var count = 0;
	var stock = 0;
	var total = 0;

	for (var i=0;i<form.elements.length;i++)
	{
		var e = form.elements[i];

		if (e.name.indexOf("product_") != -1)
		{
			var arrname = e.name.split("_");
			var name	= arrname[0];
			var index	= arrname[1];

			stock = form.elements["count_" + index].value;
			count = count + 1;

			var price = parseFloat(document.getElementById("current_" + index).innerHTML);
			var TotalPrice = (stock * parseFloat(document.getElementById("current_" + index).innerHTML));
			
			document.getElementById("current_" + index).innerHTML = price.toFixed(2);
			document.getElementById("total_" + index).innerHTML = TotalPrice.toFixed(2);
			total = total + TotalPrice;
		}
	}


    
     
	document.forms[_form].elements[_name].value = count;

	setInnerHTML("subtotal",total.toFixed(2));
	setInnerHTML("subtotal2",total.toFixed(2));
}

function isNumberString(_value)
{
	var re=/^[0-9]+$/i;

	if(re.test(_value))
	{
		return true;
	}else{
		return false;
	}
}

function AppendZero(blValue)
{
	if (typeof(blValue) == "undefined")
	{
		blValue = "00";
	}else{
		if (blValue.length == 1)
		{
			blValue = blValue + "0";
		}else{
			blValue = blValue;
		}
	}

	return (blValue);
}

/**
 * 设置HTML信息元素
 * @params HTML对象
 * @params HTML输出信息
 **/
function setInnerHTML(Key,Value)
{
	document.getElementById(Key).innerHTML = Value;

	document.forms["frmShopping"].elements["subtotalmoney"].value = Value;
}