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="16" height="17" alt="Delete" 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>'
                                        + 'Sum before Discount&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>'
                                        + 'Global Discount&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>'
                                + 'Subtotal&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>'
                                        + 'Shipping Costs&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>'
                                        + '&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>'
                                                + 'Included Tax&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>'
                                                + 'Tax&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>'
                                        + 'Final Amount&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>'
                                                + 'Alternative&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>'
                                                + 'Alternative&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 + "\">Your order form is empty...</td></tr>";
                };
//
function reload(){
        safeData();
        location.href="orderform.htm";
        };
// 12065
        function delShoppingCart(){
                var msg = "Are you sure you want to delete your shopping basket?";
                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("Below minimum order value. The minimum order value is "
                                + TFormatCurrency(minOrderValue,objPriCurrency));
                        };
                };
// 12070
        var Entry = new Array();
// 12110
        setupShoppingCartEntries();
// 12120
        xmlConfig.getFirstItem("SearchEngine").mode = 0;
// 12140
        var minOrderMsg = "Below minimum order amount. The minimum order amount is now being adjusted.";
// 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();
                };
        };
