/*****************************************************************

	blueCart E-Commerce 2007 - (c) 2007 Bergan Blue, Australia
	THIS IS COMMERCIAL SOFTWARE. DO NOT COPY/USE/SELL.
	
	Filename			: cart-functions.js (JavaScript)
	File Version		: 1.00.00
	File Summary		: JavaScript Library to handle all cart related functions such as adding options
						  to the cart, updating the cart's contents and tying the cart functionality in with
						  the AJAX library.
	
	Developed by		: Jon Bergan <jbergan@berganblue.com.au>
	Creation Date		: 26 Sep 2007
	
	Modifications		: None
	
*****************************************************************/

// Required Function for Cart Mouseovers
function cartProductMouseover(cId, pId)
{
}

// Required Function for Cart Mouseovers
function cartProductMouseout(cId, pId)
{
}

function refreshCart()
{
	var ajaxId = "ajaxMainCart";
	
	if (document.getElementById(ajaxId))
	{
	    var queryString = "?command=viewCartOnly";
		updateAjaxPanel(ajaxId, bluecartPublicRoot+"cart.php" + queryString);
	}
}

function refreshMiniCart()
{
	var ajaxId = "ajaxMiniCart";
	
	if (document.getElementById(ajaxId))
	{
		var queryString = "?command=displayMiniCart";
		updateAjaxPanel(ajaxId, bluecartPublicRoot+"cart.php" + queryString);
	}
}

function addProductToCart(pId)
{
	var ajaxId = "ajaxCart"+pId;
	var ajaxLoaderId = "ajaxCartLoader"+pId;

	// Remove this to check the quantity field and/or options fields when implemented
	// At present all items have no options and when added their Qty defaults to 1 
	if (document.getElementById('productQty'+pId))
		var pQty = document.getElementById('productQty'+pId).value;
	else
		var pQty = 1;

    var queryString = "?command=addproduct&productId=" + pId + "&productQty=" + pQty;

	var optionCount = 0;
	var subOptionCount = 0;
	var arrayCount = 0;

	var groupId;
	var groupName;
	var optionId;
	var addToCart = 1;

	while (document.getElementById('pOption_'+pId+'_'+optionCount))
	{
		subOptionCount = 0;
		arrayCount = 0;
		addToCart = 0;
		
		groupId = document.getElementById('pOption_'+pId+'_'+optionCount).value;
		groupName = document.getElementById('pOptionName_'+pId+'_'+optionCount).value;
		
		while (document.getElementById('productOption_'+pId+'_'+groupId+'_'+subOptionCount))
		{
			optionId = document.getElementById('productOption_'+pId+'_'+groupId+'_'+subOptionCount).value;

			if (optionId == -1)
			{
				addToCart = 0;
			} else if (optionId == "")
			{
				addToCart = 0;
			} else {
				if (document.getElementById('productOption_'+pId+'_'+groupId+'_'+subOptionCount).checked)
				{
					addToCart = 1;
					queryString += '&options[' + groupId + '][' + arrayCount + ']=' + encodeURIComponent(optionId);
					arrayCount++;
				}

				if (document.getElementById('productOption_'+pId+'_'+groupId+'_'+subOptionCount).length > 0)
				{
					addToCart = 1;
					queryString += '&options[' + groupId + '][' + arrayCount + ']=' + encodeURIComponent(optionId);
					arrayCount++;
				}

				if (document.getElementById('productOption_'+pId+'_'+groupId+'_'+subOptionCount).value.length > 0 && document.getElementById('pOptionOptId_'+pId+'_'+groupId+'_'+subOptionCount))
				{
					addToCart = 1;
					optionId = document.getElementById('pOptionOptId_'+pId+'_'+groupId+'_'+subOptionCount).value;
					optionString = document.getElementById('productOption_'+pId+'_'+groupId+'_'+subOptionCount).value;
					queryString += '&options[' + groupId + '][' + arrayCount + ']=' + encodeURIComponent(optionId);
					queryString += '&optionsString[' + groupId + '][' + arrayCount + ']=' + encodeURIComponent(optionString);
					arrayCount++;
				}
			}

			subOptionCount++;
		}

		if (addToCart == 0)
		{
			alert("You must specify a "+groupName+" before you can add this product to your cart!");
			break;
		}

		optionCount++;
	}

	if (addToCart == 1)
		getContentCustom(ajaxId, ajaxLoaderId, "cart.php" + queryString, "Adding to Cart ...");
}

function ajaxUpdateCart()
{
	document.bcCart.submit();
}

function ajaxUpdateCartQty(cartId)
{
	var ajaxId = "ajaxMainCart";

	var newQty = document.getElementById('ajaxCartQty'+cartId).value;

	if (newQty == "")
		newQty = "0";
		
    var queryString = "?command=updateQty&id="+cartId+"&newQty="+newQty;
	updateAjaxPanel(ajaxId, bluecartPublicRoot+"cart.php" + queryString);

	refreshMiniCart();
}

function ajaxRemoveFromCart(cartId)
{
	var ajaxId = "ajaxMainCart";

    var queryString = "?command=removeCartId&id="+cartId;
	updateAjaxPanel(ajaxId, bluecartPublicRoot+"cart.php" + queryString);
}
