//	ShoppingLogic.js
//	This logic is much simpler than CartLogic.js.
//	This paradigm deals with quantities only.

//alert('ShoppingLogic.js');

//	Cookie manipulation.
//	Could be in its own Javascript file.

function setCookie(key, value) {
	document.cookie = key + "=" + value + '; path=/; domain=compassgames.com';
}

function deleteCookie(key) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() - 1);
	document.cookie = key + '=0; expires=' + exdate.toGMTString() + '; path=/; domain=compassgames.com';
}


//	This was a simple shopping cart.  Now it contains shipping information and
//	discounts and special parts etc.

var shopping_cart = new Object();

function loadOrderInfo() {
	if (document.cookie.length == 0)
		return;

//	alert('loading');
	cookies = document.cookie.split(';');
	for (var i = 0; i < cookies.length; i++) {
		kv = cookies[i].split('=');
		key = kv[0].replace(/^ /, '');
//		alert("'" + key + "'," + kv[1]);

		if ((key != 'shipping') && (key.match(/^sku:/) != null))
			shopping_cart[key.substr(4)] = parseInt(kv[1]);
	}
}


//	Cart manipulation.

function isCartEmpty() {
	for (var sku in shopping_cart)
		return false;
	return true;
}

function getCartItemList() {
	list = new Array();
	for (var sku in shopping_cart)
		list.push(sku);
	return list.sort();
}

function emptyCart() {
	for (var sku in shopping_cart) {
		delete shopping_cart[sku];
		deleteCookie('sku:' + sku);
	}
}

function getItemQty(sku) {
	return (shopping_cart[sku] == undefined) ? 0 : shopping_cart[sku];
}

function setItemQty(sku, qty) {
	if (qty < 0)
		return 0;

	if (qty == 0) {
		delete shopping_cart[sku];
		deleteCookie('sku:' + sku);
		return 0;
	}

	shopping_cart[sku] = qty;
	setCookie('sku:' + sku, qty);
	return shopping_cart[sku];
}

function incItemQty(sku) {
	if (shopping_cart[sku] == undefined)
		shopping_cart[sku] = 1;
	else
		shopping_cart[sku]++;
//alert('Cart now has ' + shopping_cart[sku] + ' of Item SKU' + sku);
	setCookie('sku:' + sku, shopping_cart[sku]);
	return shopping_cart[sku];
}

function decItemQty(sku) {
	if (shopping_cart[sku] == undefined) {
		alert('None in cart: "' + sku + '"');
		return 0;
	}

	shopping_cart[sku]--;
//alert('Cart now has ' + shopping_cart[sku] + ' of Item SKU' + sku);
	if (shopping_cart[sku] == 0) {
		delete shopping_cart[sku];
		deleteCookie('sku:' + sku);
		return 0;
	}

	setCookie('sku:' + sku, shopping_cart[sku]);
	return shopping_cart[sku];
}


//	Page -> OrderInfo interface logic.

function button_inc(sku) {
	var qty = incItemQty(sku);
	if (qty == 1) {
		document.getElementById('dec_' + sku).disabled = false;
		document.getElementById('qty_' + sku).style.visibility = 'visible';
	}
	document.getElementById('qty_' + sku).innerHTML = 'Qty: ' + qty;
}

function button_dec(sku) {
	var qty = decItemQty(sku);
	if (qty == 0) {
		document.getElementById('dec_' + sku).disabled = true;
		document.getElementById('qty_' + sku).innerHTML = '';
		document.getElementById('qty_' + sku).style.visibility = 'hidden';
	}
	else
		document.getElementById('qty_' + sku).innerHTML = 'Qty: ' + qty;
}

//alert('Done: ShoppingLogic.js');
