function TogglePlaceOrderButtonState() 
{ 

	if (document.getElementById("place_order_button").disabled == true)
	{
		document.getElementById("place_order_button").disabled = false;
	}
	else
	{
		document.getElementById("place_order_button").disabled = true;
	}
	
}
//----------------------------------------------------------------------------------------------------------------------------
function ValidateMultiplePriceCodeEntry()
{

	if (document.getElementById("multiple_price_code_textbox").value == '')
	{
		alert('The code entry textbox is empty.');
	}
	else
	{
		submit();
	}
	
}
//----------------------------------------------------------------------------------------------------------------------------
function ValidateOrderDetails()
{

		var bSubmitForm;  
		bSubmitForm = true; 

		if (document.getElementById('your_name_textbox').value == '') 
		{
			alert('Your name?'); 
			document.getElementById('your_name_textbox').focus(); 
			bSubmitForm = false;
		} 
		
		
		if (document.getElementById('email_textbox').value == '') 
		{
			alert('Your email address?'); 
			document.getElementById('email_textbox').focus(); 
			bSubmitForm = false;
		} 
		
		if (document.getElementById('phone_textbox').value == '') 
		{
			alert('Your phone number?'); 
			document.getElementById('phone_textbox').focus(); 
			bSubmitForm = false;
		} 
		
		if (document.getElementById('street_textbox').value == '') 
		{
			alert('Your street?'); 
			document.getElementById('street_textbox').focus(); 
			bSubmitForm = false;
		} 

		
		if (document.getElementById('suburb_textbox').value == '') 
		{
			alert('Your suburb?'); 
			document.getElementById('suburb_textbox').focus(); 
			bSubmitForm = false;
		} 
		
		if (document.getElementById('postcode_textbox').value == '') 
		{
			alert('Your postcode?'); 
			document.getElementById('postcode_textbox').focus(); 
			bSubmitForm = false;
		} 

		if (document.getElementById('state_textbox').value == '') 
		{
			alert('Your state/territory?');
			document.getElementById('state_textbox').focus(); 
			bSubmitForm = false;
		} 
				
				
		if (bSubmitForm)
		{
			document.getElementById('order_form').submit();
		} 
	
}
//----------------------------------------------------------------------------------------------------------------------------
function NoClickAllowedOnTotals()
{
	document.getElementById('txt_no_click_allowed_on_totals').focus();
}
//----------------------------------------------------------------------------------------------------------------------------
function NoClickAllowed()
{
	document.getElementById('txt_no_click_allowed').focus();
}
//----------------------------------------------------------------------------------------------------------------------------
function AddDeliveryCost()
{
	//save the previous delivery cost because it needs to be deducted from the total before the new total is added in.
	var fPreviousDeliveryCost = document.getElementById('control_delivery_cost').value;
	
	GetDeliveryCost(document.getElementById('delivery_cost_drop_list').value); 	
	
	var fCurrentTotal = document.getElementById('control_total').value;
	var fNewDeliveryCost = document.getElementById('control_delivery_cost').value;
	
	//strip away the $ sign
	fCurrentTotal = parseFloat(fCurrentTotal.replace('$', ''));
	fNewDeliveryCost = parseFloat(fNewDeliveryCost.replace('$', ''));
	fPreviousDeliveryCost = parseFloat(fPreviousDeliveryCost.replace('$', ''));
	
	var fNewTotal = (fCurrentTotal - fPreviousDeliveryCost) + fNewDeliveryCost;
	
	if (fNewTotal == 0) 
		fNewTotal = '$0.00'
	else
		fNewTotal = formatCurrency(fNewTotal);
	
	document.getElementById('control_total').value = fNewTotal;

}
//----------------------------------------------------------------------------------------------------------------------------
function formatCurrency(num) 
{
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}
//----------------------------------------------------------------------------------------------------------------------------
function StripDollarSign(strInputValue)
{
	var fRtnValue;
	
	fRtnValue = parseFloat(strInputValue.replace('$', ''));
	
	return fRtnValue;
}
//----------------------------------------------------------------------------------------------------------------------------
function UpdateFakeStateControl()
{
 	var iIndexPosition = document.getElementById('delivery_cost_drop_list').selectedIndex;
	var strStateNewValue = document.getElementById('delivery_cost_drop_list').options[iIndexPosition].text;
		
	document.getElementById('state_fake_control').innerHTML = strStateNewValue;
	document.getElementById('state_hidden').value = strStateNewValue;
}
//----------------------------------------------------------------------------------------------------------------------------
function GetDeliveryCost(iInputStateID)
{
	var strDeliveryCost = '';
	var iCounter = 0;
	var strArrIndividualDeliveryCost;

	var iDeliveryStateID = 0
	var iDeliveryMinWeight = 1
	var iDeliveryMaxWeight = 2
	var iDeliveryPrice = 3
			
	var iCurrentOrderWeight = parseInt(document.getElementById('hidden_order_weight').value);
	var bDeliveryPriceFound = false;
	
	var MinWeight;
	var MaxWeight;

	//no point adding a delivery charge if the order weight is zero (i.e. no products being purchased)
	if (iCurrentOrderWeight == 0)
		return;
	
	//cycle thru all delivery costs and see if the current order weight falls within one of the ranges
	for(iCounter=0; iCounter < strArrDeliveryChargeDetails.length; iCounter++) 
	{ 

		strArrIndividualDeliveryCost = new Array();
		strArrIndividualDeliveryCost = strArrDeliveryChargeDetails[iCounter].split(',');
		
		//only look at delivery charges relavent to the currently selected state.
		if (strArrIndividualDeliveryCost[iDeliveryStateID] == iInputStateID)
		{	

			MinWeight = parseInt(strArrIndividualDeliveryCost[iDeliveryMinWeight])
			MaxWeight = parseInt(strArrIndividualDeliveryCost[iDeliveryMaxWeight])
				
			if( (iCurrentOrderWeight >=  MinWeight) && (iCurrentOrderWeight <= MaxWeight) )
			{
				strDeliveryCost = strArrIndividualDeliveryCost[iDeliveryPrice];
				bDeliveryPriceFound = true;
			}
			
		}
	}
	
	//a delivery price couldn't be found for the order weight, therefore, throw an error.
	if (bDeliveryPriceFound == false)
	{
		strDeliveryCost = document.getElementById('control_delivery_cost').value;
		// ***ERROR CHECKING CODE TURNED OFF BY CLIENT REQUEST ***
	//	document.getElementById("delivery_cost_error_msg").innerHTML = 'Order halted: couldn\'t calculate delivery cost for weight range ' + iCurrentOrderWeight + ' g.';
	//	document.getElementById("delivery_cost_error_msg").style.display = 'inline';
	//	document.getElementById("confirm_order_checkbox").disabled = 'disabled';
	}
	
	document.getElementById('control_delivery_cost').value = formatCurrency(strDeliveryCost);

}
//----------------------------------------------------------------------------------------------------------------------------
function AddToTotal(fInputValue, iInputSpinnerControlID, iInputProductWeight)
{

	var strNewTotal;
	var strNewSubTotal;
	var strNewOrderWeight
	
	var fCurrentTotal = StripDollarSign(document.getElementById('control_total').value);
	var fCurrentSubTotal = StripDollarSign(document.getElementById('control_sub_total').value);	
	var fCurrentOrderWeight = parseFloat(document.getElementById('hidden_order_weight').value);	
	
	strNewTotal = fCurrentTotal + fInputValue;
	strNewSubTotal = fCurrentSubTotal + fInputValue;
	strNewOrderWeight = fCurrentOrderWeight + iInputProductWeight;
	
	document.getElementById('hidden_order_weight').value = strNewOrderWeight;
	document.getElementById('control_sub_total').value = formatCurrency(strNewSubTotal);
	document.getElementById('control_total').value = formatCurrency(strNewTotal);
	
	SetOrderItemHidden(iInputSpinnerControlID);
	
}
//----------------------------------------------------------------------------------------------------------------------------
function SubtractFromToTotal(fInputValue, iInputSpinnerControlID, iInputProductWeight)
{
	var strNewTotal;
	var strNewSubTotal;
	var strNewOrderWeight;
	var strNewDeliveryCost;
	
	var fCurrentTotal = StripDollarSign(document.getElementById('control_total').value);
	var fCurrentSubTotal = StripDollarSign(document.getElementById('control_sub_total').value);	
	var bSpinnerControlIsDisabled = IsSpinnerControlDisabled(document.getElementById(iInputSpinnerControlID).src);
	var fCurrentOrderWeight = parseFloat(document.getElementById('hidden_order_weight').value);	
	var fCurrentDeliveryCost = StripDollarSign(document.getElementById('control_delivery_cost').value);	

	strNewOrderWeight = fCurrentOrderWeight - iInputProductWeight;
	
	if (bSpinnerControlIsDisabled == false)
	{
		strNewTotal = fCurrentTotal - fInputValue - fCurrentDeliveryCost;
		strNewSubTotal = fCurrentSubTotal - fInputValue;
		strNewDeliveryCost = fCurrentDeliveryCost - fCurrentDeliveryCost;
	
		document.getElementById('hidden_order_weight').value = strNewOrderWeight;
		document.getElementById('control_delivery_cost').value = formatCurrency(strNewDeliveryCost);
		document.getElementById('control_sub_total').value = formatCurrency(strNewSubTotal);
		document.getElementById('control_total').value = formatCurrency(strNewTotal);
	}
	



}
//----------------------------------------------------------------------------------------------------------------------------
function SetOrderItemHidden(iInputOrderItemHiddenControlID)
{

	var iProductID = iInputOrderItemHiddenControlID;
	var strProductName = document.getElementById('control_product_name_' + iInputOrderItemHiddenControlID).value;
	var iQty = document.getElementById('qty_' + iInputOrderItemHiddenControlID).value;
	var strProductPrice = document.getElementById('control_product_price_' + iInputOrderItemHiddenControlID).value;

	document.getElementById('control_order_item_' + iInputOrderItemHiddenControlID).value = iProductID + '#' + iQty + '#' + strProductName + "#" + strProductPrice;
	
}
//----------------------------------------------------------------------------------------------------------------------------
function ClearOrderItemHidden(iInputOrderItemHiddenControlID)
{
	document.getElementById('control_order_item_' + iInputOrderItemHiddenControlID).value = '';
}
//----------------------------------------------------------------------------------------------------------------------------
function DisableSpinnerControl(iInputSpinnerControlID, strInputDirection)
{
	document.getElementById(iInputSpinnerControlID).src = 'online_ordering_system/images/icon_spinner_' + strInputDirection + '_disabled.gif'; 
}
//----------------------------------------------------------------------------------------------------------------------------
function EnableSpinnerControl(iInputSpinnerControlID, strInputDirection)
{
	document.getElementById(iInputSpinnerControlID).src = 'online_ordering_system/images/icon_spinner_' + strInputDirection + '.gif'; 
}
//----------------------------------------------------------------------------------------------------------------------------
function IncreaseQty(iInputQtyBoxID, iInputIncreaseBy, iInputSpinnerControlID)
{
	var iCurrentQty = parseInt(document.getElementById(iInputQtyBoxID).value);
	var iNewQty = iCurrentQty + iInputIncreaseBy
	var bSpinnerControlIsDisabled = IsSpinnerControlDisabled(document.getElementById(iInputSpinnerControlID).src);
	
	document.getElementById(iInputQtyBoxID).value = iNewQty;
	EnableSpinnerControl(iInputSpinnerControlID.replace('up', 'down'), 'down');
	
}
//----------------------------------------------------------------------------------------------------------------------------
function DecreaseQty(iInputQtyBoxID, iInputDecreaseBy, iInputSpinnerControlID, iInputOrderItemHiddenControlID)
{

	var iCurrentQty = parseInt(document.getElementById(iInputQtyBoxID).value);
	var iNewQty = iCurrentQty - iInputDecreaseBy;

	//dont allow the qty box to decrease below 0.
	if (iNewQty != -1)
	{
		document.getElementById(iInputQtyBoxID).value = iNewQty;
	}
	
	//if the qty box is at 0, then disable the control
	if (iNewQty == 0)
	{
		DisableSpinnerControl(iInputSpinnerControlID, 'down');
		
		//clear the order item hidden control so it isnt added to part of the users order on postback.
		ClearOrderItemHidden(iInputOrderItemHiddenControlID);
	}
	else
	{
		SetOrderItemHidden(iInputOrderItemHiddenControlID);
	}
	
}
//----------------------------------------------------------------------------------------------------------------------------
function IsSpinnerControlDisabled(strInputImageSrc)
{
	var bRtnValue = false;
	var strDisabledCheck = new String(strInputImageSrc);
	
	if (strDisabledCheck.indexOf("disabled") == -1)
	{
		bRtnValue = false;
	}
	else
	{
		bRtnValue = true;
	}
	
	return bRtnValue;
	
}
//----------------------------------------------------------------------------------------------------------------------------
function AdjustAppearance(iInputSpinnerControlID, iInputOperation)
{
			
	//find out if the icon is disabled (searching for the string 'disabled' will return 0 if its not disabled).
	var bSpinnerControlIsDisabled = IsSpinnerControlDisabled(document.getElementById(iInputSpinnerControlID).src);
	
	switch (iInputOperation) 
	{
		case 1: 
			document.getElementById(iInputSpinnerControlID).src = 'online_ordering_system/images/icon_spinner_up_highlight.gif'; 
			break;
			
		case 2: 
			document.getElementById(iInputSpinnerControlID).src = 'online_ordering_system/images/icon_spinner_up.gif'; 
			break;
			
		case 3: 

			if (bSpinnerControlIsDisabled == false)
			{
				document.getElementById(iInputSpinnerControlID).src = 'online_ordering_system/images/icon_spinner_down_highlight.gif'; 
			}
			break;
			
		case 4: 	
			if (bSpinnerControlIsDisabled == false)
			{
				document.getElementById(iInputSpinnerControlID).src = 'online_ordering_system/images/icon_spinner_down.gif'; 
			}

			break;
		
		default: alert('Error - could not set spinner icon state');
	}

}
//----------------------------------------------------------------------------------------------------------------------------
