/*
 * When user clicked "confirm" button to check out
 */
function confirmButtonClicked()
{
	var frm = $('myForm');
	frm.method = "post";
	frm.action = "shoppingCartFinal.php";
	frm.target = "_self";
	frm.submit();
}

/*
 * When user clicked "Remove" button to remove the item
 */
function clearItemAmountByItemId(item_id)
{
	$('amount_' + item_id).value = 0;
	$('myForm').submit();
}

/*
 * When user entered quantity to order
 */
function amountEntered(item_id, minAmount, actualPrice)
{
	var newAmount = $('amount_' + item_id).value;
	if(isValidAmount(newAmount, minAmount))
	{
		var newSubTotal = newAmount * actualPrice;
		$('subTotal_' + item_id).style.visibility = 'hidden';
		$('subTotal_' + item_id).innerHTML = '$AU&nbsp;' + newSubTotal;
	}
	$('myForm').submit();
}

/*
 * When user entered rep price off rate
 */
function rateEntered(item_id, wholesalePrice)
{
	var newPriceOffRate = $('repPriceOffRate_' + item_id).value;
	if(isValidRate(newPriceOffRate))
	{
		// Reflect to price
		var newPriceCalculated = (Math.round(wholesalePrice * 100 * (1 - newPriceOffRate/100)))/100;
		$('repPrice_' + item_id).value = newPriceCalculated;
	}
	else
	{
		// Recalculate rate from price
		var originalRateCalculated = Math.round((wholesalePrice - $('repPrice_' + item_id).value)/wholesalePrice*100);
		$('repPriceOffRate_' + item_id).value = originalRateCalculated;
	}
}

/*
 * When user entered rep price directly
 */
function priceEntered(item_id, wholesalePrice)
{
	var newPrice = $('repPrice_' + item_id).value;
	if(isValidPrice(newPrice))
	{
		// Make newPrice second decimal value
		newPrice = ceilToSecondDecimal(newPrice);
		
		// Reflect to rate and price
		var newRateCalculated = (wholesalePrice - newPrice)/wholesalePrice*100;
		$('repPriceOffRate_' + item_id).value = newRateCalculated;
		$('repPrice_' + item_id).value = newPrice;
	}
	else
	{
		// Recalculate price from rate
		var originalPriceCalculated = ceilToSecondDecimal(wholesalePrice * (1 - $('repPriceOffRate_' + item_id).value/100));
		$('repPrice_' + item_id).value = originalPriceCalculated;
	}
}

function isValidAmount(quantityInput, minimunQuantity)
{
	if(!isNaN(quantityInput))
	{
		if((minimunQuantity <= quantityInput))
		{
			return true;
		}
	}
	return false;
}

function isValidRate(rateInput)
{
	if(!isNaN(rateInput))
	{
		if((0 <= rateInput) && (rateInput <= 100))
		{
			return true;
		}
	}
	return false;
}

function isValidPrice(priceInput)
{
	if(!isNaN(priceInput))
	{
		return true;
	}
	return false;
}

function ceilToSecondDecimal(myNumber)
{
	return (Math.ceil(myNumber * 100))/100;
}


