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="pchase_custinfo.htm";
		}
	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&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&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(){
	safeData();
	location.href="orderform.htm";
	};
// 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));
			};
		};
// 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();
		};
	};