// ********************************************************* //
// Application vars                                          //
// ********************************************************* //

// Var
var isCatalogELoaded     = false,
    Items                = new Array(),
    ShipCost             = 0,
    OrderItems           = new String(""),
    OrderPayMethod       = new String(""),
    OrderWindow,
    Ship_VAT             = new Array(),
    PayMethod_VAT        = new Array(),
    Discounts            = new Array();
    ShipweightPrices     = new Array();
// Const
var SecCurrRate          = StringToFloat('1'),
    SecCurrName          = 'Unknown currency',
    bgColorDark          = '#000000',
    bgColorLight         = '#FFFFFF',
    EncOrderSeparator    = '<~>',            // Encoded Order Separator
    CGIScriptAddress     = 'http://www.mijn-webwinkel.com/cgi-local/sendorder.cgi',
    OrderID              =  new Date(),
    Decimals             =  2,

    // Buttons text
    txtBack              = '&lt;&lt; Terug',
    txtOrder             = 'Bestellen &gt;&gt;',
    txtCancelOrder       = 'Bestelling annuleren',
    txtSendOrder         = 'Bestelling verzenden',
    txtCalculate         = 'Bereken',
    // Text text
    txtSubTotal          = 'Subtotaal',
    txtDelivery          = 'Verzending',
    txtWayOfDelivery     = 'Verzendkosten',
    txtWayOfPayment      = 'Betalingsconditie',
    txtVAT               = 'BTW',
    txtVATTotal          = 'BTW totaal',
    txtTotalIncVAT       = 'Totaal exclusief. BTW',
    txtData              = 'Gegevens',
    txtMessage           = 'Bericht',
    txtOrderFor          = 'Bestelling voor',
    txtWebShopName       = 'FUN BALLOONS',
    txtOrderedOn         = 'Besteld op',
    txtAOrder            = 'Bestelling',
    txtConfirmation      = 'Bevestiging',
    txtNone              = 'Geen',
    txtSendOrderToEMail  = 'info@funballoon.info',
    txtPayMethodCost     = 'Kosten van betaling',
    txtPayMethodInfo     = 'Informatie bij betaling',
    txtDeliveryAddress   = 'Afleveradres',
    txtCommon            = 'Algemeen',
    txtRegisteredCustomer = 'Geregistreerde klant',
    // Field text
    txtMr                = 'De Heer',
    txtMrs               = 'Mevrouw',
    txtFirstName         = 'Voornaam',
    txtLastName          = 'Naam',
    txtCompany           = 'Bedrijf',
    txtCompanyNr         = 'Klantcode',
    txtCompanyPassword   = 'Wachtwoord',
    txtStreetAndNr       = 'Straat/Nr',
    txtZipcodeTown       = 'Postcode/Plaats',
    txtZipcode           = 'Postcode',
    txtTown              = 'Plaats',
    txtCountry           = 'Land',
    txtPhone             = 'Telefoon',
    txtEMail             = 'E-mail',
    txtRemarks           = 'Opmerkingen',
    txtName              = 'Naam',
    txtWantToReceiveNewsletter = 'Ik ontvang graag uw nieuwsbrief',
    txtVATnr             = 'BTW-nummer';


// Object
var oCustomer            = new Customer('','','','','','','','','','','','','','','','','','',0,'',0,0,'',0,'','','',''),
    oOrder               = new Order(0,'',0,'','','','','','','','',0,0);

// Discount

// ShipweightRange

    ShipweightPrices[0] = new shipweightPrice(0);
    ShipweightPrices[1] = new shipweightPrice(0);
    ShipweightPrices[2] = new shipweightPrice(0);
    ShipweightPrices[3] = new shipweightPrice(0);
    ShipweightPrices[4] = new shipweightPrice(0);
    ShipweightPrices[5] = new shipweightPrice(0);
    ShipweightPrices[6] = new shipweightPrice(0);
    ShipweightPrices[7] = new shipweightPrice(0);
    ShipweightPrices[8] = new shipweightPrice(0);
    ShipweightPrices[9] = new shipweightPrice(0);
    ShipweightPrices[10] = new shipweightPrice(0);
    ShipweightPrices[11] = new shipweightPrice(0);
    ShipweightPrices[12] = new shipweightPrice(0);


// Array
var aVATItems = new Array();

    aVATItems[aVATItems.length] = new VAT(1,'BTW','19',0);
    aVATItems[aVATItems.length] = new VAT(2,'geen BTW','0',0);
    aVATItems[aVATItems.length] = new VAT(3,'BTW','22',0);


// ********************************************************* //
// Common functions                                          //
// ********************************************************* //

function showInvFieldMessage(message) {
  alert(message);
  inptField.focus();
  inptField.select();
  return false;
}

function validMailString(mailString) {
  for (var i = 0; i < mailString.length; i++) {
    var ch                   = mailString.substring(i, i + 1);
    if (ch != "." && ch != "_" && ch != "-") {
      if (ch < "0" || ch > "z") {
        return false;
      } else if ((ch > "9" && ch < "A") || (ch > "Z" && ch < "a")) {
        return false;
      }
    }
  }

  return true;
}

function validateField(frame, form, field, method, fielddesc) {
  inptField              = eval("window." + frame.name + ".document." + form.name + "." + field.name);
  inputFieldName         = fielddesc;

  if (method == "isNotEmpty") {
    if (inptField.value == "" || inptField.value == null) {
      return showInvFieldMessage("Het veld '" + inputFieldName + "' moet ingevuld worden!");
      
      
      
      

      return false;
    }
  } else if  (method == "isValidEmail") {
    var email                  = inptField.value;
    if (email == null || email == "") return true;
    var atPos                  = email.indexOf('@');
    if (atPos < 0) return showInvFieldMessage("Ongeldig e-mailadres!");
    var username               = email.substring(0,atPos).toLowerCase();
    var hostname               = email.substring(atPos+1,email.length).toLowerCase();
    if (!validMailString(username))
      return showInvFieldMessage("Ongeldig e-mailadres!");
    if (!validMailString(hostname))
      return showInvFieldMessage("Ongeldig e-mailadres!");
    if (hostname.indexOf('.') < 0)
      return showInvFieldMessage("Ongeldig e-mailadres!");
  }
  return true;
}

function StringToFloat(str) {
  var s                      = new String("");

  if (str.indexOf(",") >= 0) {
    s = str.substring(0, str.indexOf(",")) + "." + str.substring(str.indexOf(",")+1, str.length);
  }
  else {
    s = str;
  }
  return(parseFloat(s));
}

function checkNum(str) {
  if (str == "") {
    alert("Voer a.u.b. een getal in.");
    
    
    
    
    return false;
  }
  for (var i = 0; i < str.length; i++) {
    var ch                   = str.substring(i, i + 1);
    if (ch < "0" || ch > "9") {
      alert("Voer a.u.b. een getal in.");
      
      
      
      
      return false;
    }
  }
  return true;
}

function convDec(str) {
  var strtmp = str * 100;
  var s = "" + Math.round(strtmp);
  if (s.length < (Decimals+1)) {
    for (var i = 0; i = ((Decimals+1)-s.length); i++) {
      s = "0"+s;
    }
  }
  if ("00" == "") {
    return(s);
  } else {
    return(s.substring(0, s.length-Decimals) + "," + s.substring(s.length-Decimals, s.length));
  }
}

// ********************************************************* //
// Application functions                                     //
// ********************************************************* //

function discount(discountType, ranges) {
  this.discountType = discountType;
  this.ranges       = new Array(ranges);
  return this;
}

function discountRange(min, max, perc) {
  this.min   = parseFloat(min);
  this.max   = parseFloat(max);
  this.perc  = parseFloat(perc);
  return this;
}

function discountPrice(price, discType, quantity) {
  var returnPrice = price;
  for (var i = 1; i < Discounts.length; i++){
    if (Discounts[i].discountType == discType) {
      for (var y = 1; y < Discounts[i].ranges.length; y++) {
        if ((quantity > Discounts[i].ranges[y].min-1) && (quantity < Discounts[i].ranges[y].max+1)) {
          returnPrice = (price/100) * (100-Discounts[i].ranges[y].perc);
          break;
        }
      }
    }
  }
  return returnPrice;
}

function shipweightPrice(ranges) {
  this.ranges       = new Array(ranges);
  return this;
}

function shipweightPriceRange(min, max, price) {
  this.min   = parseFloat(min);
  this.max   = parseFloat(max);
  this.price = parseFloat(price);
  return this;
}

function showCart(location) {
  window.frame_body.location = "N_cart.html";
}

function position(ArticleCode, OptionsText) {
  var j = -1;
  for (var i = 0; i < Items.length; i++) {
    if ((Items[i].ArticleCode == ArticleCode) && (Items[i].OptionsText == OptionsText)) {
      j = i;
    }
  }
  return j;
}

function VAT(VID, VName, VValue, VTotal) {
  this.VID                   = VID;
  this.VName                 = VName;
  this.VValue                = StringToFloat(VValue);
  this.VTotal                = VTotal;
}

function Item(ArticleCode, Name, Price, Quantity, VAT, DiscountType, OriginalPrice,
              Weight, ShipPrice, OptionsText, SecAmount, SecPrice) {
  this.ArticleCode           = ArticleCode;
  this.Name                  = Name;
  this.Price                 = Price;
  this.Quantity              = Quantity;
  this.VAT                   = VAT;
  this.DiscountType          = DiscountType;
  this.OriginalPrice         = OriginalPrice;
  this.Weight                = Weight;
  this.ShipPrice             = ShipPrice;
  this.OptionsText           = OptionsText;
  this.SecAmount             = SecAmount;
  this.SecPrice              = SecPrice;
}

function Customer(Salutation, FirstName, LastName,
                  Company, CompanyCode, CompanyPassword,
                  Street, ZipCode, Town, Country, Phone,
                  DelName, DelStreet, DelZipCode, DelTown,
                  DelCountry, DelPhone,
                  EMail,
                  ShipCost, ShipText, ShipVAT,
                  PayMethodCost, PayMethodText, PayMethodVAT,
                  Memo, Newsletter, PayMethodMemo, VATnr) {
  this.Salutation            = Salutation;
  this.FirstName             = FirstName;
  this.LastName              = LastName;
  this.Company               = Company;
  this.CompanyCode           = CompanyCode;
  this.CompanyPassword       = CompanyPassword;
  this.Street                = Street;
  this.ZipCode               = ZipCode;
  this.Town                  = Town;
  this.Country               = Country;
  this.Phone                 = Phone;
  this.DelName               = DelName;
  this.DelStreet             = DelStreet;
  this.DelZipCode            = DelZipCode;
  this.DelTown               = DelTown;
  this.DelCountry            = DelCountry;
  this.DelPhone              = DelPhone;
  this.EMail                 = EMail;
  this.ShipCost              = ShipCost;
  this.ShipText              = ShipText;
  this.ShipVAT               = ShipVAT;
  this.PayMethodCost         = PayMethodCost;
  this.PayMethodText         = PayMethodText;
  this.PayMethodVAT          = PayMethodVAT;
  this.Memo                  = Memo;
  this.NewsLetter            = Newsletter;
  this.PayMethodMemo         = PayMethodMemo;
  this.VATnr                 = VATnr;
}

function Order(PayMethodCost, PayMethodText, PayMethodVAT,
               ItemsReadable, Items, SubTotal, Delivery,
               Total, SecCurr, VAT, PayMethodshort, ShipType,
               PayMethodType) {
  this.PayMethodCost         = PayMethodCost;
  this.PayMethodText         = PayMethodText;
  this.PayMethodVAT          = PayMethodVAT;
  this.ItemsReadable         = ItemsReadable;
  this.Items                 = Items;
  this.SubTotal              = SubTotal;
  this.Delivery              = Delivery;
  this.Total                 = Total;
  this.SecCurr               = SecCurr;
  this.VAT                   = VAT;
  this.PayMethodshort        = PayMethodshort;
  this.ShipType              = ShipType;
  this.PayMethodType         = PayMethodType;
}

function addToCart(form) {
    var ArtArticleCode       = form.Articlecode.value,
        ArtName              = form.Name.value,
        ArtPrice             = StringToFloat(form.Price.value),
        ArtVAT               = form.VAT.value,
        ArtQuantity          = parseInt(form.Quantity.value,10),
        ArtDiscountType      = form.DiscountType.value,
        ArtWeight            = StringToFloat(form.Weight.value),
        ArtShipPrice         = StringToFloat(form.TransportPrice.value),
        ArtInOrder           = 0,
        ArtOptionsText       = new String("");

    if (typeof(form.SecAmount)!= 'undefined' && form.SecAmount != null) {
      ArtSecAmount           = StringToFloat(form.SecAmount.value);
    } else {
      ArtSecAmount           = 0;
    }
    if (typeof(form.SecPrice)!= 'undefined' && form.SecAmount != null) {
      ArtSecPrice            = StringToFloat(form.SecPrice.value);
    } else {
      ArtSecPrice            = 0;
    }

    // Article option 1
    if (form.Opt1a.value != '') {
      if (form.Opt1b.selectedIndex != 0) {
        ArtOptionsText  += ' (' + form.Opt1a.value;
        ArtOptionsText  += ': ' + form.Opt1b.options[form.Opt1b.selectedIndex].text+')';
        ArtPrice        += StringToFloat(form.Opt1b.options[form.Opt1b.selectedIndex].value);
      }
    }
    // Article option 2
    if (form.Opt2a.value != '') {
      if (form.Opt2b.selectedIndex != 0) {
        ArtOptionsText  += ' (' + form.Opt2a.value;
        ArtOptionsText  += ': ' + form.Opt2b.options[form.Opt2b.selectedIndex].text+')';
        ArtPrice    += StringToFloat(form.Opt2b.options[form.Opt2b.selectedIndex].value);
      }
    }

    ArtName += ArtOptionsText;
    for (var i=0; i<Items.length; i++) {
      if ((Items[i].ArticleCode == ArtArticleCode) && (Items[i].Name == ArtName)) {
        Items[i].Quantity += ArtQuantity;
        if (ArtSecAmount == 0 || Items[i].Quantity < ArtSecAmount) {
          Items[i].Price     = discountPrice(Items[i].OriginalPrice, Items[i].DiscountType, Items[i].Quantity);
        } else {
          Items[i].Price     = discountPrice(Items[i].SecPrice, Items[i].DiscountType, Items[i].Quantity);
        }
        ArtInOrder         = 1;
      }
    }
    if (ArtInOrder == 0) {
      Items[Items.length] = new Item(ArtArticleCode,ArtName,discountPrice(ArtPrice, ArtDiscountType, ArtQuantity),ArtQuantity,ArtVAT,
                                     ArtDiscountType,ArtPrice,ArtWeight,ArtShipPrice, ArtOptionsText,
                                     ArtSecAmount, ArtSecPrice);
    }
}

function printSalutation() {
  var Text                   = new String("");
  Text = oCustomer.Salutation +'&nbsp;' + oCustomer.FirstName +'&nbsp;' + oCustomer.LastName + ',';
  return Text;
}

function deleteFromCart(ArticleCode, OptionsText) {
  var pos                    = position(ArticleCode, OptionsText);
  Items[pos].Quantity = 0;
  window.frame_body.location = "N_cart.html";
}

function emptyCart() {
  for (var i = 0; i < Items.length; i++) {
    Items[i].Quantity = 0;
  }
  window.frame_body.location = 'N_cart_step4.html';
  return true;
}

function updateCart(form) {
  for (var posArtArticleCode = 0; posArtArticleCode < form.elements.length-1;  posArtArticleCode += 3) {
    var posArtOptionsText    = posArtArticleCode + 1,
        posArtQuantity       = posArtArticleCode + 2,
        ArtArticleCode       = form.elements[posArtArticleCode].value,
        ArtOptionsText       = form.elements[posArtOptionsText].value,
        ArtQuantity          = parseInt(form.elements[posArtQuantity].value,10),
        pos                  = position(ArtArticleCode, ArtOptionsText);
    // Article allready in order
    if (pos >= 0 ) {
      Items[pos].Quantity = ArtQuantity;
      if (ArtSecAmount == 0 || Items[pos].Quantity < ArtSecAmount) {
        Items[pos].Price     = discountPrice(Items[pos].OriginalPrice, Items[pos].DiscountType, Items[pos].Quantity);
      } else {
        Items[pos].Price     = discountPrice(Items[pos].SecPrice, Items[pos].DiscountType, Items[pos].Quantity);
      }
    }
  }
  window.frame_body.location = "N_cart.html";
}

function cancelOrder() {
  if (document.location.protocol == 'https:') {
    self.location = '';
  } else {
    for (var i = 0; i < Items.length; i++) {
      Items[i].Quantity = 0;
    }
    window.frame_body.location = 'N_home.html';
  }
  alert("Uw winkelwagen is leeggemaakt!");
}

function showCartItems() {
  var Text                   = new String(""),
      SubTotal               = 0,
      Total                  = 0;
  for (var i=0; i<Items.length; i++) {
    if (Items[i].Quantity > 0) {
      SubTotal = Items[i].Quantity * Items[i].Price;
      Total += SubTotal;
      Text  += '<TR>'+
               '  <td width="15" class="delete">'+
               '    <a href="javascript:parent.deleteFromCart(\'' + Items[i].ArticleCode + '\',\''+Items[i].OptionsText+'\')"><img src="delete.gif" bOrder="0" alt="Verwijderen" align="middle"></a>'+
               '  </td>'+
               '  <td valign="middle" align="right" class="waarden">'+
               '    <input type="hidden" name="ArticleCode" value="' + Items[i].ArticleCode + '" >'+
               '    <input type="hidden" name="OptionsText" value="' + Items[i].OptionsText + '" >'+
               '    <input type="text" name="quantity" VALUE="' + Items[i].Quantity + '" class="textField" style="width:50px;" maxlength="10" onChange="if (!parent.checkNum(this.value)) {this.focus(); this.select()}">'+
               '  </td>'+
               '  <td valign="middle" align="right" class="waarden" colspan="3">'+
               '    ' + Items[i].Name +
               '  </td>'+
               '  <td align="right" valign="middle" class="waarden">'+
               '    ' + convDec(Items[i].Price) +
               '  </td>'+
               '  <td align="right" valign="middle" class="waarden">'+
               '    ' + convDec(SubTotal) +
               '  </TD>'+
               '</TR>';
    }
  }
  var SecCurrTotal           = Total / SecCurrRate;
  Text += '<tr valign="baseline">'+
          '  <td height="40"></td>'+
          '  <td valign="middle" align="center" height="40" style="padding-left:10px;">'+
          '    <form><INPUT TYPE="button" class="button" VALUE="'+ txtCalculate +'" onClick="parent.updateCart(this.form)"></form>'+
          '  </td>'+
          '  <td colspan="5" height="40"></td>'+
          '</tr>'+
          '<tr valign="baseline">'+
          '  <td></td>'+
          '  <td></td>'+
          '  <td></td>'+
          '  <td></td>'+
          '  <td colspan="2" align="right" class="benamingen"><b>'+txtSubTotal+'</b></td>'+
          '  <td align="right" class="benamingen"><b>' + convDec(Total) + '</b></td>'+
          
          '</tr>';
  return Text;
}

function cart_Step1(form) {
   // NONE
    oCustomer.PayMethodCost = form.PayMethod.options[form.PayMethod.selectedIndex].value;
    oCustomer.PayMethodText = form.PayMethod.options[form.PayMethod.selectedIndex].text;
    oCustomer.PayMethodVAT  = PayMethod_VAT[form.PayMethod.selectedIndex];

    oOrder.PayMethodType    = form.PayMethod.selectedIndex;
  

  oCustomer.ShipCost = form.Ship.options[form.Ship.selectedIndex].value;
  oCustomer.ShipText = form.Ship.options[form.Ship.selectedIndex].text;
  oCustomer.ShipVAT  = Ship_VAT[form.Ship.selectedIndex];

  oOrder.ShipType    = form.Ship.selectedIndex;

  window.frame_body.location = 'N_cart_step2.html';
}

function cart_Step2(form) {
  for (var i=0; i<form.Salutation.length; i++) {
    if (form.Salutation[i].checked) {oCustomer.Salutation = form.Salutation[i].value;}
  }
  oCustomer.FirstName = form.FirstName.value;
  oCustomer.LastName = form.LastName.value;
  oCustomer.Company = form.Company.value;
  oCustomer.CompanyCode = form.CompanyCode.value;
  oCustomer.CompanyPassword = form.CompanyPassword.value;
  oCustomer.Street = form.Street.value;
  oCustomer.ZipCode = form.ZipCode.value;
  oCustomer.Town = form.Town.value;
  oCustomer.Country = form.Country.value;
  oCustomer.Phone = form.Phone.value;
  oCustomer.DelName = form.DelName.value;
  oCustomer.DelStreet = form.DelStreet.value;
  oCustomer.DelZipCode = form.DelZipCode.value;
  oCustomer.DelTown = form.DelTown.value;
  oCustomer.DelCountry = form.DelCountry.value;
  oCustomer.DelPhone = form.DelPhone.value;
  oCustomer.EMail = form.EMail.value;
  oCustomer.Memo = form.Memo.value;
  
  
  oCustomer.Newsletter = false;
  
  
  oCustomer.VATnr = form.VATnr.value;
  
  
   // NONE
    if (oOrder.PayMethodType == 0) {
    oCustomer.PayMethodMemo = '' 
  }

  
  window.frame_body.location = 'N_cart_step3.html';
}

function showItemsInCart() {
  var Text                   = new String(""),
      ShipCost               = StringToFloat(oCustomer.ShipCost),
      PayMethodCost          = 0,
       // NONE
        PayMethodCost        = StringToFloat(oCustomer.PayMethodCost),
      
      SubTotal               = 0,
      Total                  = 0,
      TotalWeight            = 0,
      TotalShipPrice         = 0;
  oOrder.Items = '';
  oOrder.ItemsReadable = '';
  for (var i=0; i<aVATItems.length; i++) {aVATItems[i].VTotal = 0}
  for (var i=0; i<Items.length; i++) {
    if (Items[i].Quantity > 0) {
      SubTotal = Items[i].Quantity * Items[i].Price;
      if (Items[i].VAT > 0) {
        for (var j=0; j<aVATItems.length; j++) {
          if (aVATItems[j].VID == Items[i].VAT) {
            aVATItems[j].VTotal += SubTotal - (SubTotal / (1+(aVATItems[j].VValue / 100)));
          }
        }
      }
      Total += SubTotal;
      TotalWeight += Items[i].Quantity * Items[i].Weight;
      TotalShipPrice += Items[i].Quantity * Items[i].ShipPrice;
      Text += '<tr>'+
              '  <td valign="middle" align="center" class="waarden">'+
              '    '+ Items[i].Quantity +
              '  </td>'+
              '  <td valign="middle" colspan="3" class="waarden">'+
              '    '+ Items[i].Name +
              '  </td>'+
              '  <td valign="middle" align="right" class="waarden">'+
              '    ' + convDec(Items[i].Price) +
              '  </td>'+
              '  <td valign="middle" align="right" class="waarden">'+
              '    ' + convDec(SubTotal) +
              '  </td>'+
              '</tr>';
      if (oOrder.Items != '') {oOrder.Items += '~';}
      if (oOrder.ItemsReadable != '') {oOrder.ItemsReadable += '\n';}
      oOrder.ItemsReadable += Items[i].Quantity + ' x ' + Items[i].Name + ': ' + convDec(Items[i].Price) + ' = ' + convDec(SubTotal);
      oOrder.Items += Items[i].Quantity + '|' + Items[i].ArticleCode + '|' + convDec(Items[i].Price) + '|' + Items[i].OptionsText;
    }
  }
  oOrder.SubTotal = convDec(Total);
  // Sending
  ShipCost += TotalShipPrice;
  for (var i = 1; i < ShipweightPrices[oOrder.ShipType].ranges.length; i++) {
    
    if ((TotalWeight > ShipweightPrices[oOrder.ShipType].ranges[i].min-1) && (TotalWeight < ShipweightPrices[oOrder.ShipType].ranges[i].max+1)) {
    
    
      ShipCost += ShipweightPrices[oOrder.ShipType].ranges[i].price;
      break;
    }
  }
  if (oCustomer.ShipVAT > 0) {
    if (ShipCost > 0) {
      for (var j=0; j<aVATItems.length; j++) {
        if (aVATItems[j].VID == oCustomer.ShipVAT) {
          aVATItems[j].VTotal += ShipCost - (ShipCost / (1+(aVATItems[j].VValue / 100)));
          break;
        }
      }
    }
  }
  oOrder.Delivery = convDec(ShipCost);

   // NONE
    // PayMethod
    if (oCustomer.PayMethodVAT > 0) {
      if (PayMethodCost > 0) {
        for (var j=0; j<aVATItems.length; j++) {
          if (aVATItems[j].VID == oCustomer.PayMethodVAT) {
            aVATItems[j].VTotal += PayMethodCost - (PayMethodCost / (1+(aVATItems[j].VValue / 100)));
          }
        }
      }
    }
  

  oOrder.Total = convDec(Total+ShipCost+PayMethodCost);
  // Total amount in SecCurr
  var SecCurrTotal          = (Total+ShipCost+PayMethodCost) / SecCurrRate;
  Text += '<tr>'+
          '  <td colspan="5" class="subtotaal"></td>'+
          '  <td class="subtotaal"></td>'+
          '</tr>'+
          '<tr>'+
          '  <td class="subtotaal"></td>'+
          '  <td class="subtotaal"></td>'+
          '  <td  class="subtotaal" valign="top" align="right" colspan="3">'+
          '    '+ txtSubTotal +
          '  </td>'+
          '  <td class="subtotaal" valign="top" align="right">'+
          '    ' + convDec(Total) +
          '  </td>'+
          '</tr>'+
          '<tr>'+
          '  <td class="subtotaal"></td>'+
          '  <td class="subtotaal"></td>'+
          '  <td class="subtotaal" valign="top" align="right" colspan="3">'+
          '    '+ txtDelivery +
          '  </td>'+
          '  <td class="subtotaal" valign="top" align="right">'+
          '    ' + convDec(ShipCost) +
          '  </td>'+
          '</tr>'+
   // NONE
          '<tr>'+
          '  <td class="subtotaal"></td>'+
          '  <td class="subtotaal"></td>'+
          '  <td class="subtotaal" valign="top" align="right" colspan="3">'+
          '    '+ txtPayMethodCost +
          '  </td>'+
          '  <td class="subtotaal" valign="top" align="right">'+
          '    ' + convDec(PayMethodCost) +
          '  </td>'+
          '</tr>'+
  
          '<tr>'+
          '  <td class="subtotaal" colspan="5"></td>'+
          '  <td class="subtotaal"></td>'+
          '</tr>'+
          '<tr>'+
          '  <td class="subtotaal"></td>'+
          '  <td class="subtotaal"></td>'+
          '  <td class="subtotaal" valign="top" align="right" colspan="3">'+
          '    <b>'+ txtTotalIncVAT +'</b>'+
          '  </td>'+
          '  <td class="subtotaal" valign="top" align="right">'+
          '    <b>' + convDec(Total+ShipCost+PayMethodCost) + '</b>'+
          '  </td>'+
          '</tr>'+
          
          '<tr>'+
          '  <td colspan="5" class="subtotaal"></td>'+
          '  <td class="subtotaal"></td>'+
          '</tr>';
  oOrder.SecCurr = convDec(SecCurrTotal);
  // VAT
  oOrder.VAT = '';
  var VATTotal               = 0;
  for (var j=0; j<aVATItems.length; j++) {
    if (aVATItems[j].VID > 0) {
      if (aVATItems[j].VTotal > 0) {
        Text += '<tr>'+
                '  <td class="subtotaal"></td>'+
                '  <td class="subtotaal"></td>'+
                '  <td class="subtotaal" valign="top" align="right" colspan="3">'+
                '    '+txtVAT+' (' + aVATItems[j].VValue + '%)' +
                '  </td>'+
                '  <td class="subtotaal" valign="top" align="right">'+
                '    ' + convDec(aVATItems[j].VTotal) +
                '  </td>'+
                '</tr>';
        VATTotal += aVATItems[j].VTotal;
        if (oOrder.VAT != '') {oOrder.VAT += '\n';}
        oOrder.VAT += aVATItems[j].VName + ' ' + convDec(aVATItems[j].VTotal);
      }
    }
  }
  // Total VAT
  Text += '<tr>'+
          '  <td class="subtotaal"></td>'+
          '  <td class="subtotaal"></td>'+
          '  <td class="subtotaal" valign="top" align="right" colspan="3">'+
          '    <b>' + txtVATTotal + '</b>'+
          '  </td>'+
          '  <td class="subtotaal" valign="top" align="right">'+
          '    <b>' + convDec(VATTotal) + '</b>'+
          '  </td>'+
          '</tr>';
  if (oOrder.VAT != '') {oOrder.VAT += '\n'+txtVATTotal+': ';}
  oOrder.VAT += convDec(VATTotal);
  return Text;
}

function showCartStep1Form() {
  var Text                   = new String("");

  // Way of delivery
  Text += '<tr>'+
          '  <td align="left" class="subtotaal"><b>'+txtWayOfDelivery+'</b></td>'+
          '</tr>'+
          '<tr>'+
          '  <td align="center" class="subtotaal">'+
          '    <select name="Ship" class="dropdown">';
  
  Ship_VAT[0] = 2;
  Text += '      <option value="8">1 Doos / Display (euro 8.00)</option>';
  Ship_VAT[1] = 2;
  Text += '      <option value="9">2 Dozen / Displays (euro 9.00)</option>';
  Ship_VAT[2] = 2;
  Text += '      <option value="10">3 Dozen / Displays (euro 10.00)</option>';
  Ship_VAT[3] = 2;
  Text += '      <option value="11">4 Dozen / Displays (euro 11.00)</option>';
  Ship_VAT[4] = 2;
  Text += '      <option value="12">5 Dozen / Displays (euro 12.00)</option>';
  Ship_VAT[5] = 2;
  Text += '      <option value="13">6 Dozen / Displays (euro 13.00)</option>';
  Ship_VAT[6] = 2;
  Text += '      <option value="14">7 Dozen / Displays (euro 14.00)</option>';
  Ship_VAT[7] = 2;
  Text += '      <option value="15">8 Dozen / Displays (euro 15.00)</option>';
  Ship_VAT[8] = 2;
  Text += '      <option value="16">9 Dozen / Displays (euro 16.00)</option>';
  Ship_VAT[9] = 2;
  Text += '      <option value="17">10 Dozen / Displays (euro 17.00)</option>';
  Ship_VAT[10] = 2;
  Text += '      <option value="75">36 Dozen / Displays (euro 75.00)</option>';
  Ship_VAT[11] = 2;
  Text += '      <option value="0">72 Dozen 1 Volle Pallet FRANCO LEVERING</option>';
  

  Text += '    </select>'+
          '  </td>'+
          '</tr>'+
          '<tr>'+
          '  <td>&nbsp;</td>'+
          '</tr>'+
  // Way of payment
   // NONE
            '<tr>'+
            '  <td align="left" class="subtotaal"><b>'+txtWayOfPayment+'</b></td>'+
            '</tr>'+
            '<tr>'+
            '  <td class="subtotaal" align="center">'+
            '    <select name="PayMethod" class="dropdown">';
    
    PayMethod_VAT[0] = 2;
    Text += '      <option value="0">Betaling binnen 7 dagen na factuurdatum.</option>';
    


    Text += '    </select>'+
            '  </td>'+
            '</tr>'+
  
          '<tr>'+
          '  <td>&nbsp;</td>'+
          '</tr>';

  return Text;
}

function showCartStep2Form() {
  var Text                   = new String("");

  Text += '<tr>'+
          '  <td valign="top" class="titleProducten" colspan="3"><img src="titlepijl.gif" width="10" height="20" alt="" border="0" align="absmiddle">'+ txtData +'</td>'+
          '</tr>'+
  
  
  // Empty Row
          '<tr valign="baseline">'+
          '  <td>&nbsp;</td>'+
          '  <td>&nbsp;</td>'+
          '  <td><input type="hidden" name="CompanyCode" value=""><input type="hidden" name="CompanyPassword" value=""></td>'+
          '</tr>'+
  
  // Common
          '<tr valign="baseline">'+
          '  <td></td>'+
          '  <td class="bodyTxtFormBeschrijving"><b>'+txtCommon+'</b></td>'+
          '  <td></td>'+
          '</tr>'+
  // Salutation
          '<tr valign="baseline">'+
          '  <td></td>'+
          '  <td></td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="radio" name="Salutation" value="'+ txtMr +'" checked="true"> '+ txtMr +
          '    <input type="radio" name="Salutation" value="'+ txtMrs +'"> '+ txtMrs +
          '  </td>'+
          '</tr>'+
  // FirstName
          '<tr valign="baseline">'+
          
          
          '  <td></td>'+
          
          '  <td class="bodyTxtFormBeschrijving">'+ txtFirstName +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="FirstName" class="textField" style="width:220px;" value="' + oCustomer.FirstName + '">'+
          '  </td>'+
          '</tr>'+
  // LastName
          '<tr>'+
          
          '  <td class="bodyTxt">*</td>'+
          
          
          '  <td class="bodyTxtFormBeschrijving">'+ txtLastName +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="LastName" class="textField" style="width:220px;" value="' + oCustomer.LastName + '">'+
          '  </td>'+
          '</tr>'+
  // Company
          '<tr>'+
          
          '  <td class="bodyTxt">*</td>'+
          
          
          '  <td class="bodyTxtFormBeschrijving">'+ txtCompany +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="Company" class="textField" style="width:220px;" value="' + oCustomer.Company + '">'+
          '  </td>'+
          '</tr>';
  // VATnr
  
  Text += '<tr>'+
          '  <td></td>'+
          '  <td class="bodyTxtFormBeschrijving">'+ txtVATnr +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="VATnr" class="textField" style="width:220px;" value="' + oCustomer.VATnr + '">'+
          '  </td>'+
          '</tr>';
  
  // Street
  Text += '<tr>'+
          
          '  <td class="bodyTxt">*</td>'+
          
          
          '  <td class="bodyTxtFormBeschrijving">'+ txtStreetAndNr +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="Street" class="textField" style="width:220px;" value="' + oCustomer.Street + '">'+
          '  </td>'+
          '</tr>'+
  // ZipCode
          '<tr>'+
          
          '  <td class="bodyTxt">*</td>'+
          
          
          '  <td class="bodyTxtFormBeschrijving">'+ txtZipcode +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="ZipCode" class="textField" style="width:220px;" maxlength="10" value="' + oCustomer.ZipCode + '">'+
          '  </td>'+
          '</tr>'+
  // Town
          '<tr>'+
          
          '  <td class="bodyTxt">*</td>'+
          
          
          '  <td class="bodyTxtFormBeschrijving">'+ txtTown +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="Town" class="textField" style="width:220px;" value="' + oCustomer.Town + '">'+
          '  </td>'+
          '</tr>'+
  // Country
          '<tr>'+
          
          '  <td class="bodyTxt">*</td>'+
          
          
          '  <td class="bodyTxtFormBeschrijving">'+ txtCountry +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="Country" class="textField" style="width:220px;" value="' + oCustomer.Country + '">'+
          '  </td>'+
          '</tr>'+
  // Phone
          '<tr>'+
          
          '  <td class="bodyTxt">*</td>'+
          
          
          '  <td class="bodyTxtFormBeschrijving">'+ txtPhone +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="Phone" class="textField" style="width:220px;" value="' + oCustomer.Phone + '">'+
          '  </td>'+
          '</tr>'+
  // E-Mail
          '<tr>'+
          
          '  <td class="bodyTxt">*</td>'+
          
          
          '  <td class="bodyTxtFormBeschrijving">'+ txtEMail +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="EMail" class="textField" style="width:220px;" value="' + oCustomer.EMail + '">'+
          '  </td>'+
          '</tr>'+
  // Empty Row
          '<tr valign="baseline">'+
          '  <td>&nbsp;</td>'+
          '  <td>&nbsp;</td>'+
          '  <td>&nbsp;</td>'+
          '</tr>'+
  // Delivery
          '<tr>'+
          '  <td></td>'+
          '  <td class="bodyTxtFormBeschrijving"><b>'+ txtDeliveryAddress +'</b></td>'+
          '  <td></td>'+
          '</tr>'+
  // Delivery Name
          '<tr>'+
          '  <td></td>'+
          '  <td class="bodyTxtFormBeschrijving">'+ txtName +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="DelName" class="textField" style="width:220px;" value="' + oCustomer.DelName + '">'+
          '  </td>'+
          '</tr>'+
  // Delivery Street
          '<tr>'+
          '  <td></td>'+
          '  <td class="bodyTxtFormBeschrijving">'+ txtStreetAndNr +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="DelStreet" class="textField" style="width:220px;" value="' + oCustomer.DelStreet + '">'+
          '  </td>'+
          '</tr>'+
  // Delivery ZipCode / Town
          '<tr>'+
          '  <td></td>'+
          '  <td class="bodyTxtFormBeschrijving">'+ txtZipcodeTown +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="DelZipCode" style="width:60px;" class="textField" maxlength="10" value="' + oCustomer.DelZipCode + '">'+
          '    <input type="text" name="DelTown" class="textField" style="width:150px;" value="' + oCustomer.DelTown + '">'+
          '  </td>'+
          '</tr>'+
  // Delivery Country
          '<tr>'+
          '  <td></td>'+
          '  <td class="bodyTxtFormBeschrijving">'+ txtCountry +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="DelCountry" class="textField" style="width:220px;" value="' + oCustomer.DelCountry + '">'+
          '  </td>'+
          '</tr>'+
  // Delivery Phone
          '<tr>'+
          '  <td></td>'+
          '  <td class="bodyTxtFormBeschrijving">'+ txtPhone +'</td>'+
          '  <td class="bodyTxtForm">'+
          '    <input type="text" name="DelPhone" class="textField" style="width:220px;" value="' + oCustomer.DelPhone + '">'+
          '  </td>'+
          '</tr>';
   // NONE
    
  
  // Empty Row
  Text += '<tr valign="baseline">'+
          '  <td>&nbsp;</td>'+
          '  <td>&nbsp;</td>'+
          '  <td>&nbsp;</td>'+
          '</tr>'+
  // Remarks
          '<tr>'+
          '  <td></td>'+
          '  <td class="bodyTxtFormBeschrijving"><b>'+ txtRemarks +'</b></td>'+
          '  <td></td>'+
          '</tr>'+
  // Memo
          '<tr>'+
          '  <td></td>'+
          '  <td></td>'+
          '  <td><textarea name="Memo" class="textField" style="width:220px;height:100px;" wrap="VIRTUAL">' + oCustomer.Memo + '</textarea></td>'+
          '</tr>';
  // Newsletter
  

  return Text;
}

function showCustomerData() {
  var Text                      = new String("");
  Text += '<table border="0" cellspacing="1" cellpadding="1">'+
  // Customer data
          '  <tr valign="top" align="left">'+
          '    <td valign="top" class="bodyTxt"><b>'+ txtData +'<b></td>'+
          '    <td class="bodyTxtForm"><p>'+
          oCustomer.Salutation + '&nbsp;'+oCustomer.FirstName + '&nbsp;' + oCustomer.LastName + '<br>';
  if (oCustomer.Company != '') {Text += oCustomer.Company + '<br>';}
  if (oCustomer.CompanyCode != '') {Text += '('+ txtCompanyNr +' ' + oCustomer.CompanyCode + ')<br>';}
  Text += oCustomer.Street + '<br>'+
          oCustomer.ZipCode + '&nbsp;' + oCustomer.Town+'<br><br>'+
          oCustomer.Country +'</p>'+
          '    </td>'+
          '  </tr>';
  // Phone
  if (oCustomer.Phone != '') {
    Text += '<tr><td align="left" class="bodyTxt"><b>'+ txtPhone +'<b></td><td class="bodyTxtForm">' + oCustomer.Phone + '</td></tr>';
  }
  // E-Mail
  if (oCustomer.EMail != '') {
    Text += '<tr><td align="left" class="bodyTxt"><b>'+ txtEMail +'<b></td><td class="bodyTxtForm">' + oCustomer.EMail + '</td></tr>';
  }
  Text += '<tr><td align="left" class="bodyTxt">&nbsp;</td><td class="bodyTxtForm">&nbsp;</td></tr>'+
  // Sending
          '  <tr>'+
          '    <td align="left" class="bodyTxt"><b>'+ txtWayOfDelivery +'<b></td>'+
          '    <td class="bodyTxtForm">' + oCustomer.ShipText + '</td>'+
          '  </tr>'+
          '  <tr>'+
          '    <td align="left" class="bodyTxt">&nbsp;</td>'+
          '    <td class="bodyTxtForm">&nbsp;</td>'+
          '  </tr>';
   // NONE
    // Paymethod
    Text += '  <tr>'+
            '    <td align="left" class="bodyTxt"><b>'+ txtWayOfPayment +'<b></td>'+
            '    <td class="bodyTxtForm">'+ oCustomer.PayMethodText +'</td>'+
            '</tr>';
    oOrder.PayMethodCost = oCustomer.PayMethodCost;
    oOrder.PayMethodText = oCustomer.PayMethodText;
    oOrder.PayMethodVAT = oCustomer.PayMethodVAT;
    oOrder.PayMethodshort = oCustomer.PayMethodText;
  

  // Memo
  if (oCustomer.Memo != '') {
    Text += '<tr><td align="left" valign="top" class="bodyTxt"><b>'+ txtRemarks +'<b></td><td class="bodyTxtForm">'+oCustomer.Memo+'</td></tr>';
  }
  Text += '</table>';
  return Text;
}

function printOrderButton() {
  var Text                   = new String("");
  Text += '<form name="form2" method="post">';
  Text += '  <input class="button" type="button" value="'+txtBack+'" onClick="history.back()">&nbsp;';
  Text += '  <input class="button" type="button" value="'+txtOrder+'" onClick="self.location=\'N_cart_step1.html\';">';
  Text += '</form>';
  return Text;
}

function printEmailBody(DateStr) {
  var ShipCost               = StringToFloat(oCustomer.ShipCost),
      Text                   = new String("");
  Text += '\n'+
          txtAOrder+' '+OrderID.valueOf()+'\n'+
          txtOrderFor+' '+txtWebShopName+' - '+txtOrderedOn+' '+DateStr + '\n'+
          '\n'+
          txtData+': \n'+
          '\n';
  if (oCustomer.Company != '') {Text += oCustomer.Company + '\n';}
  if (oCustomer.VATnr != '') {Text += oCustomer.VATnr + '\n';}
  Text += oCustomer.Salutation + ' '+oCustomer.FirstName + ' ' + oCustomer.LastName + '\n'+
          oCustomer.Street + '\n'+
          oCustomer.ZipCode + ' ' + oCustomer.Town + '\n'+
          oCustomer.Country + '\n'+
          '\n'+
          oCustomer.Phone + '\n'+
          oCustomer.EMail + '\n'+
          '\n'+
          oCustomer.DelName + '\n'+
          oCustomer.DelStreet + '\n'+
          oCustomer.DelZipCode + ' ' + oCustomer.DelTown + '\n'+
          oCustomer.DelCountry + '\n'+
          '\n'+
          oCustomer.DelPhone + '\n'+
          '\n'+'\n'+
          txtAOrder+':\n'+
          '\n'+
          oOrder.ItemsReadable + '\n';
  if (StringToFloat(oOrder.Delivery) > 0) Text += '1 x '+txtDelivery+': '+oOrder.Delivery+' = '+oOrder.Delivery+'\n';
   // NONE
  if (StringToFloat(oOrder.PayMethodCost) > 0) Text += '1 x '+txtPayMethodCost+': '+convDec(oOrder.PayMethodCost)+' = '+convDec(oOrder.PayMethodCost)+'\n';
  
  Text += '===============================\n'+
          txtTotalIncVAT + ':  ' + oOrder.Total +'\n'+
          '\n\n'+
          txtVAT + ':\n'+
          oOrder.VAT + '\n'+
          '\n'+
          '\n';

   // NONE
  if (oOrder.PayMethodText != '') Text += txtWayOfPayment+': '+oOrder.PayMethodText + '\n';
  
  

  Text += txtWayOfDelivery+': '+oCustomer.ShipText +'\n'+
          '\n'+
          txtRemarks+':\n';
  if (oCustomer.Memo == '') Text += txtNone
  else Text += oCustomer.Memo;
   // NONE
  if ('' == '') {
    if ((oCustomer.PayMethodMemo == '') || ((oCustomer.PayMethodMemo == 'undefined')))
      Text += '';
    else
      Text += '\n\n'+txtPayMethodInfo+':\n'+ oCustomer.PayMethodMemo;
  }
  
  

  Text += '\n\n';

  return Text;
}

function printEmailAttachment(DateStr) {
  var Text                   = new String("");

  Text += '<!DOCTYPE LV_ELECTRONIC_ORDER>\n'+
          '==== ENCODED ORDER - BEGIN ====\n'+
          'OV=1'+ EncOrderSeparator+                                // Order program Version
          'OSV=1'+ EncOrderSeparator+                               // Order program SubVersion
          'SN=' + txtWebShopName +EncOrderSeparator+                // ShopName
          'ID=' + OrderID.valueOf() +EncOrderSeparator+             // OrderID
          'DT=' + DateStr + EncOrderSeparator+                      // Date
          'ST=' + oCustomer.Salutation + EncOrderSeparator+         // Salutation
          'FN=' + oCustomer.FirstName + EncOrderSeparator+          // FirstName
          'LN=' + oCustomer.LastName + EncOrderSeparator+           // LastName
          'CP=' + oCustomer.Company + EncOrderSeparator+            // Company
          'VAT='+ oCustomer.VATnr + EncOrderSeparator+                // VATnr
          'CC=' + oCustomer.CompanyCode + EncOrderSeparator+        // CompanyCode
          'CW=' + oCustomer.CompanyPassword + EncOrderSeparator+    // CompanyPassword
          'SR=' + oCustomer.Street + EncOrderSeparator+             // Street
          'ZP=' + oCustomer.ZipCode + EncOrderSeparator+            // Zipcode
          'CT=' + oCustomer.Town + EncOrderSeparator+               // City
          'CO=' + oCustomer.Country + EncOrderSeparator+            // Country
          'PH=' + oCustomer.Phone + EncOrderSeparator+              // Phone
          'EM=' + oCustomer.EMail + EncOrderSeparator+              // EMail
          'NL=' + oCustomer.Newsletter + EncOrderSeparator+         // Newsletter
          'DLN=' + oCustomer.DelName + EncOrderSeparator+           // Delivery name
          'DLSR=' + oCustomer.DelStreet + EncOrderSeparator+        // Delivery street
          'DLZP=' + oCustomer.DelZipCode + EncOrderSeparator+       // Delivery zipcode
          'DLT=' + oCustomer.DelTown + EncOrderSeparator+           // Delivery town
          'DLCO=' + oCustomer.DelCountry + EncOrderSeparator+        // Delivery country
          'DLPH=' + oCustomer.DelPhone + EncOrderSeparator+         // Delivery phone
          'SHC=' + oCustomer.ShipCost + EncOrderSeparator+           // ShipCost
          'SHT=' + oCustomer.ShipText + EncOrderSeparator+          // ShipText
          'PMS=' + oOrder.PayMethodshort + EncOrderSeparator+       // PayMethodShort
          'PMT=' + oOrder.PayMethodText + EncOrderSeparator+             // PayMethodText
          'PMC=' + oOrder.PayMethodCost + EncOrderSeparator+             // PayMethodCost
          'OI=' + oOrder.Items + EncOrderSeparator+                 // OrderItems
          'OST=' + oOrder.SubTotal + EncOrderSeparator+             // SubTotal
          'OD=' + oOrder.Delivery + EncOrderSeparator+              // Delivery
          'OT=' + oOrder.Total + EncOrderSeparator+                 // Total
          '\n'+
          'MEMO=\n' + oCustomer.Memo +                              // Memo
          '\n';

   // NONE
  if ((oCustomer.PayMethodMemo == '') || ((oCustomer.PayMethodMemo == 'undefined')))
    Text += txtPayMethodInfo+':\n' + txtNone
  else
    Text += txtPayMethodInfo+':\n' + oCustomer.PayMethodMemo;
  
  

  Text += '\n'+
          '==== ENCODED ORDER - END ====';
  return Text;
}


function printEMail() {
  var Text                   = new String(""),
      EmailBody              = new String(""),
      att                    = new String(""),
      mailfrom               = new String(""),
      Now                    = new Date(),
      DateStr                = Now.getDate() + '.',
      year                   = Now.getYear();
  if (year < 2000) year += 1900;
  if ((Now.getMonth()+1) < 10) DateStr += '0' + (Now.getMonth()+1) + '.' + year
  else DateStr += (Now.getMonth()+1) + '.' + year;
  EmailBody  = printEmailBody(DateStr);
  Attachment = printEmailAttachment(DateStr);
  if (oCustomer.EMail != "") {mailfrom = oCustomer.EMail;} else {mailfrom = "Unknown";}

  Text += '<FORM METHOD="post" ACTION="" target="_top" id=form1 name=form1>'+
'<INPUT type="hidden" NAME="PSPID" value="">'+
'<INPUT type="hidden" NAME="orderID" VALUE="' +  OrderID.valueOf() + '">'+
'<INPUT type="hidden" NAME="amount" VALUE="' + (StringToFloat(oOrder.Total)*100) + '">'+
'<INPUT type="hidden" NAME="currency" VALUE="EUR">'+
'<INPUT type="hidden" NAME="language" VALUE="<LV_PAYMENTPROCESSOGONELANGUAGE/>">'+
'<!-- dynamic template page -->'+
'<INPUT type="hidden" NAME="TP" VALUE="http://www.funballoon.info/template_ogone.html">'+
'<!-- post-payment redirection -->'+
'<INPUT type="hidden" NAME="ACCEPTURL" VALUE="http://www.funballoon.info/N_frame.html">'+
'<INPUT type="hidden" NAME="declineurl" VALUE="http://www.funballoon.info/N_frame.html">'+
'<INPUT type="hidden" NAME="exceptionurl" VALUE="http://www.funballoon.info/N_frame.html">'+
'<INPUT type="hidden" NAME="cancelurl" VALUE="http://www.funballoon.info/N_frame.html">'+
'</form>';

  Text += '<form method="post" action="'+CGIScriptAddress+'" '+
   // NONE
          '>'+
  
  
          '<input type="hidden" name="From" value="' + mailfrom + '">'+
          '<input type="hidden" name="To" value="'+txtSendOrderToEMail+'">'+
          '<input type="hidden" name="Subject" value="'+txtAOrder+' - '+txtWebShopName+'">'+
          '<input type="hidden" name="SubjectMailClient" value="'+txtConfirmation+' - '+txtAOrder+' - '+txtWebShopName+'">'+
          '<input type="hidden" name="Message" value="' + EmailBody + '">'+
          '<input type="hidden" name="Attachment" value="' +  Attachment + '">'+
          '<input type="hidden" name="OrderID" value="' +  OrderID.valueOf() + '">'+
          '<input type="hidden" name="redirect" value="http://www.funballoon.info/N_cart_step4.html">'+
          '<p align="center">'+
          '  <input class="button" type="button" value="'+ txtBack +'" onClick="history.back()">&nbsp;'+
          '  <input class="button" type="button" value="'+ txtCancelOrder +'" onClick="parent.cancelOrder()">&nbsp;'+
          '  <input class="button" type="submit" value="'+ txtSendOrder +'">'+
          '</p>'+
          '</form>';
  OrderID =  new Date();

  return Text;
}

isCatalogELoaded = true;

