var CART_LINK_SHOW = "<a class=\"cartLink\" href=\"javascript:hideShowCart();\">show<img src=\"img/icon/show.gif\" border=\"0\" align=\"absmiddle\"/></a>";
var CART_LINK_HIDE = "<a class=\"cartLink\" href=\"javascript:hideShowCart();\">hide<img src=\"img/icon/hide.gif\" border=\"0\" align=\"absmiddle\"/></a>";
var CART_LINK_CHECKOUT = "<a class=\"cartLink\" href=\"store/checkoutForm.php\">checkout</a>";
var CART_TACK_ON = "&nbsp;";
var CART_TACK_OFF = "<a class=\"cartLink\" href=\"javascript:toggleTack()\">keep open</a>";
var CART_HIDE = "hide";
var CART_SHOW = "show";
var CART_ROLLUP_TIME = 5000;
var CART_ROLLUP_STEP = 25;

var cartObj = false;


function createCart() {
	this.items = (createCart.arguments.length > 0)? createCart.arguments : new Array();
	this.contentObj = getObj("cartContentLayer");
	this.controlObj = getObj("cartControlLayer");
	this.divideObj = getObj("cartDivideImg");
	this.summaryObj = getObj("cartSummaryLayer");
	this.isMoving = false;
	this.cartTimer = false;
	this.cartRollTimer = false;
	this.cartHeight = 0;
	this.cartTop = 0;
	this.tackOn = false;
	this.inCheckOut = false;
}
function createCartItem(productid,quantity,description,amount) {
	this.productid = productid;
	this.quantity = quantity;
	this.description = description;
	this.amount = new Number(amount);
}

function refreshCart() {
	clearTimeout(cartObj.cartTimer);
	if (cartObj.inCheckOut) {
		document.location.reload();
	} else if (cartObj.contentObj.style.visibility == "hidden") {
		hideShowCart();
	} else {
		writeCartContent();	
		cartObj.controlObj.innerHTML = CART_LINK_HIDE;
		cartObj.contentObj.style.top = "0px";
		cartObj.contentObj.style.visibility = "visible";
	}	
}
function closeCart() {
	toggleTack(true)
	clearTimeout(cartObj.cartRollTimer);
	cartObj.controlObj.innerHTML = CART_LINK_SHOW;
	cartObj.contentObj.style.visibility = "hidden";
	clearTimeout(cartObj.cartTimer);
	cartObj.divideObj.src = "img/navigation/divide.gif";
}

function editItems() {
	clearTimeout(cartObj.cartRollTimer);
	cartObj.tackOn = true;
	if (cartObj.contentObj.style.visibility == "hidden")
		hideShowCart();
}

function hideShowCart(control) {
	if (cartObj.contentObj.style.visibility == "hidden" && control != CART_HIDE) {

		writeCartContent();
		cartObj.controlObj.innerHTML = CART_LINK_HIDE;
		cartObj.divideObj.src = "img/navigation/divideSelRightCart.gif";

		if (cartObj.isMoving) {

			cartObj.contentObj.style.top = "0px";
			cartObj.contentObj.style.visibility = "visible";
			clearTimeout(cartObj.cartTimer);

		} else {

			cartObj.cartHeight = cartObj.contentObj.offsetHeight;
			cartObj.cartTop = cartObj.cartHeight;
			cartObj.isMoving = true;
			openCart();
		}
		if (!cartObj.tackOn)
			cartObj.cartRollTimer = setTimeout("hideShowCart()",CART_ROLLUP_TIME);

	} else {
		toggleTack(true);
		cartObj.controlObj.innerHTML = CART_LINK_SHOW;
		clearTimeout(cartObj.cartRollTimer);
		if (cartObj.isMoving) {

			cartObj.contentObj.style.visibility = "hidden";
			clearTimeout(cartObj.cartTimer);
			cartObj.divideObj.src = "img/navigation/divide.gif";

		} else {

			cartObj.cartHeight = cartObj.contentObj.offsetHeight;
			cartObj.cartTop = 0;
			cartObj.isMoving = true;
			closeCart();

		}
	}
}

function openCart() {
	if (cartObj.cartTop > 0)
		cartObj.cartTimer = setTimeout("moveCartDown()",CART_ROLLUP_STEP);
	else
		cartObj.isMoving = false;
}

function closeCart() {
	if (cartObj.cartTop < cartObj.cartHeight) {
		cartObj.cartTimer = setTimeout("moveCartUp()",CART_ROLLUP_STEP);
	} else {
		cartObj.contentObj.style.visibility = "hidden";
		cartObj.divideObj.src = "img/navigation/divide.gif";
		cartObj.isMoving = false;
	}
}

function toggleTack(untack) {
	clearTimeout(cartObj.cartRollTimer);
	cartObj.tackOn = (untack)? false : !cartObj.tackOn;
	if (getObj("cartTackLayer"))
		getObj("cartTackLayer").innerHTML = (cartObj.tackOn)? CART_TACK_ON : CART_TACK_OFF;
	if (!cartObj.tackOn)
		cartObj.cartRollTimer = setTimeout("hideShowCart()",CART_ROLLUP_TIME);	
}

function moveCartDown() {
	cartObj.cartTop = cartObj.cartTop - 5;
	if (cartObj.cartTop < 0)
		cartObj.cartTop = 0;
	cartObj.contentObj.style.top = "-" + cartObj.cartTop + "px";
	cartObj.contentObj.style.visibility = "visible";
	openCart();
}

function moveCartUp() {
	cartObj.cartTop = cartObj.cartTop + 5;
	if (cartObj.cartTop > cartObj.cartHeight)
		cartObj.cartTop = cartObj.cartHeight;
	cartObj.contentObj.style.top = "-" + cartObj.cartTop + "px";
	cartObj.contentObj.style.visibility = "visible";
	closeCart();
}

function writeCartSummary() {
	totalItems = 0;
	totalAmount = 0;
	for (i=0;i<cartObj.items.length;i++) {
		totalItems += cartObj.items[i].quantity;
		totalAmount += cartObj.items[i].amount;
	}
	itemStr = (totalItems == 1)? " item, $" : " items, $";
	cartObj.summaryObj = getObj("cartSummaryLayer");
	cartObj.summaryObj.className = (isIE())? "cartContentIE" : "cartContentOther";
	cartStr = (totalItems == 0)? "&nbsp;No items in cart" : totalItems + itemStr + totalAmount.toFixed(2) + " total";
	if (!cartObj.inCheckOut && totalItems > 0)
		cartStr += " &nbsp;" + CART_LINK_CHECKOUT;	
	cartObj.summaryObj.innerHTML = cartStr;
	if (totalItems > 0) {
		cartObj.controlObj.innerHTML = CART_LINK_SHOW;
	} else {
		cartObj.controlObj.innerHTML = "";
	}
}

function writeCartContent() {
	output = "<div id=\"cartTackLayer\" align=\"right\">";
	output += (cartObj.tackOn)? CART_TACK_ON :CART_TACK_OFF;
	output += "</div><table cellpadding=\"1\" cellspacing=\"0\" width=\"100%\">";
	for (i=0;i<cartObj.items.length;i++) {
		output += "<tr>";
		output += "<td nowrap class=\"cartText\"><input name=\"quantity("+i+")\" class=\"cartInputBox\" value=\""+cartObj.items[i].quantity+"\">";
		output += "&nbsp;<a href=\"javascript:removeCartItem("+i+");\" ><img src=\"img/icon/delete.png\" alt=\"remove item\" border=\"0\" align=\"middle\"/></a></td>";
		output += "<td class=\"cartText\" style=\"padding:0px 4px\">"+cartObj.items[i].description+"</td>";
		output += "<td nowrap class=\"cartText\" align=\"right\"><b>$"+cartObj.items[i].amount.toFixed(2)+"</b></td>";
		output += "</tr>";
	}
	output += "<tr><td colspan=3><img src=\"img/clear.gif\" width=\"1\" height=\"10\"/><br/>";
	output += "<table cellpadding=\"1\" cellspacing=\"0\" width=\"100%\"><tr>";
	output += "<td><input type=\"image\" src=\"img/button/changeQty.gif\" alt=\"Change Quantity\" /></td>";
	if (!cartObj.inCheckOut)
		output += "<td align=\"right\"><a href=\"store/checkoutForm.php\"><img src=\"img/button/checkout.gif\" border=\"0\" alt=\"Check Out\" /></a></td>";
	output += "</tr></table>";
	output += "</td></tr></table>";
	cartObj.contentObj.innerHTML = output;
}

function addCartItem(productId) {
	document.cartForm.product_id.value = productId;
	document.cartForm.submit();
}

function removeCartItem(index) {
	getObj("cartFrame").src = "store/Controller.php?action=cart&item_action=removeItem&index="+ index//;cartObj.items[index].productid;
}
