function deleteProduct(aCode){
	tmpChildNodes = xmlOHeader.childNodes;
	anArray = new Array();
	for(var i=0;i<tmpChildNodes.length;i++){
		if(tmpChildNodes[i].clsObjName=="OrderBody"){
			if(tmpChildNodes[i].ProductNo!=aCode) anArray[anArray.length] = tmpChildNodes[i];
			};
		};
	xmlOHeader.childNodes = anArray;
	reload();
	};
// 12010
function updShoppingCart(forwardSite){
	for(var i=0;i<xmlOHeader.childNodes.length;i++){
		if(xmlOHeader.childNodes[i].clsObjName=="OrderBody"){
			xmlOHeader.childNodes[i].QuantityAmount = parseInt(document.ProductIndex.elements[i].value);
			};
		};
	setupShoppingCartEntries();
	calculateGlobalAmounts();
	safeData();
	if(forwardSite){
		document.location.href="https://www.gabys-geniessertreff.de/pchase_custinfo.php";
		}
	else reload();
	};
// 12025
	function calcDiscount(myElement){
		var myInternal = myElement.getFirstItem("Internal");
		var PriceNetSingleUnit;
		var PriceGrossSingleUnit;
		var DiscountNetSingleUnit = 0;
		var DiscountGrossSingleUnit = 0;
		var arrDiscountStrings = myInternal.discount.split(";");

		myElement.DiscountNetLineTotalLC = "0";
		myElement.DiscountGrossLineTotalLC = "0";
		myElement.DiscountRate = "0";
		
		if(boolPriceTaxIncl){
			PriceNetSingleUnit								= parseFloat(myInternal.price) * ( 1 - parseFloat(myElement.TaxRate) / ( 100 + parseFloat(myElement.TaxRate) ) ) / parseInt(myElement.PriceUnit);
			PriceGrossSingleUnit							= parseFloat(myInternal.price) / parseInt(myElement.PriceUnit);
			}
		else{
			PriceNetSingleUnit								= parseFloat(myInternal.price) / parseInt(myElement.PriceUnit);
			PriceGrossSingleUnit							= parseFloat(myInternal.price) * ( 1 + parseFloat(myElement.TaxRate) / 100 ) / parseInt(myElement.PriceUnit);
			};

		// discounts available
		var maxAmount = 0;
		var QuantityDiscountsActive = arrDiscountStrings.length > 1;
		for(var i=0;i<arrDiscountStrings.length-1;i++){
			aDiscount = arrDiscountStrings[i].split("::");
			if(parseInt(myElement.QuantityAmount)>=parseInt(aDiscount[1])&&parseInt(aDiscount[1])>maxAmount){
				maxAmount = parseInt(aDiscount[1]);
				if(parseInt(aDiscount[0])==0){
					if(boolPriceTaxIncl){
						PriceNetSingleUnit								= parseFloat(aDiscount[2]) * ( 1 - parseFloat(myElement.TaxRate) / ( 100 + parseFloat(myElement.TaxRate) ) ) / parseInt(myElement.PriceUnit);
						PriceGrossSingleUnit							= parseFloat(aDiscount[2]) / parseInt(myElement.PriceUnit)
							DiscountNetSingleUnit						= ( parseFloat(myInternal.price) - parseFloat(aDiscount[2]) ) * ( 1 - parseFloat(myElement.TaxRate) / ( 100 + parseFloat(myElement.TaxRate) ) ) / parseInt(myElement.PriceUnit);
							DiscountGrossSingleUnit					= ( parseFloat(myInternal.price) - parseFloat(aDiscount[2]) ) / parseInt(myElement.PriceUnit);
						}
					else{
						PriceNetSingleUnit								= parseFloat(aDiscount[2]) / parseInt(myElement.PriceUnit);
						PriceGrossSingleUnit							= parseFloat(aDiscount[2]) * ( 1 + parseFloat(myElement.TaxRate) / 100 ) / parseInt(myElement.PriceUnit);
							DiscountNetSingleUnit						= ( parseFloat(myInternal.price) - parseFloat(aDiscount[2]) ) / parseInt(myElement.PriceUnit);
							DiscountGrossSingleUnit					= ( parseFloat(myInternal.price) - parseFloat(aDiscount[2]) ) * ( 1 + parseFloat(myElement.TaxRate) / 100 ) / parseInt(myElement.PriceUnit);
						};
					}
				else{
					myElement.DiscountRate = aDiscount[2];
					if(boolPriceTaxIncl){
						PriceNetSingleUnit								= parseFloat(myInternal.price) * ( 1 - parseFloat(aDiscount[2])/100 ) * ( 1 - parseFloat(myElement.TaxRate) / ( 100 + parseFloat(myElement.TaxRate) ) ) / parseInt(myElement.PriceUnit);
						PriceGrossSingleUnit							= parseFloat(myInternal.price) * ( 1 - parseFloat(aDiscount[2])/100 ) / parseInt(myElement.PriceUnit);
							DiscountNetSingleUnit						= ( parseFloat(myInternal.price) - parseFloat(myInternal.price) * ( 1 - parseFloat(aDiscount[2])/100 ) ) * ( 1 - parseFloat(myElement.TaxRate) / ( 100 + parseFloat(myElement.TaxRate) ) ) / parseInt(myElement.PriceUnit);
							DiscountGrossSingleUnit					= ( parseFloat(myInternal.price) - parseFloat(myInternal.price) * ( 1 - parseFloat(aDiscount[2])/100 ) ) / parseInt(myElement.PriceUnit);
						}
					else{
						PriceNetSingleUnit								= parseFloat(myInternal.price) * ( 1 - parseFloat(aDiscount[2])/100 ) / parseInt(myElement.PriceUnit);
						PriceGrossSingleUnit							= parseFloat(myInternal.price) * ( 1 - parseFloat(aDiscount[2])/100 ) * ( 1 + parseFloat(myElement.TaxRate) / 100 ) / parseInt(myElement.PriceUnit);
							DiscountNetSingleUnit						= ( parseFloat(myInternal.price) - parseFloat(myInternal.price) * ( 1 - parseFloat(aDiscount[2])/100 ) ) / parseInt(myElement.PriceUnit);
							DiscountGrossSingleUnit					= ( parseFloat(myInternal.price) - parseFloat(myInternal.price) * ( 1 - parseFloat(aDiscount[2])/100 ) ) * ( 1 + parseFloat(myElement.TaxRate) / 100 ) / parseInt(myElement.PriceUnit);
						};
					};
				};
			};
			
		if(!QuantityDiscountsActive){
			if(myInternal.catDiscount!=0){
				var mCatDiscountPrice = myInternal.price * ( 1 - myInternal.catDiscount / 100 );
				if(boolPriceTaxIncl){
					PriceNetSingleUnit								= parseFloat(mCatDiscountPrice) * ( 1 - parseFloat(myElement.TaxRate) / ( 100 + parseFloat(myElement.TaxRate) ) ) / parseInt(myElement.PriceUnit);
					PriceGrossSingleUnit							= parseFloat(mCatDiscountPrice) / parseInt(myElement.PriceUnit);
						DiscountNetSingleUnit						= parseFloat(myInternal.price) - parseFloat(mCatDiscountPrice) * ( 1 - parseFloat(myElement.TaxRate) / ( 100 + parseFloat(myElement.TaxRate) ) ) / parseInt(myElement.PriceUnit);
						DiscountGrossSingleUnit					= parseFloat(myInternal.price) - parseFloat(mCatDiscountPrice) / parseInt(myElement.PriceUnit);
					}
				else{
					PriceNetSingleUnit								= parseFloat(mCatDiscountPrice) / parseInt(myElement.PriceUnit);
					PriceGrossSingleUnit							= parseFloat(mCatDiscountPrice) * ( 1 + parseFloat(myElement.TaxRate) / 100 ) / parseInt(myElement.PriceUnit);
						DiscountNetSingleUnit						= parseFloat(myInternal.price) - parseFloat(mCatDiscountPrice) / parseInt(myElement.PriceUnit);
						DiscountGrossSingleUnit					= parseFloat(myInternal.price) - parseFloat(mCatDiscountPrice) * ( 1 + parseFloat(myElement.TaxRate) / 100 ) / parseInt(myElement.PriceUnit);
					};
				};
			};	
		
		myElement.PriceNetSingleUnitLC			= TCalcCurrencyFormat( PriceNetSingleUnit, objLeadCurrency );
		myElement.PriceNetSingleUnitSC			= TCalcCurrencyFormat( PriceNetSingleUnit, objPriCurrency );
		myElement.PriceGrossSingleUnitLC		= TCalcCurrencyFormat( PriceGrossSingleUnit, objLeadCurrency );
		myElement.PriceGrossSingleUnitSC		= TCalcCurrencyFormat( PriceGrossSingleUnit, objPriCurrency );

		myElement.DiscountNetSingleUnitLC		= TCalcCurrencyFormat( DiscountNetSingleUnit, objLeadCurrency);
		myElement.DiscountNetSingleUnitSC		= TCalcCurrencyFormat( DiscountNetSingleUnit, objPriCurrency);
		myElement.DiscountGrossSingleUnitLC = TCalcCurrencyFormat( DiscountGrossSingleUnit, objLeadCurrency);
		myElement.DiscountGrossSingleUnitSC = TCalcCurrencyFormat( DiscountGrossSingleUnit, objPriCurrency);

		var taxFactor = 1;
		if(boolPriceTaxIncl){
			taxFactor = 1 - parseFloat(myElement.TaxRate ) / ( 100 + parseFloat(myElement.TaxRate) );
			myElement.PriceNetLineTotalLC				= TFormatCurrencyValue(parseFloat(myElement.PriceGrossSingleUnitLC) * taxFactor * myElement.QuantityAmount, objLeadCurrency);
			myElement.PriceNetLineTotalSC				= TFormatCurrencyValue(parseFloat(myElement.PriceGrossSingleUnitSC) * taxFactor * myElement.QuantityAmount, objPriCurrency);
			myElement.DiscountNetLineTotalLC		= TFormatCurrencyValue(parseFloat(myElement.DiscountGrossSingleUnitLC) * taxFactor * myElement.QuantityAmount, objLeadCurrency);
			myElement.DiscountNetLineTotalSC		= TFormatCurrencyValue(parseFloat(myElement.DiscountGrossSingleUnitSC) * taxFactor * myElement.QuantityAmount, objPriCurrency);
			myElement.PriceGrossLineTotalLC			= TFormatCurrencyValue(parseFloat(myElement.PriceGrossSingleUnitLC) * myElement.QuantityAmount, objLeadCurrency);
			myElement.PriceGrossLineTotalSC			= TFormatCurrencyValue(parseFloat(myElement.PriceGrossSingleUnitSC) * myElement.QuantityAmount, objPriCurrency);
			myElement.DiscountGrossLineTotalLC	= TFormatCurrencyValue(parseFloat(myElement.DiscountGrossSingleUnitLC) * myElement.QuantityAmount, objLeadCurrency);
			myElement.DiscountGrossLineTotalSC	= TFormatCurrencyValue(parseFloat(myElement.DiscountGrossSingleUnitSC) * myElement.QuantityAmount, objPriCurrency);
			}
		else{
			taxFactor = 1 + parseFloat(myElement.TaxRate) / 100;
			myElement.PriceNetLineTotalLC				= TFormatCurrencyValue(parseFloat(myElement.PriceNetSingleUnitLC) * myElement.QuantityAmount, objLeadCurrency);
			myElement.PriceNetLineTotalSC				= TFormatCurrencyValue(parseFloat(myElement.PriceNetSingleUnitSC) * myElement.QuantityAmount, objPriCurrency);
			myElement.DiscountNetLineTotalLC		= TFormatCurrencyValue(parseFloat(myElement.DiscountNetSingleUnitLC) * myElement.QuantityAmount, objLeadCurrency);
			myElement.DiscountNetLineTotalSC		= TFormatCurrencyValue(parseFloat(myElement.DiscountNetSingleUnitSC) * myElement.QuantityAmount, objPriCurrency);
			myElement.PriceGrossLineTotalLC			= TFormatCurrencyValue(parseFloat(myElement.PriceNetSingleUnitLC) * taxFactor * myElement.QuantityAmount, objLeadCurrency);
			myElement.PriceGrossLineTotalSC			= TFormatCurrencyValue(parseFloat(myElement.PriceNetSingleUnitSC) * taxFactor * myElement.QuantityAmount, objPriCurrency);
			myElement.DiscountGrossLineTotalLC	= TFormatCurrencyValue(parseFloat(myElement.DiscountNetSingleUnitLC) * taxFactor * myElement.QuantityAmount, objLeadCurrency);
			myElement.DiscountGrossLineTotalSC	= TFormatCurrencyValue(parseFloat(myElement.DiscountNetSingleUnitSC) * taxFactor * myElement.QuantityAmount, objPriCurrency);
			};
		
		myElement.TaxAmountSingleUnitLC = TFormatCurrencyValue(parseFloat(myElement.PriceGrossSingleUnitLC) - parseFloat(myElement.PriceNetSingleUnitLC), objLeadCurrency );
		myElement.TaxAmountSingleUnitSC = TFormatCurrencyValue(parseFloat(myElement.PriceGrossSingleUnitLC) - parseFloat(myElement.PriceNetSingleUnitLC), objPriCurrency );
		myElement.TaxAmountLineTotalLC = TFormatCurrencyValue(parseFloat(myElement.PriceGrossLineTotalLC) - parseFloat(myElement.PriceNetLineTotalLC), objLeadCurrency );
		myElement.TaxAmountLineTotalSC = TFormatCurrencyValue(parseFloat(myElement.PriceGrossLineTotalSC) - parseFloat(myElement.PriceNetLineTotalSC), objPriCurrency );
			
		return myElement;
		};
// 12030
	function TElementPrint(variableAmount){
		myInternal = this.getFirstItem("Internal");
		tmpVariants = myInternal.variants.split("@");
		strVariants = "";strTmpReturnVal = "";
		if(tmpVariants.length>1){
			for(var i=0;i<tmpVariants.length-1;i++){
				tmpElement = tmpVariants[i].split(";");
				strTmpReturnVal += "<nobr>" + tmpVariants[i].split(";")[0] + ": " + tmpVariants[i].split(";")[1] + '</nobr><br>';
				strVariants += "search" + i + "_EQ_" + tmpElement[1] + "_AND_";
				};
			strVariants += "{EOL}";
			};
		if(this.getFirstItem("userAttributes")){
			if(this.getFirstItem("userAttributes").childNodes.length>0){
				for(var i=0;i<this.getFirstItem("userAttributes").childNodes.length;i++){
					strTmpReturnVal += "<nobr>" + decryptTextData(this.getFirstItem("userAttributes").childNodes[i].caption) + ":&nbsp;</nobr>";
					strTmpReturnVal += decryptTextData(this.getFirstItem("userAttributes").childNodes[i].value + "<br>")
					};
				};
			};
		returnVal = '<tr>'
			+ '<td class="BSBODY" valign="top" nowrap>' + this.ProductNo + '</td>'
			+ '<td class="BSBODY" valign="top">';
		if(myInternal.address!="#DROP#") returnVal += "<a href=\"" + myInternal.address + "?defaultVariants=" + strVariants + "&categoryId=" + myInternal.navIndex + "\">"
		returnVal += this.Name;
		if(myInternal.address!="#DROP#") returnVal += "</a>"
		returnVal += "<br>" + this.Description;
		returnVal += "</td>"
			+ '<td class="BSBODY" valign="top">';
		if(strTmpReturnVal!="") returnVal += strTmpReturnVal;
		else returnVal += "&nbsp;";
		returnVal += '</td>';
		var taxamount = this.TaxRate
		if(boolDisplTaxIncl){ // Display Gross Value
			var discountAmount = TFormatCurrencyOnly( this.DiscountGrossLineTotalLC / this.QuantityAmount, objPriCurrency );
			var singlePrice = TFormatCurrencyOnly( this.PriceGrossSingleUnitLC, objPriCurrency );
			var fullPrice = TFormatCurrencyOnly( this.PriceGrossLineTotalLC, objPriCurrency );
			}
		else{ // Display Net Value
			var discountAmount = TFormatCurrencyOnly( this.DiscountNetLineTotalLC / this.QuantityAmount, objPriCurrency );
			var singlePrice = TFormatCurrencyOnly( this.PriceNetSingleUnitLC, objPriCurrency );
			var fullPrice = TFormatCurrencyOnly( this.PriceNetLineTotalLC, objPriCurrency );
			};
		if(variableAmount) returnVal += '<td class="BSBODY" valign="top"><a href="javascript: deleteProduct(\'' + this.ProductNo + '\');"><img src="assets/images/icdelproduct.gif" width="10" height="11" alt="Eintrag löschen" border="0" align="bottom" hspace="0" vspace="0" class="main"></a></td>'
		else returnVal += '';
		returnVal += '<td class="BSBODY" valign="top" align="right" nowrap>' + singlePrice  + '</td>'
			+ '<td class="BSBODY" valign="top" align="right" nowrap>' + discountAmount + '</td>';
		if(variableAmount) returnVal += '<td class="BSBODY" valign="top" align="center"><input type="text" size="2" name="Amount_' + this.LinePos + '" value="' + this.QuantityAmount + '" onChange="this.value=valNumber(this.value,' + myInternal.minOrder + ',minOrderMsg)" onkeydown="refreshOnEnter();"></td>'
		else returnVal += '<td class="BSBODY" valign="top" align="center">' + this.QuantityAmount + '</td>';
		returnVal += '<td class="BSBODY" valign="top" align="right" nowrap>' + fullPrice + '</td>'
			+ '</tr>';
		return returnVal;
		};
// 12050
	function setupShoppingCartEntries(){
		// Reset Values
		var TotalTax					= 0;
		var LinesTotalNet			= 0;
		var LinesTotalGross		= 0;
		var TotalPriceNet			= 0;
		var TotalPriceGross		= 0;
		
		var EntryLength = 0;

		xmlOHeader.TotalWeight = "0";
		xmlOHeader.GlobalDiscountRate = "0";
		xmlOHeader.GlobalDiscountAmount = "0";
		
		for(var i=0;i<xmlOHeader.childNodes.length;i++){
			if(xmlOHeader.childNodes[i].clsObjName == "OrderBody"){
				// Entry[i] is current Product
				EntryLength = Entry.length;
				Entry[EntryLength] = xmlOHeader.childNodes[i];
				// If QuantityAmount is less/equal 0, it will be set to 1
				if(parseInt(Entry[EntryLength].QuantityAmount)<=0) Entry[EntryLength].QuantityAmount = 1;
				// Reset Variant ChildNodes
				var tmpChildNodes = new Array();
				for(var j=0;j<Entry[EntryLength].childNodes.length;j++){
					if(Entry[EntryLength].childNodes[j].clsObjName=="Internal"||Entry[EntryLength].childNodes[j].clsObjName=="userAttributes"){
						tmpChildNodes[tmpChildNodes.length] = Entry[EntryLength].childNodes[j];
						};
					};
					Entry[EntryLength].childNodes = tmpChildNodes;
				// Reset TaxRate Property
				Entry[EntryLength].TaxRate = taxarea[xmlConfig.taxarea][parseInt(Entry[EntryLength].TaxClass) + 1]
				// Set LinePos Value
				Entry[EntryLength].LinePos = i + 1;
				// Calculate Discount Values
				Entry[EntryLength] = calcDiscount(Entry[EntryLength]);
				// Set Variant Node
				myInternal = Entry[EntryLength].getFirstItem("Internal");
				// Setup Variants
				arrVariants = myInternal.variants.split("@");
				for(var j=0;j<arrVariants.length-1;j++){
					myVariant = Entry[EntryLength].addNode("OrderVariants");
						myVariant.PKID = "X"; // Internal Value
						myVariant.VariantName = arrVariants[j].split(";")[0];
						myVariant.VariantValue = arrVariants[j].split(";")[1];
					};
				// Set TotalWeight
				xmlOHeader.TotalWeight = parseFloat(xmlOHeader.TotalWeight) + parseFloat(Entry[EntryLength].WeightAmountSingleUnit) * parseInt(Entry[EntryLength].QuantityAmount);
				// Set Currency Values
				TotalTax					+= parseFloat(Entry[EntryLength].PriceGrossLineTotalLC) - parseFloat(Entry[EntryLength].PriceNetLineTotalLC);
				LinesTotalNet			+= parseFloat(Entry[EntryLength].PriceNetLineTotalLC);
				LinesTotalGross		+= parseFloat(Entry[EntryLength].PriceGrossLineTotalLC);
				TotalPriceNet			+= parseFloat(Entry[EntryLength].PriceNetLineTotalLC);
				TotalPriceGross		+= parseFloat(Entry[EntryLength].PriceGrossLineTotalLC);
				// Add Print Method to Entry
				Entry[EntryLength].addMethod(TElementPrint,"Print");
				};
			};
		// Set Final Values
		xmlOHeader.TotalTaxLC					= TCalcCurrencyFormat(TotalTax, objLeadCurrency)
		xmlOHeader.TotalTaxSC					= TCalcCurrencyFormat(TotalTax, objPriCurrency)
		xmlOHeader.LinesTotalNetLC		= TCalcCurrencyFormat(LinesTotalNet, objLeadCurrency);	
		xmlOHeader.LinesTotalNetSC		= TCalcCurrencyFormat(LinesTotalNet, objPriCurrency);	
		xmlOHeader.LinesTotalGrossLC	= TCalcCurrencyFormat(LinesTotalGross, objLeadCurrency);	
		xmlOHeader.LinesTotalGrossSC	= TCalcCurrencyFormat(LinesTotalGross, objPriCurrency);	
		xmlOHeader.TotalPriceNetLC		= TCalcCurrencyFormat(TotalPriceNet, objLeadCurrency);
		xmlOHeader.TotalPriceNetSC		= TCalcCurrencyFormat(TotalPriceNet, objPriCurrency);
		xmlOHeader.TotalPriceGrossLC	= TCalcCurrencyFormat(TotalPriceGross, objLeadCurrency);
		xmlOHeader.TotalPriceGrossSC	= TCalcCurrencyFormat(TotalPriceGross, objPriCurrency);
		};
		
	function calculateGlobalAmounts(){
	var globalDiscountIndex = -1;
	var tmpCartAmountNet = 0;
	var tmpCartAmountGross = 0;
	var tmpGlobalDiscountAmountNet = 0; var tmpPreGlobalDiscountAmountNet = 0;
	var tmpGlobalDiscountAmountGross = 0; var tmpPreGlobalDiscountAmountGross = 0;
		// store current shopping cart values
		tmpCartAmountGross = parseFloat(xmlOHeader.TotalPriceGrossLC);
		tmpCartAmountNet = parseFloat(xmlOHeader.TotalPriceNetLC);
		// store the discount array index
		if(boolDisplTaxIncl) globalDiscountIndex = setupGlobalDiscounts(tmpCartAmountGross)
		else globalDiscountIndex = setupGlobalDiscounts(tmpCartAmountNet);
		// if index > -1
		if(globalDiscountIndex>-1){
			// store current shopping cart values as pre values
			tmpPreGlobalDiscountAmountGross = tmpCartAmountGross;
			tmpPreGlobalDiscountAmountNet = tmpCartAmountNet;
			// calculate new shopping cart values ( - discount )
			tmpCartAmountGross = tmpPreGlobalDiscountAmountGross * ( 1 - globalDiscountValue[globalDiscountIndex] / 100 );
			tmpCartAmountNet = tmpPreGlobalDiscountAmountNet * ( 1 - globalDiscountValue[globalDiscountIndex] / 100 );
			// calculate discount values
			tmpGlobalDiscountAmountGross = tmpPreGlobalDiscountAmountGross - tmpCartAmountGross;
			tmpGlobalDiscountAmountNet = tmpPreGlobalDiscountAmountNet - tmpCartAmountNet;
			// store new shopping cart values
			xmlOHeader.TotalPricePreDiscountGrossLC = TCalcCurrencyFormat(tmpPreGlobalDiscountAmountGross, objLeadCurrency);
			xmlOHeader.TotalPricePreDiscountNetLC = TCalcCurrencyFormat(tmpPreGlobalDiscountAmountNet, objLeadCurrency);
			xmlOHeader.TotalPricePreDiscountGrossSC = TCalcCurrencyFormat(tmpPreGlobalDiscountAmountGross, objPriCurrency);
			xmlOHeader.TotalPricePreDiscountNetSC = TCalcCurrencyFormat(tmpPreGlobalDiscountAmountNet, objPriCurrency);
			xmlOHeader.TotalPriceGrossLC = tmpCartAmountGross;
			xmlOHeader.TotalPriceNetLC = tmpCartAmountNet;
			// store discount values
			xmlOHeader.GlobalDiscountRate = globalDiscountValue[globalDiscountIndex];
			xmlOHeader.GlobalDiscountAmountNet = Math.abs(tmpGlobalDiscountAmountNet);
			xmlOHeader.GlobalDiscountAmountGross = Math.abs(tmpGlobalDiscountAmountGross);
			}
		else{
			// store new shopping cart values
			xmlOHeader.TotalPricePreDiscountGrossLC = TCalcCurrencyFormat(tmpCartAmountGross, objLeadCurrency);
			xmlOHeader.TotalPricePreDiscountNetLC = TCalcCurrencyFormat(tmpCartAmountNet, objLeadCurrency);
			xmlOHeader.TotalPricePreDiscountGrossSC = TCalcCurrencyFormat(tmpCartAmountGross, objPriCurrency);
			xmlOHeader.TotalPricePreDiscountNetSC = TCalcCurrencyFormat(tmpCartAmountNet, objPriCurrency);
			xmlOHeader.TotalPriceGrossLC = tmpCartAmountGross;
			xmlOHeader.TotalPriceNetLC = tmpCartAmountNet;
			// store discount values
			xmlOHeader.GlobalDiscountRate = -1;
			xmlOHeader.GlobalDiscountAmountNet = 0;
			xmlOHeader.GlobalDiscountAmountGross = 0;
			};
		return(globalDiscountIndex);
		};	
	
// 12060
	function DisplayShoppingCart(isOrderform){
	var globalDiscountIndex = -1;
	var tmpCartAmountNet = 0;
	var tmpCartAmountGross = 0;
	var tmpGlobalDiscountAmountNet = 0; var tmpPreGlobalDiscountAmountNet = 0;
	var tmpGlobalDiscountAmountGross = 0; var tmpPreGlobalDiscountAmountGross = 0;
	var tmpOrgAmount = 0;
		if(Entry.length>0){
			var myOOrder = XML.getFirstItem("OOrder");

			var result = "<form name=\"ProductIndex\" onSubmit=\"return false;\">"; 
			for(var i=0;i<Entry.length;i++) result += Entry[i].Print(isOrderform);

			globalDiscountIndex = calculateGlobalAmounts();

			if(boolDisplTaxIncl){
				tmpTemporaryValue = parseFloat(xmlOHeader.TotalPriceGrossLC);
				if(!isOrderform){
					tmpTemporaryTax = parseFloat(xmlOHeader.TotalPriceGrossLC) - parseFloat(xmlOHeader.TotalPriceNetLC);
					tmpFreightCharge = parseFloat(xmlOHeader.ShippingGrossLC);
					tmpFreightChargeTax = parseFloat(xmlOHeader.ShippingGrossLC) - parseFloat(xmlOHeader.ShippingNetLC);
					tmpPaymentCharge = parseFloat(xmlOHeader.PaymentGrossLC);
					tmpPaymentChargeTax = parseFloat(xmlOHeader.PaymentGrossLC) - parseFloat(xmlOHeader.PaymentNetLC);
					tmpTotal = tmpTemporaryValue + tmpFreightCharge + tmpPaymentCharge;
					};
				}
			else{
				tmpTemporaryValue = parseFloat(xmlOHeader.TotalPriceNetLC);
				if(!isOrderform){
					tmpTemporaryTax = parseFloat(xmlOHeader.TotalPriceGrossLC) - parseFloat(xmlOHeader.TotalPriceNetLC);
					tmpFreightCharge = parseFloat(xmlOHeader.ShippingNetLC);
					tmpFreightChargeTax = parseFloat(xmlOHeader.ShippingGrossLC) - parseFloat(xmlOHeader.ShippingNetLC);
					tmpPaymentCharge = parseFloat(xmlOHeader.PaymentNetLC);
					tmpPaymentChargeTax = parseFloat(xmlOHeader.PaymentGrossLC) - parseFloat(xmlOHeader.PaymentNetLC);
					tmpTotal = tmpTemporaryValue + tmpTemporaryTax + tmpFreightCharge + tmpFreightChargeTax + tmpPaymentCharge + tmpPaymentChargeTax;
					};
				};
			// -- save shoppingcart subtotal
				xmlConfig.cartSubTotal = tmpTemporaryValue;
				safeData();
			// -- end save shoppingcart subtotal
			if(!isOrderform) var myColspan=6
			else var myColspan=7;
			result += '<tr><td colspan="' + (myColspan + 1).toString() + '" ></td>';
			if(globalDiscountIndex>-1){
				result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
					+ 'Summe vor Rabatt&nbsp;' + objPriCurrency.charCurrency  // Text for subtotal
					+ '</strong></td><td class="BSFOOT" align="right" nowrap><strong>'
					+ TFormatCurrencyOnly((boolDisplTaxIncl) ? xmlOHeader.TotalPricePreDiscountGrossLC : xmlOHeader.TotalPricePreDiscountNetLC, objPriCurrency)
					+ '</strong></td></tr>';
				result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
					+ 'Globaler Rabatt&nbsp;' + objPriCurrency.charCurrency  // Text for subtotal
					+ '</strong></td><td class="BSFOOT" align="right" nowrap><strong>'
					+ TFormatCurrencyOnly((boolDisplTaxIncl) ? xmlOHeader.GlobalDiscountAmountGross : xmlOHeader.GlobalDiscountAmountGross, objPriCurrency)
					+ '</strong></td></tr>';
					};
			result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
				+ 'Zwischensumme incl. gesetzl. MwSt.&nbsp;' + objPriCurrency.charCurrency  // Text for subtotal
				+ '</strong></td><td class="BSFOOT" align="right" nowrap><strong>'
				+ TFormatCurrencyOnly(tmpTemporaryValue, objPriCurrency)
				+ '</strong></td></tr>';
			if(!isOrderform){
				result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
					+ 'Versandkosten&nbsp;' + objPriCurrency.charCurrency  // Text for ShippingMethods
					+ '</strong></td><td class="BSFOOT" align="right" nowrap><strong>'
					+ TFormatCurrencyOnly(tmpFreightCharge, objPriCurrency)
					+ '</strong></td></tr>';
				result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
					+ 'Zahlartgebühren&nbsp;' + objPriCurrency.charCurrency  // Text for ShippingMethods
					+ '</strong></td><td id="elemPaymentCharge" class="BSFOOT" align="right" nowrap><strong>'
					+ TFormatCurrencyOnly(tmpPaymentCharge, objPriCurrency)
					+ '</strong></td></tr>';
				if(boolDisplTaxIncl){
					result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
						+ 'Enthaltene MwSt.&nbsp;' + objPriCurrency.charCurrency  // Text for Included Tax
						+ '</strong></td><td id="elemPaymentTax" class="BSFOOT" align="right" nowrap><strong>'
						+ TFormatCurrencyOnly(Math.abs(tmpTemporaryTax + tmpFreightChargeTax + tmpPaymentChargeTax), objPriCurrency)
						+ '</strong></td></tr>';
					}
				else{
					result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
						+ 'MwSt&nbsp;' + objPriCurrency.charCurrency  // Text for Added Tax
						+ '</strong></td><td id="elemPaymentTax" class="BSFOOT" align="right" nowrap><strong>'
						+ TFormatCurrencyOnly(Math.abs(tmpTemporaryTax + tmpFreightChargeTax + tmpPaymentChargeTax), objPriCurrency)
						+ '</strong></td></tr>';
					};
				result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
					+ 'Endbetrag incl. gesetzl. MwSt.&nbsp;' + objPriCurrency.charCurrency
					+ '</strong></td><td id="elemPaymentTotal" class="BSFOOT" align="right" nowrap><strong>'
					+ TFormatCurrencyOnly(tmpTotal, objPriCurrency)
					+ '</strong></td></tr>';
				};
			if(isOrderform){
				if(boolDisplSecCurr){
					result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
						+ 'Alternativ&nbsp;' + objSecCurrency.charCurrency // Tax inclusive or additive
						+ '</strong></td><td class="BSFOOT" align="right"> '
						+ TFormatCurrencyOnly(tmpTemporaryValue, objSecCurrency)
						+ '</td></tr>';
					}
				}
			else{
				if(boolDisplSecCurr){
					result += '<tr><td colspan="' + myColspan + '" align="right"><strong>'
						+ 'Alternativ&nbsp;' + objSecCurrency.charCurrency // Tax inclusive or additive
						+ '</strong></td><td id="elemPaymentTotalAlt" class="BSFOOT" align="right"> '
						+ TFormatCurrencyOnly(tmpTotal, objSecCurrency)
						+ '</td></tr>';
					}
				};
			result += "</form>";
			// Update DHTML Values
			if(SM_DOM!=null){
				if(SM_DOM==1){
					if(document.getElementById("elemPaymentCharge")) document.getElementById("elemPaymentCharge").innerHTML = "<strong>" + TFormatCurrencyOnly(tmpPaymentCharge, objPriCurrency) + "</strong>";
					if(document.getElementById("elemPaymentTax")) document.getElementById("elemPaymentTax").innerHTML = "<strong>" + TFormatCurrencyOnly(Math.abs(tmpTemporaryTax + tmpFreightChargeTax + tmpPaymentChargeTax), objPriCurrency) + "</strong>";
					if(document.getElementById("elemPaymentTotal")) document.getElementById("elemPaymentTotal").innerHTML = "<strong>" + TFormatCurrencyOnly(tmpTotal, objPriCurrency) + "</strong>";
					if(document.getElementById("elemPaymentTotalAlt")) document.getElementById("elemPaymentTotalAlt").innerHTML = "<strong>" + TFormatCurrencyOnly(tmpTotal, objSecCurrency) + "</strong>";
					};
				};
			return(result);
			};
		if(!isOrderform) var myColspan=6
		else var myColspan=7;
		return "<tr><td colspan=\"" + myColspan + "\">Ihr Bestellschein ist leer...</td></tr>";
		};
//
function reload(){
	xmlConfig.cartSubTotal = 0;
	safeData();
	location.href="orderform.php";
	};
// 12065
	function delShoppingCart(){
		var msg = "Sind Sie sicher, dass Sie Ihren Warenkorb löschen möchten?";
		var tmpChildNodes;
		if(confirm(msg)){
			tmpChildNodes = new Array();
			for(var i=0; i<xmlOHeader.childNodes.length; i++){
				if(xmlOHeader.childNodes[i].clsObjName!="OrderBody"){
					 tmpChildNodes[tmpChildNodes.length] = xmlOHeader.childNodes[i];
					 };
				};
			xmlOHeader.childNodes = tmpChildNodes;
			reload();
			};
		};
// 12067
	function redirectCheckOut(){
		if(boolDisplTaxIncl) var myMinvalue = xmlOHeader.TotalPriceGrossLC
		else var myMinvalue = xmlOHeader.TotalPriceNetLC;
		if(Entry.length>0&&parseFloat(myMinvalue)>=parseFloat(minOrderValue)){
			updShoppingCart(true);
			safeData();
			};
		if(!(parseFloat(myMinvalue)>=parseFloat(minOrderValue))){
//			alert("Der Mindestbestellwert wurde unterschritten. Der Mindestbestellwert beträgt "
//				+ TFormatCurrency(minOrderValue,objPriCurrency));
			alert ("Upps.. Fehler im System :(\nWir müssen Sie bitten Ihren Bestellvorgang nochmals durchzuführen.\nBitte drücken Sie auf jeder Seite welche Sie aufrufen und VOR Eingabe Ihrer Daten die Taste F5 (Seite aktualisieren).\nDamit ist gewährleistet das Sie wirklich die aktuellsten Daten von unserem System laden.\nBitte Entschuldigen Sie diese Meldung.\nAber auch ein Computersystem ist nicht immer unfehlbar ;-)");
			};
		};
// 12070
	var Entry = new Array();
// 12110
	setupShoppingCartEntries();
// 12120
	xmlConfig.getFirstItem("SearchEngine").mode = 0;
// 12140
	var minOrderMsg = "Die Mindestbestellmenge wurde unterschritten. Die Mindestbestellmenge wird jetzt angepasst.";
// 12140
function callpage(address, defValues, NavIndex){
	xmlConfig.getFirstItem("QueryStringData").putValue(defValues);
	xmlConfig.navIndex = NavIndex.toString();
	safeData();
	location.href = address;
	};
//
function setupGlobalDiscounts(TotalValue){
var tmpCounter = -1;
var tmpDiscountValue = 0;
	if(globalDiscountAvail){
		while(TotalValue >= globalDiscountAmount[tmpCounter+1] && tmpCounter+1 < globalDiscountAmount.length){
			tmpDiscountValue = globalDiscountValue[tmpCounter+1];
			tmpCounter++;
			};
		};
	return(tmpCounter);
	};
//
function refreshOnEnter(){
	if(window.event.keyCode==13){
		updShoppingCart();
		};
	};
