/**********************************************************************
 * FUNCTION	: 将指定商品的 value 追加到 Cookie 文件的最后位置
 * TODO		: 
 * AUTHOR	: David Dai
 * DATE		: 2008-09-19
 * PARAM	: [value] - 关键字的值 - [NOT NULL]
 * FRAME	: 单品格式：单品标志|商品编号|商品尺码|商品件数
 * 			  礼包格式：礼包标志|礼包编号|商品编号|商品尺码|商品件数|商品编号|商品尺码|商品件数|...
**********************************************************************/
function addProduct2Cart(value) {
	var key = "productId_";
	var path = "/";
	var domain = "";
	var secure = "";
	var expireDays = 15;
	
	var index = 1;
	while(1) {
		if (null == getCookieValueByKey(key + index)) {
			break;
		}
		index += 1;
	}
	key = key + index;
	value = value + "|" + key;
	//alert(value);
	setCookieValueByKey(key, value, expireDays, path, domain, secure);
}

/**********************************************************************
 * FUNCTION	: 将指定的 key & value 写入 Cookie 文件
 * TODO		: 
 * AUTHOR	: David Dai
 * DATE		: 2008-09-11
 * PARAM	: [key] - 关键字 - [NOT NULL]
 * PARAM	: [value] - 关键字的值 - [NOT NULL]
 * PARAM	: [expireDays] - 有效期天数 - [NOT NULL]
 * PARAM	: [path] - 有效使用的系统路径 - [NULL, DEFAULT '/']
 * PARAM	: [domain] - 系统域名 - [NULL]
 * PARAM	: [secure] - [NULL]
 * Cookie	: 单品格式：单品标志|商品编号|商品尺码|商品件数
 * 			  礼包格式：礼包标志|礼包编号|商品编号|商品尺码|商品件数|...
**********************************************************************/
function setCookieValueByKey(key, value, expireDays, path, domain, secure) {
	var today = new Date();
	var expireDay = new Date();
	expireDay.setTime(today.getTime() + (expireDays * 24 * 60 * 60 * 1000));
	
	var cookieStr = key + "=" + value + "; path=" + path + "; expires=" + expireDay.toGMTString();
	document.cookie = cookieStr;
}

/**********************************************************************
 * FUNCTION	: delCookieValueByKey
 * TODO		: 将指定 key & value 从 Cookie 文件中清除
 * AUTHOR	: David Dai
 * DATE		: 2008-09-11
 * PARAM	: [key] - 关键字 - [NOT NULL]
**********************************************************************/
function delCookieValueByKey(key) {
	var value = "";
	var path = "/";
	var domain = "";
	var secure = "";
	var expireDays = -1;
	setCookieValueByKey(key, value, expireDays, path, domain, secure); 
}

/**********************************************************************
 * FUNCTION	: clearAllCookieValue
 * TODO		: 清空 Cookie 文件中的所有信息
 * AUTHOR	: David Dai
 * DATE		: 2008-09-11
 * PARAM	: [key] - 关键字 - [NOT NULL]
**********************************************************************/
function clearAllCookieValue() {
	var key = "productId_";
	var value = "";
	var path = "/";
	var domain = "";
	var secure = "";
	var expireDays = -1;
	
	var index = 1;
	while(true) {
		value = getCookieValueByKey(key + index);
		if (null == value) {
			break;
		}
		delCookieValueByKey(key + index);
		index += 1;
	}
}

/**********************************************************************
 * FUNCTION	: updateCookieValueByKey
 * TODO		: 将指定 key & value 从 Cookie 文件中清除
 * AUTHOR	: David Dai
 * DATE		: 2008-09-11
 * PARAM	: [key] - 关键字 - [NOT NULL]
 * PARAM	: [value] - 关键字的值 - [NOT NULL]
 * PARAM	: [expireDays] - 有效期天数 - [NOT NULL]
 * PARAM	: [path] - 有效使用的系统路径 - [NOT NULL, DEFAULT '/']
 * PARAM	: [domain] - 系统域名 - [NULL]
 * PARAM	: [secure] - [NULL]
**********************************************************************/
function updateCookieValueByKey(key, value) {
	var path = "/";
	var domain = "";
	var secure = "";
	var expireDays = 15;
	
	setCookieValueByKey(key, value, expireDays, path, domain, secure);
}

/**********************************************************************
 * FUNCTION	: 从 Cookie 文件中获得指定 key 对应的 value
 * TODO		: 如果 key 为空或找到指定 key，返回 null，否则返回对应的 value
 * AUTHOR	: David Dai
 * DATE		: 2008-09-11
 * PARAM	: [key] - 关键字 - [NOT NULL]
**********************************************************************/
function getCookieValueByKey(key) {
	var sertch_str = key + "=";
	var sertch_str_len = sertch_str.length;
	var cookie_len = document.cookie.length;
	
	// key 不得为空
	if (null == key) return null;
	
	var i = 0;
	while (i < cookie_len) {
		var value_start_index = i + sertch_str_len;
		if (document.cookie.substring(i, value_start_index) == sertch_str) {
			var value_end_index = document.cookie.indexOf (";", value_start_index);
			if (-1 == value_end_index) {
				value_end_index = document.cookie.length;
			}
			return unescape(document.cookie.substring(value_start_index, value_end_index));
		}
		
		// 侦测是否还有下一个键值对
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) {
			break;
		}
	}
	
	return null;
}