function FormatNumber(nPrice)
{
	var PriceStr = new String(nPrice);
	var DecimalIndex = PriceStr.indexOf('\.');

	if(DecimalIndex >= 0)
	{
		var Integer = PriceStr.substr(0, DecimalIndex);
		var Decimal = PriceStr.substr((DecimalIndex + 1), PriceStr.length);

		var FDp = Decimal.substr(0, 1);
		var SDp = Decimal.substr(1, 1);
		var TDp = Decimal.substr(2, 1);

		if(!FDp) { FDp = 0; }
		if(!SDp) { SDp = 0; }
		if(!TDp) { TDp = 0; }

		if(TDp >= 5)
		{
			++SDp;
			if(SDp == 10)
			{
				++FDp;SDp = 0;
				if(FDp == 10)
				{
					SDp = '';
				}
			}
		}

		PriceStr = Integer + '\.' + FDp + SDp;
	}
	else
	{
		PriceStr += '.00';
	}

	return PriceStr;
}

function QuantityChange(szProdID, szOptions, nPrice, LayerID, bOption, nProdPrice, nTaxRate)
{
	nPrice		= (nPrice)		? nPrice		: 0;
	nProdPrice	= (nProdPrice)	? nProdPrice	: 0;
	nTaxRate	= (nTaxRate)	? nTaxRate		: 0;
			
	var nQuantity	= 0;
	var szProdID	= 'PID:' + szProdID + '|';

	CartCookie	= new Cookie();
	nQuantity	= CartCookie.GetCookieItemValue(szProdID, szOptions);

	if(nQuantity == false || nQuantity.length <= 0)
	{
		location.reload();		
		return;
	}
	
	if(Number(nQuantity) == 1 && !bOption)
	{
		return;
	}

	nQuantity = Number(nQuantity) + ((bOption) ? 1 : -1);
	CartCookie.SetCookieItem(szProdID, szOptions, String(nQuantity));

	if(SetValue(document, LayerID, nQuantity, nPrice, nProdPrice, nTaxRate))
	{
		UpdateLogoFrame(((bOption) ? 1 : -1), 0, false, false);

		if(window.name == 'Main')
		{
			var Handle	= null;
			Handle		= parent.GetWindowHandle('ShoppingCart');

			if(Handle)
			{
				SetValue(Handle.document, LayerID, nQuantity, nPrice, nProdPrice, nTaxRate);
			}
		}
		else if(window.name == 'ShoppingCart' && window.opener && window.opener.name == 'Index' &&
				String(window.opener.Main.location).indexOf('CheckOut') >= 0)
		{
			SetValue(window.opener.Main.document, LayerID, nQuantity, nPrice, nProdPrice, nTaxRate);
		}
	}
}

function SetValue(Document, LayerID, nQuantity, nPrice, nProdPrice, nTaxRate)
{
	QuantitySpan	= Document.getElementById('QUANTITY' + LayerID);
	TotalSpan		= Document.getElementById('TOTAL' + LayerID);
	GrandTotalSpan	= Document.getElementById('GRAND_TOTALID');
	GrandTaxSpan	= Document.getElementById('GRAND_TOTAL_TAXID');
	ShippingSpan	= Document.getElementById('SHIPPING_COSTID');
	
	if(!QuantitySpan || !TotalSpan || !GrandTotalSpan || !GrandTaxSpan)
	{
		return false;
	}

	OldQuantity	= Number(QuantitySpan.innerHTML);
	OldValue	= parseFloat(TotalSpan.innerHTML);
	OldTax		= parseFloat((parseFloat(parseFloat(nProdPrice) * OldQuantity) * Number(nTaxRate)) / 100 );
	NewTax		= parseFloat((parseFloat(parseFloat(nProdPrice) * nQuantity) * Number(nTaxRate)) / 100 );
	NewValue	= TotalSpan.innerHTML = FormatNumber(parseFloat(Number(nQuantity) * parseFloat(nPrice)));

	QuantitySpan.innerHTML	 = Number(nQuantity);
	GrandTaxSpan.innerHTML	 = FormatNumber( parseFloat((parseFloat(GrandTaxSpan.innerHTML) - OldTax) + NewTax) );
	GrandTotalSpan.innerHTML = FormatNumber((parseFloat(GrandTotalSpan.innerHTML) - (OldValue + OldTax)) + 
										(parseFloat(NewValue) + NewTax));

	if(ShippingSpan && Document && Document.forms['CHECKOUT'])
	{		
		SetShippingCost(Document.forms['CHECKOUT'].MANDATORY_SHIPPINGTYPE, Document);
	}
	else
	{
		Total = parseFloat(parseFloat(GrandTotalSpan.innerHTML) - parseFloat(GrandTaxSpan.innerHTML));
		UpdateLogoFrame(0, Total, true, false);
	}

	return true;
}

function SetShippingCost(ControlID, Document)
{
	var ShippingCost		= 0;
	var Pos					= 6;
	var SelIndexValue		= ControlID.options[ControlID.selectedIndex].value;	
		
	var Value				= SelIndexValue.split('-');
	var ShippingCostSpanId	= Document.getElementById('SHIPPING_COSTID');	
	var GrandTotalSpan		= Document.getElementById('GRAND_TOTALID');

	if(Value.length < 2 || ControlID.selectedIndex < 2 || (!ShippingCostSpanId || !GrandTotalSpan))
	{
		return;
	}
	
	var TotalCost			= parseFloat(parseFloat(GrandTotalSpan.innerHTML) - parseFloat(ShippingCostSpanId.innerHTML));

	var ShippingCostArray	= Value[1].split('ä');
	MerchandiseLimit		= new Array(0, 100, 150, 200, 250, 500, 1000);

	for(var i=0; i < MerchandiseLimit.length; i++)
	{
		if((TotalCost >= MerchandiseLimit[i]) && i < 6 && (TotalCost < MerchandiseLimit[i+1]))
		{
			Pos = i;
			break;
		}
	}
	
	ShippingCost					= parseFloat(ShippingCostArray[Pos]);
	ShippingCostSpanId.innerHTML	= FormatNumber(ShippingCost);	
	GrandTotalSpan.innerHTML		= FormatNumber(TotalCost + ShippingCost);
	ControlID.form.SHIP_COST.value	= ShippingCost;
}