﻿//设置Cookie
function setCookie(key, value, expires) {
    document.cookie = key + "=" + value + ";expires=" + expires.toGMTString();
}
//获取Cookie
function getCookie(key) {
    var s = key + "=";
    var begin = document.cookie.indexOf(s);
    if (begin != -1) {
        begin += s.length;
        end = document.cookie.indexOf(";", begin);
        if (end == -1) end = document.cookie.length;
        return document.cookie.substring(begin, end);
    }
}
//删除Cookie
function delCookie(key) {
    var today = new Date();
    document.cookie = key + "=;expires=" + today.toGMTString();
}
	//添加到购物车
	function addToCart(id,name,price,quantity)
	{
		var mDate=getNowDate();
		var p=new Product(id,name,price,quantity,mDate);
		ConvertFromCookie();
		if (cookProducts.queryCookieCart(p.id)) {
		    cookProducts.queryCookieCart(p.id).quantity++;
		    if (cookProducts.queryCookieCart(p.id).quantity > 100) {
		        cookProducts.queryCookieCart(p.id).quantity--;
		    }
		    alert("该产品在购物车中的数量为" + cookProducts.queryCookieCart(p.id).quantity);  
		}
		else
		{
		    cookProducts.AddCookieCart(p);
		    alert("已添加到购物车!");
		}
	}
	//获取当前时间
	function getNowDate()
	{
		var day=new Date();
		var y=day.getFullYear();
		var m=day.getMonth()+1;
		var d=day.getDate();
		var curentDate="";
		curentDate+=y+"-";
		if(m>10)
		{
			curentDate+=m+"-";
		}
		else
		{
			curentDate+="0"+m+"-";
		}
		if(d>10)
		{
			curentDate+=d;
		}
		else
		{
			curentDate+="0"+d;
		}
		return curentDate;
	}
	//-------------------产品构造为对象
	Product.prototype.toCookieString=function()
	{
		var str="";
		str+=this.id+"|";
		str+=this.name+"|";
		str+=this.price+"|";
		str+=this.quantity+"|";
		str+=this.ptime;
		return str;
	}
	function Product(id,name,price,quantity,ptime)
	{
		this.id= id;
		this.name= escape(name);
		this.price=price;
		this.quantity=quantity;
		this.ptime=ptime;
	}
	//--------------------------------
	//获取参品参数，并添加到购物车
	function getProductParam()
	{
		var pArr=this.parentNode.getElementsByTagName("p");
		if(pArr.length==5)
		{
			addProductToCookie(pArr[0].firstChild.nodeValue, pArr[1].firstChild.nodeValue,pArr[2].firstChild.nodeValue,pArr[3].firstChild.nodeValue,pArr[4].firstChild.nodeValue);
		}
		
	}
	//从Cookie中清除购物车参数,主要清除产品记数与产品具体项
	function emptyCartFromCookie()
	{
		delCookie("proParams");
	}
	//产义存放cookie产品的对象与对象数组
	var cookProducts=new Array();
	Array.prototype.queryCookieCart=function(id)
	{
		for(var i=0;i<this.length;i++){
			if(this[i].id==id){
				return this[i];
			}		
		}
	}
	Array.prototype.AddCookieCart=function(obj)
	{
		this[this.length]=obj;
	}
	//从cookie中删除指定产品
	Array.prototype.delProductFromCookie=function(id)
	{
		for(var i=0;i<this.length;i++){
			if(this[i].id==id){
				if(i<0)
					return this;
				else{	
					return this.slice(0,i).concat(this.slice(i+1,this.length));
				}
			}
		}
	}
	Array.prototype.updateCookie=function(id,quantity)
	{
		ConvertFromCookie();
		var p=new Product();
		p=cookProducts.queryCookieCart(id);
		p.quantity=quantity;
		var str=cookProducts.writeToCookie();
	}
	Array.prototype.writeToCookie = function() {
	    var len = this.length;
	    var str = "";
	    for (var i = 0; i < len; i++) {
	        if (i != len - 1) {
	            str += this[i].toCookieString() + "^";
	        }
	        else {
	            str += this[i].toCookieString();
	        }
	    }
	    var today1 = new Date();
	    var pery1 = 1024 * 60 * 60 * 24 * 30 * 12;
	    var expireDate1 = new Date();
	    expireDate1.setTime(today1.getTime() + pery1);
	    var cookParams = getCookie("proParams");
	    setCookie("proParams", str, expireDate1);
	    return str;
	}
	//将cookie中的产品转为对象
	function ConvertFromCookie()
	{
		cookProducts=new Array();
		var str=getCookie("proParams");
		if(str)
		{
			var first=str.split("^");
			for(var i=0;i<first.length;i++)
			{
				var last=first[i].split("|");
				var p=new Product(last[0],unescape(last[1]),last[2],last[3],last[4]);
				cookProducts[cookProducts.length]=p;
			}
		}
} 
function addEvent(obj, evt, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(evt, fn, false);
    }
    else if (obj.attachEvent) {
        obj.attachEvent('on' + evt, fn);
    }
}
function pageInit() {
    ConvertFromCookie();
    var l = cookProducts.length;
    return l;
}
function hasClass(name, type) {
    var r = [];
    var re = new RegExp("(^|\\s)" + name + "(\\s|$)");
    var e = document.getElementsByTagName(type || "*");
    for (var i = 0; i < e.length; i++) {
        if (re.test(e[i].className)) {
            r.push(e[i]);
        }
    }
    return r;
}
function isInteger(num)
{
    return /^\+?[1-9][0-9]*$/.test(num);
}
function createCookieTr(product) {
    var p = new Product();
    p = product;
    var conObj = document.getElementById("productCon");
    var tpl = document.getElementById("templatetr");
    var target = tpl.cloneNode(true);
    target.className = 'product';
    target.style.display = '';
    var pidObj = target.getElementsByTagName("td")[0].getElementsByTagName("input")[0];
    var nameObj = target.getElementsByTagName("td")[1].getElementsByTagName("span")[0];
    var priceObj = target.getElementsByTagName("td")[2].getElementsByTagName("span")[0];
    var timeObj = target.getElementsByTagName("td")[3].getElementsByTagName("span")[0];
    var quantityObj = target.getElementsByTagName("td")[4].getElementsByTagName("input")[0];
    pidObj.value = p.id;
    nameObj.innerHTML =unescape(p.name);
    //priceObj.innerHTML = p.price;
    timeObj.innerHTML = p.ptime;
    quantityObj.value = p.quantity;
    conObj.insertBefore(target, tpl);
    var delObj = target.getElementsByTagName("td")[0].getElementsByTagName("a")[0];
    //删除
    delObj.onclick = function() {
        ConvertFromCookie();
        cookProducts = cookProducts.delProductFromCookie(p.id);
        cookProducts.writeToCookie();
        ConvertFromCookie();
        var countObj = document.getElementById("countCart");
        if (countObj)
            countObj.innerHTML = pageInit();
        this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
        document.getElementById("updateCookie").onclick();
        validateNumber();
        return false;
    }
}
function validateNumber() {
    ConvertFromCookie();
    var l=0;
    l = cookProducts.length;
    if (l == 0) {
        var uptObj = document.getElementById("update_operation");
        var conObj = document.getElementById("payout_operation");
        if (uptObj)
            uptObj.parentNode.removeChild(uptObj);
        if (conObj)
            conObj.parentNode.removeChild(conObj);
        var newTr = document.createElement("tr");
        var newTd = document.createElement("td");
        newTd.setAttribute("colspan", "5");
        newTd.setAttribute("style", "text-align:center;font-weight:normal;");
        newTd.innerHTML = '购物车中暂时没有产品!';
        newTr.appendChild(newTd);
        document.getElementById("productCon").appendChild(newTr);
    }
    
}
function createCookieTr1(product) {
    var p = new Product();
    p = product;
    var conObj = document.getElementById("productCon");
    var tpl = document.getElementById("templatetr");
    var target = tpl.cloneNode(true);
    target.className = 'product';
    target.style.display = '';
    var nameObj = target.getElementsByTagName("td")[0].getElementsByTagName("span")[0];
   // var priceObj = target.getElementsByTagName("td")[1].getElementsByTagName("span")[0];
    var quantityObj = target.getElementsByTagName("td")[2].getElementsByTagName("span")[0];
    nameObj.innerHTML =unescape( p.name);
    //priceObj.innerHTML = p.price;
    quantityObj.innerHTML = p.quantity;
    conObj.insertBefore(target, tpl);
}
