<!-- Copyright 1999 Roman Krzyzanowski / intermedien GmbH, Nuernberg -->

// Fichier validation modifié et crypté [ http://www.traneco.com - Juin 2005 ]
var revision = "1.26"; // version interne non modifiable
var client = "VBP-UK-Full"; // tracking client

/////////////////////////
function readCookie(){
extraitCookie = unescape(document.cookie).split("#$@"); // c'est un tableau !!
extraitCookie[0]= extraitCookie[0].substring(7,document.cookie.indexOf("#$@")); // pour enlever le nom du Cookie
return
}

function createCookie(){
infosclient=Kunde.anrede+"#$@"+Kunde.vorname+"#$@"+Kunde.nachname+"#$@"+Kunde.zusatz+"#$@"+Kunde.firma+"#$@"+Kunde.strasse+"#$@"+Kunde.plz+"#$@"+Kunde.ort+"#$@"+Kunde.land+"#$@"+Kunde.telefon+"#$@"+Kunde.email+"#$@"+Kunde.saveCookie;
manageCookie("VBPlus",infosclient,joursCookie);
if(Kunde.saveCookie=="yes" && messageCookie=="oui"){
alert("The following data will be saved on YOUR computer\nduring "+joursCookie+" days (our website does not keep any data) :\n\n"+Kunde.anrede+" "+Kunde.nachname+" "+Kunde.vorname+"\n"+Kunde.zusatz+" "+Kunde.firma+"\n\n"+Kunde.strasse+"\n"+Kunde.plz+" "+Kunde.ort+"\n"+Kunde.land+"\n\n"+Kunde.telefon+"\n"+Kunde.email+"\n\nAfter this period, all these data will be automatically\nerased of your computer.");}
return
}

function destroyCookie(){
infosclient="";
manageCookie("VBPlus",infosclient,0);
return
}

function manageCookie(nom,valeur,jours){
var expdate = new Date () ; 
if(jours>0){expdate.setTime (expdate.getTime() + ( jours * 24 * 3600000));}else{expdate.setTime (expdate.getTime() - (1000));}
document.cookie = nom + "=" + valeur + "; expires=" + expdate.toGMTString() ; 
return
}

function cleanup(chaine){
for (var i = 0; i < caravant.length; i++) {
eval('chaine=chaine.replace(/'+caravant.substr(i,1)+'/g,"'+carapres.substr(i,1)+'");')}
return(chaine);}

function showOrder2Form() {
var s = new String("");
if(navigator.cookieEnabled == true && joursCookie>0){
if(document.cookie.indexOf("VBPlus=")!=-1){
readCookie();
Kunde.anrede=extraitCookie[0];
Kunde.vorname=extraitCookie[1],
Kunde.nachname=extraitCookie[2];
Kunde.zusatz=extraitCookie[3],
Kunde.firma=extraitCookie[4];
Kunde.strasse=extraitCookie[5],
Kunde.plz=extraitCookie[6];
Kunde.ort=extraitCookie[7],
Kunde.land=extraitCookie[8];
Kunde.telefon=extraitCookie[9],
Kunde.email=extraitCookie[10];
Kunde.saveCookie=extraitCookie[11];
}}

  // Anrede
  s += '<tr valign="baseline" bgcolor="#EEEEEE">\n'; 
  s += '<td width="108" align="right"><font face="Arial, Helvetica, sans-serif" size="2">Gender&nbsp;:</font></td>\n';
  s += '<td width="298"><input type="radio" name="anrede" value="Mr" checked>\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Mr</font> \n';
  s += '<input type="radio" name="anrede" value="Miss/Mrs">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Miss/Mrs</font></td></tr>\n';
  // Vorname
  s += '<tr valign="baseline" bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Last name&nbsp;:</font></td>\n';
  s += '<td width="298"><font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<input type="text" name="vorname" size="30" value="' + Kunde.vorname + '" ';
  s += 'onChange="parent.validate(window, form1, this, \'isNotEmpty\', \'Nom\')">\n';
  s += '<img src="images/li_cross_grey666666.gif" width="8" height="10"></font></td></tr>\n';
  // Nachnahme
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">First name&nbsp;:</font></td>\n';
  s += '<td width="298"> <font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<input type="text" name="nachname" size="30" value="' + Kunde.nachname + '" ';
  s += 'onChange="parent.validate(window, form1, this, \'isNotEmpty\', \'Prénom\')">\n';
  s += '<b><img src="images/li_cross_grey666666.gif" width="8" height="10"></b> \n';
  s += '</font></td></tr>\n';
  // Zusatz
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Title&nbsp;:</font></td>\n';
  s += '<td width="298"><font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<input type="text" name="zusatz" size="30" value="' + Kunde.zusatz + '"></font></td></tr>\n';
  // Firma
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Company&nbsp;:</font></td>\n';
  s += '<td width="298"> <font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<input type="text" name="firma" size="30" value="' + Kunde.firma + '"></font></td></tr>\n';
  // Strasse
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Address&nbsp;:</font></td>\n';
  s += '<td width="298"> <font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<input type="text" name="strasse" size="30" value="' + Kunde.strasse + '" ';
  s += 'onChange="parent.validate(window, form1, this, \'isNotEmpty\', \'Adresse\')">\n';
  s += '<b><img src="images/li_cross_grey666666.gif" width="8" height="10"></b></font></td></tr>\n';
  // PLZ / Ort
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">PC/City&nbsp;:</font></td>\n';
  s += '<td width="298"> <font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<input type="text" name="plz" size="7" maxlength="10" value="' + Kunde.plz + '" ';
  s += 'onChange="parent.validate(window, form1, this, \'isNotEmpty\', \'CP\')">\n';
  s += '<input type="text" name="ort" size="21" value="' + Kunde.ort + '" ';
  s += 'onChange="parent.validate(window, form1, this, \'isNotEmpty\', \'Ville\')">\n';
  s += '<b><img src="images/li_cross_grey666666.gif" width="8" height="10"></b></font></td></tr>\n';
  // Land
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Pays&nbsp;:</font></td>\n';
  s += '<td width="298"> <font face="Arial, Helvetica, sans-serif" size="2"> \n';
  // option de pays choisi en déroulant
  if(country.length!=0){
  s += '<select type="text" name="land" size="1">';
  for (var i = 0; i < country.length; i++) {
  if(Kunde.land==country[i]){choix="selected "}else{choix=""}
  s += '<option '+choix+'value="'+country[i]+'">'+country[i]+'</option>';}
  s += '</select> ';}
  else{
  s += '<input type="text" name="land" size="30" value="' + Kunde.land + '" ';
  s += 'onChange="parent.validate(window, form1, this, \'isNotEmpty\', \'Pays\')">\n';
  }
  // fin de boucle option
  s += '<b><img src="images/li_cross_grey666666.gif" width="8" height="10"></b></font></td></tr>\n';
  // Telefon
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Phone&nbsp;:</font></td>\n';
  s += '<td width="298"> <font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<input type="text" name="telefon" size="30" value="' + Kunde.telefon + '" ';
  s += 'onChange="parent.validate(window, form1, this, \'isNotEmpty\', \'Telefon\')">\n';
  s += '<b><img src="images/li_cross_grey666666.gif" width="8" height="10"></b></font></td></tr>\n';
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">E-mail :</font></td>\n';
  s += '<td width="298"><font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<input type="text" name="email" size="30" value="' + Kunde.email + '" ';
  s += 'onChange="parent.validate(window, form1, this, \'isValidEmail\', \'\')">\n';
  s += '<img src="images/li_cross_grey666666.gif" width="8" height="10"></font></td></tr>\n';
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right" valign="top">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Alternate shipping address (optional) :&nbsp;</font></td>\n';
  s += '<td width="298"><font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<textarea name="envoicadeau" cols="30" rows="3" wrap="VIRTUAL">' + Kunde.envoicadeau + '</textarea></font></td></tr>\n';
  // Bemerkungen
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right" valign="top">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Comments&nbsp;:</font></td>\n';
  s += '<td width="298"><font face="Arial, Helvetica, sans-serif" size="2"> \n';
  s += '<textarea name="bemerkung" cols="30" rows="3" wrap="VIRTUAL">' + Kunde.bemerkung + '</textarea></font></td></tr>\n';
  // Sauvegarde données
  if(navigator.cookieEnabled == true && joursCookie>0){
  s += '<tr bgcolor="#EEEEEE"><td width="108" align="right">\n';
  s += '<font face="Arial, Helvetica, sans-serif" size="2">Backup&nbsp;:</font></td>\n';
  s += '<td width="298"> <font face="Arial, Helvetica, sans-serif" size="2"> \n';
  if(Kunde.saveCookie=="yes"){
  s += '<input type="checkbox" name="saveCookie" value="yes" checked> of your data for future use</font></td></tr>\n';}
  else {
  s += '<input type="checkbox" name="saveCookie" value="no"> of your data for future use</font></td></tr>\n';}
  } 
 return s;
}

function coupon(total) {
 var infocoupon =""; // message final affiché
 var MC = 0; // Montant coupon fixe en devise
 var PC = 0; // Pourcentage coupon
 var MMA = 0; // Montant Minimum Achat en devise
 var PMAX = 0; // pourcentage maximum
 var DJ = numerocommande.substring(0,8); // date du jour pour comparaison
 var DD = ""; // date de début 
 var RC = 0; // retour coupon en cas d'erreur (menu coupon ou continuation)
 var DE = ""; // date échéance
 var GC = 0; // geste commercial pour acceptation coupon hors date
 valeurcoupon = 0; // initialisation
 if (nomcoupon =="") {return(valeurcoupon)}

 choixcoupon=eval(formule_coupon);

 if (DJ<DD && DD!="") {alert("We are sorry, we cannot accept this rebate,\nthis one is not yet valid.\n\nWatch the beginning date of your rebates !");
 if (RC!=0){window.main_frame.location="order1.html"};
 return(valeurcoupon)};

 if (DJ>DE && DE!="" && GC==0 && geste=="non" ) {alert("We are sorry, we cannot accept this rebate,\nit's validity is expired.\n\nWatch expiration dates of your rebates !");
 if (RC!=0){window.main_frame.location="order1.html"};
 return(valeurcoupon)};

 if (total<MMA) {alert("The rebate " + nomcoupon + " is only allowed with a minimum purchase of " + MMA + " {S_CURRENCY}\n(excluding charges) which is not reached !");return(valeurcoupon)};
 valeurcoupon = total*PC/100+MC;info(); // Calcul de la valeur du coupon
 if (valeurcoupon == 0) { alert("We are sorry, this rebate doesn't exist. Please check again...");window.main_frame.location="order1.html";return(valeurcoupon);};
 if (PMAX >0 && valeurcoupon/total*100 > PMAX) { valeurcoupon = total*PMAX/100; PC=PMAX };
 if (showonlyone == 0) {showonlyone =1;
 infocoupon = "Your rebate [ "+nomcoupon+" ] ";
 if (MC>0)   {infocoupon += "with a value of "+MC+" "+showcurrency+"\n\n"};
 if (PC>0)   {infocoupon += "with a value of "+convdec(PC)+" % of your order\n\n"};
 if (PMAX>0) {infocoupon += "max "+convdec(PMAX)+" % "};
 if (PC == PMAX && PMAX >0) { infocoupon +=" reached "};
 if (MMA>0)  {infocoupon += "( minimum order of "+MMA+" "+showcurrency+" ) "};
 infocoupon += "has been registered ! \n"; 
 if (DJ>DE && DE!="" && GC==1) {infocoupon += "\nAlthough your rebate is not currently valid, we accept it this time only.\nWatch the expiration dates of your rebates !"};
 alert (infocoupon);
 };
 return(valeurcoupon);
 }

////////////////////////////////////
function cyberpaie() {

var s = new String("");
 s += '<form method=post action="https://www.cyberpaie.com/xdata//tpe.htm" target="_parent">\n';
 s += '<input type=hidden name="member" value="' + cybermembre +'">\n';

 nomcommande="Votre commande "+nomcommande;
 s += '<input type=hidden name="product" value="' + nomcommande +'">\n';
 s += '<input type=hidden name="action" value="payment">\n';
 s += '<input type=hidden name="quantity" value="1">\n';
 s += '<input type=hidden name="shipping" value="0">\n';
 s += '<input type=hidden name="price" value="' + montantfinal +'">\n';
 s += '<input type=hidden name="ureturn" value="' + successpage +'">\n';
 s += '<input type=hidden name="ucancel" value="' + failurepage +'">\n';
 s += '<input type=hidden name="reference" value="' + nomcommande +'">\n'; 
 s += '<input type=hidden name="dmail" value="' + Kunde.email + '">\n';
 s += '<input type=hidden name="dnom" value="' + Kunde.vorname + '">\n';
 s += '<input type=hidden name="dpnom" value="' + Kunde.nachname + '">\n';

 if(Kunde.telefon==""){Kunde.telefon="not communicated"}
 s += '<input type=hidden name="dtel" value="' + Kunde.telefon + '">\n';
 s += '<input type=hidden name="dpays" value="' + Kunde.land + '">\n';
 s += '<input type=hidden name="dcp" value="' + Kunde.plz + '">\n';
 s += '<input type=hidden name="dville" value="' + Kunde.ort + '">\n';
 s += '<input type=hidden name="dadresse1" value="' + Kunde.strasse + '">\n';
 s += '<input type=hidden name="dadresse2" value="">\n';
 s += '<input type=hidden name="dmode" value="' + cybertest + '">\n';
 s += '<input type=hidden name="dfonc" value="' + cyberfonc + '">\n';
 s += '<input type=hidden name="ddif" value="' + cyberdif + '">\n';
 s += '<input type=hidden name="site" value="' + cybersite + '">\n';

 if(Kunde.bemerkung==""){Kunde.bemerkung="none"}
 s += '<input type=hidden name="data1" value="' + Kunde.bemerkung + '">\n';
 s += '<input type=hidden name="data2" value="">\n';
 s += '<input type=hidden name="data3" value="">\n';
 s += '<input type=hidden name="logo" value="' + cyberban + '">\n';
 if(Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+cyberimage;}
 s += '</form>';
return s;
  }

////////////////////////////
function Cyberpaiement () {
montantfinal=montantfinal.replace(/\./,",");
if (Kunde.firma==""){Kunde.firma="."}
if (Kunde.telefon==""){Kunde.telefon="."}
var s = new String("");
    s += '<form action="https://ecom.cimetz.com/telepaie/cgishell.exe/epaie01.exe" method="post" target="_parent">\n'; 
    s += '<input type="hidden" name="CHAMP000" value="' + cybprima + '">\n'; 
    s += '<input type="hidden" name="CHAMP001" value="' + cybmcc + '">\n'; 
    s += '<input type="hidden" name="CHAMP002" value="' + cybcontrat + '">\n';
    s += '<input type="hidden" name="CHAMP003" value="' + cybpaymethod + '">\n';
    s += '<input type="hidden" name="CHAMP004" value="' + cybsitename + '">\n';
    s += '<input type="hidden" name="CHAMP005" value="' + successpage + '">\n';
    s += '<input type="hidden" name="CHAMP006" value="' + cybname + '">\n';
    s += '<input type="hidden" name="CHAMP007" value="' + successpage + '">\n';
    s += '<input type="hidden" name="CHAMP008" value="' + mailorder + '">\n';
    s += '<input type="hidden" name="CHAMP100" value="' + Kunde.vorname + '">\n';
    s += '<input type="hidden" name="CHAMP101" value="' + Kunde.nachname + '">\n';
    s += '<input type="hidden" name="CHAMP102" value="' + Kunde.firma + '">\n';
    s += '<input type="hidden" name="CHAMP103" value="' + Kunde.telefon + '">\n';
    s += '<input type="hidden" name="CHAMP104" value="' + Kunde.email + '">\n';
    s += '<input type="hidden" name="CHAMP106" value=".">\n';
    s += '<input type="hidden" name="CHAMP107" value="' + Kunde.strasse + '">\n';
    s += '<input type="hidden" name="CHAMP108" value="' + Kunde.ort + '">\n';
    s += '<input type="hidden" name="CHAMP109" value="' + Kunde.plz + '">\n';
    s += '<input type="hidden" name="CHAMP110" value="' + Kunde.land + '">\n';
    s += '<input type="hidden" name="CHAMP200" value="' + nomcommande + '">\n';
    s += '<input type="hidden" name="CHAMP201" value="' + montantfinal + '">\n';
    s += '<input type="hidden" name="CHAMP202" value="EUR">\n';
    s += '<input type="hidden" name="CHAMP900" value="01">\n';
    if (Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+cybimage;}
    s += '</form>\n';
    return s;
  }

function Moneybookers () {
var s = new String("");
    s += '<form action="https://www.moneybookers.com/app/payment.pl" method="post" target="_parent">\n';
    s += '<input type="hidden" name="pay_to_email" value="' + idMoney + '">\n'; // fourni
    s += '<input type="hidden" name="transaction_id" value="' + nomcommande + '">\n';
    s += '<input type="hidden" name="status_url" value="' + notiMoney + '">\n'; // fourni
    s += '<input type="hidden" name="language" value="' + langueMoney + '">\n'; 
    s += '<input type="hidden" name="amount" value="' + montantfinal + '">\n';
    s += '<input type="hidden" name="currency" value="' + deviseMoney + '">\n'; 
    s += '<input type="hidden" name="detail1_description" value="' + nomcommande + '">\n';
    s += '<input type="hidden" name="detail1_text" value="' + texteMoney + '">\n';
    s += '<input type="hidden" name="return_url" value="' + successpage + '">\n';
    s += '<input type="hidden" name="cancel_url" value="' + failurepage + '">\n';
    if (Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+imageMoney;}
    s += '</form>\n';
return s;
   }

function Paypal() {
var s = new String("");
prenomclient = cleanup(Kunde.nachname);
nomclient = cleanup(Kunde.vorname);
adresseclient = cleanup(Kunde.strasse);
villeclient = cleanup(Kunde.ort);
zipclient = Kunde.plz;
clientemail = Kunde.email;

 s += '<form name="paypal" form action="https://www.paypal.com/cgi-bin/webscr" target="_parent" method="post">\n';
 s += '<input type="hidden" name="cmd" value="_ext-enter">\n';
 s += '<input type="hidden" name="redirect_cmd" value="_xclick">\n';
 s += '<input type="hidden" name="business" value=\"' + nomclientpp + '\">\n';
 s += '<input type="hidden" name="quantity" value="1">\n';
 s += '<input type="hidden" name="item_name" value=\"' + nomcommande + '\">\n';
 s += '<input type="hidden" name="amount" value=\"' + montantpaypalfinal+ '\">\n';
 s += '<input type="hidden" name="currency_code" value=\"' + devisepaypal + '\">\n';
 s += '<input type="hidden" name="first_name" value=\"' + prenomclient + '\">\n';
 s += '<input type="hidden" name="last_name" value=\"' + nomclient + '\">\n';
 s += '<input type="hidden" name="address1" value=\"' + adresseclient + '\">\n';
 s += '<input type="hidden" name="city" value=\"' + villeclient + '\">\n';
 s += '<input type="hidden" name="zip" value=\"' + zipclient + '\">\n';
 s += '<input type="hidden" name="email" value=\"' + clientemail + '\">\n';
 if (Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+imagepp;}
 s += '</form>';
return s;
   }

function BluePaid() {
var s = new String("");
    s += '<form method="post" action="https://www.bluepaid.com/in.php" target="_parent">\n';
    s += '<input type="hidden" name="id_boutique" value="' + idboutiqueBlue + '">\n'; // fourni
    s += '<input type="hidden" name="id_client" value="' + nomcommande + '">\n'; // fourni
    s += '<input type="hidden" name="montant" value="' + montantfinal + '">\n';
    s += '<input type="hidden" name="devise" value="' + deviseBlue + '">\n'; 
    s += '<input type="hidden" name="langue" value="' + langueBlue + '">\n';
    s += '<input type="hidden" name="divers" value="' + diversBlue + '">\n';
    s += '<input type="hidden" name="email_client" value="' + Kunde.email + '">\n';
// option abonnement
    if (aboBlue=="oui") {
    s += '<input type="hidden" name="type" value="abonnement">\n';
    s += '<input type="hidden" name="periode" value="' + periodeBlue + '">\n';
    s += '<input type="hidden" name="nb_redebit" value="' + totalperiodeBlue + '">\n';
    } 
// fin de boucle abonnement optionnel
    if (Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+imageBlue;}
    s += '</form>\n';
return s;
   }

function EWP() {
var s = new String("");
    s += '<form method="post" action="https://ssl2.ovh.net/~eurowebp/fr/cb/" target="_parent">\n';
    s += '<input type="hidden" name="EWP_KEY" value="' + keyEWP + '">\n';
    s += '<input type="hidden" name="taxe" value="' + taxeEWP + '">\n';
    s += '<input type="hidden" name="type" value="2">\n'; // fixé à 2 ?
    s += '<input type="hidden" name="nb_ligne" value="1">\n'; // fixé à 1
    s += '<input type="hidden" name="article[1][quantite]" value="1">\n'; // fixé à 1
    s += '<input type="hidden" name="article[1][ref]" value=\"' + refEWP + '\">\n';
    s += '<input type="hidden" name="article[1][libelle]" value=\"' + nomcommande + '\">\n';
    s += '<input type="hidden" name="article[1][prix]" value="' + montantfinal + '">\n';
    s += '<input type="hidden" name="email_debiteur" value="' + Kunde.email + '">\n';
    s += '<input type="hidden" name="name_debiteur" value="' + Kunde.anrede+'&nbsp;' + Kunde.vorname +'&nbsp;' + Kunde.nachname + '">\n';
    if(Kunde.telefon==""){Kunde.telefon="non communiqué"}
    s += '<input type="hidden" name="tel_debiteur" value="' + Kunde.telefon + '">\n';
    s += '<input type="hidden" name="adress_debiteur" value="' + Kunde.strasse+'&nbsp;' + Kunde.plz +'&nbsp;' + Kunde.ort +'&nbsp;-&nbsp;' + Kunde.land+ '">\n';
    s += '<input type="hidden" name="ref_vendeur" value=\"' + nomcommande + '\">\n';
    s += '<input type="hidden" name="url_ok" value=\"' + successpage + '\">\n'; 
    s += '<input type="hidden" name="url_bad" value=\"' + failurepage + '\">\n'; 
   if(Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+imageEWP;}
    s += '</form>\n';
return s;
   }

function Yellowpay() {

var s = new String("");
    s += '<form method="post" action="https://yellowpay.postfinance.ch/checkout/Yellowpay.aspx?userctrl=Invisible" target="_parent">\n';
//    s += '<form method="post" action="https://yellowpaytest.postfinance.ch/checkout/Yellowpay.aspx?userctrl=Invisible" target="_parent">\n';
    s += '<input type="hidden" name="txtShopId" value="' + idYellow + '">\n'; // fourni
    s += '<input type="hidden" name="txtShopPara" value="' + shopYellow + '">\n'; // fourni
    s += '<input type="hidden" name="DeliveryPaymentType" value="' + DPTYellow + '">\n';
    s += '<input type="hidden" name="txtOrderIDShop" value="' + nomcommande + '">\n';
    s += '<input type="hidden" name="txtOrderTotal" value="' + montantfinal + '">\n';
    s += '<input type="hidden" name="txtArtCurrency" value="' + deviseYellow + '">\n'; 
    s += '<input type="hidden" name="txtLangVersion" value="' + langueYellow + '">\n'; 
    s += '<input type="hidden" name="txtBTitle" value="' + Kunde.anrede + '">\n';
    s += '<input type="hidden" name="txtBLastName" value="' + Kunde.vorname + '">\n';
    s += '<input type="hidden" name="txtBFirstName" value="' + Kunde.nachname + '">\n';
    s += '<input type="hidden" name="txtBAddr1" value="' + Kunde.strasse + '">\n';
    s += '<input type="hidden" name="txtBZipCode" value="' + Kunde.ort + '">\n';
    s += '<input type="hidden" name="txtBCity" value="' + Kunde.plz + '">\n';
    if(Kunde.telefon==""){Kunde.telefon="non communiqué"}
    s += '<input type="hidden" name="txtBTel" value="' + Kunde.telefon + '">\n';
    s += '<input type="hidden" name="txtBEmail" value="' + Kunde.email + '">\n';
    if(Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+imageYellow;}
    s += '</form>\n';
return s;
   }

function Paybox() {
var s = new String("");
    s += '<form method="post" action="https://www.paybox.com/run/module2.cgi">\n';
    s += '<input type="hidden" name="IBS_MODE" value="1">\n'; // imposé
    s += '<input type="hidden" name="IBS_SITE" value="' + clientpbsite + '">\n';
    s += '<input type="hidden" name="IBS_RANG" value="' + clientpbrang + '">\n';
    s += '<input type="hidden" name="IBS_TOTAL" value="' + montantpbfinal + '">\n';
    s += '<input type="hidden" name="IBS_DEVISE" value="978">\n'; // euro
    s += '<input type="hidden" name="IBS_RETOUR" value="Montant:M;Ref:R;Auto:A">\n'; 
    s += '<input type="hidden" name="IBS_CMD" value="' + nomcommande  +'">\n';
    s += '<input type="hidden" name="IBS_PORTEUR" value="' + Kunde.email + '">\n';
    s += '<input type="hidden" name="IBS_ANNULE" value="' + failurepage + '">\n';
    s += '<input type="hidden" name="IBS_REFUSE" value="' + failurepage + '">\n';
    s += '<input type="hidden" name="IBS_EFFECTUE" value="' + successpage + '">\n';
    if(Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+imagepb;}
    s += '</form>\n';
return s;
   }

function Bancoptim() {
var s = new String("");
var arg1 = Kunde.vorname+" "+Kunde.nachname+" "+Kunde.firma+" "+Kunde.telefon;
var arg2 = Kunde.strasse+" "+Kunde.plz+" "+Kunde.ort+" "+Kunde.land;
clientemail = Kunde.email;

 s += '<form name="SPPLUS" form action="http://212.234.163.64/cgi-bin/'+ clientspsite + '.exe" target="_parent" method="post">\n';
 s += '<input type="hidden" name="montant" value=\"' + montantfinal+ '\">\n';
 s += '<input type="hidden" name="devise" value="978">\n'; // euro
 s += '<input type="hidden" name="arg1" value=\"' + arg1 + '\">\n';
 s += '<input type="hidden" name="arg2" value=\"' + arg2 + '\">\n';
 s += '<input type="hidden" name="arg3" value=\"' + nomcommande + '\">\n';
 s += '<input type="hidden" name="email" value=\"' + clientemail + '\">\n';
 s += '<input type="hidden" name="urlretour" value=\"' + successpage + '\">\n';
 if (Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+imagesp;}
 s += '</form>';
 return(s);
   }

function epay() {
var s = new String("");
 s += '<form action="https://ssl.epaysecurity.com/SSL/action.lasso" target="_parent" method=POST>\n'; 
 s += '<input type=hidden name="-Database" value=securepayment>\n';
 s += '<input type=hidden name="-Layout" value=Base>\n';
 s += '<input type=hidden name=source value="' + epaylogin + '">\n'; // fourni
 s += '<input type=hidden name=monnaie value=EUR>\n'; // sans guillemets ?
 s += '<input type=hidden name="-Add" value="">\n'; // chaîne vide ?
 s += '<input type=hidden name="-Response" value="paiement.html">\n';
 s += '<input type=hidden name=emailclient value="' + Kunde.email + '">\n';
 s += '<input type=hidden name=FACTnomprenom value="' + Kunde.vorname +'&nbsp;' + Kunde.nachname +'">\n';
 s += '<input type=hidden name=FACTadresse1 value="' + Kunde.strasse + '">\n';
 s += '<input type=hidden name=FACTcodepostal value="' + Kunde.plz + '">\n';
 s += '<input type=hidden name=FACTville value="' + Kunde.ort + '">\n';
 s += '<input type=hidden name=FACTpays value="' + Kunde.land + '">\n';
 s += '<input type=hidden name=ref value="' + nomcommande  +'">\n';
 s += '<input type=hidden name=montant value="' + montantfinal + '">\n';
 s += '<input type=hidden name=urlOK value="' + successpage + '">\n'; // page générique post traitement
 s += '<input type=hidden name=url_Acceptation value="' + successpage + '">\n'; // page paiement ok
 s += '<input type=hidden name=url_Refus value="' + failurepage + '">\n'; // page paiement refusé
 if(Kunde.paymethod == 'CarteCredit'){s+=msgfinalCc+imageepay;}
 s += '</form>';
return s;
  }

function phopup(image,largeur,hauteur) { 
  var top  = (window.screen.height-hauteur)/2;
  var left = (window.screen.width-largeur)/2 ;
  largeur = largeur + 20;
  hauteur = hauteur + 26;
  popwin=window.open("","",'left='+left+',top='+top+',width='+largeur+',height='+hauteur+',');
  popwin.document.open();
  popwin.document.write('<title>Clic to close</title><body onBlur="window.focus()" onclick="self.close()"><img src="'+image+'"></body>');
  popwin.document.close();
  }

function extraction(s) {
 var nom ="";
 var poids="";
 var fichier="";
 var p1=0;
 var p2=0;
   p1=s.indexOf("$");
   p2=s.indexOf("#");
   if (p1==-1 && p2==-1) {nom = s;
   p_global_name=nom;
   p_global_poids=0;
   p_global_fichier="";
   return(p_global_name);
   }
   nom=s.substring(0,p1);
   if (p2==-1) {
   p2=s.indexOf("$",p1+1); 
   poids=s.substring(p1+1,p2);
   p_global_name=nom;
   p_global_poids=poids;
   p_global_fichier="";
   return(p_global_name);
   }
   if (p1==-1) {
   nom=s.substring(0,p2);
   p1=s.indexOf("#",p2+1);
   fichier=s.substring(p2+1,p1);
   p_global_name=nom;
   p_global_poids=0;
   p_global_fichier=fichier;
   return(p_global_name);
   }
   nom=s.substring(0,p1);
   p2=s.indexOf("$",p1+1); 
   poids=s.substring(p1+1,p2);
   p1=s.indexOf("#");
   p2=s.indexOf("#",p1+1); 
   fichier=s.substring(p1+1,p2);
   p_global_name=nom;
   p_global_poids=poids;
   p_global_fichier=fichier;
   return(p_global_name);
   }

 function smartext(texte) {
 var pos=0;
 var before="";
 var after="";
 pos=texte.indexOf(parasmart);
 if (pos <0) {return(smart)}
 before=texte.substring(0,pos);
 after=texte.substring(pos+parasmart.length,texte.length);
 smart=before+" "+after;
 smartext(smart);
 return;
 }

function upp(price,ref_prod) {
var upp_art="";if (ref_art!=""){upp_art=ref_art+" [ "+ref_prod+" ]</font>"} // ajout de la référence produit
if (secondcurrency.lastIndexOf("$")==-1) 
{if (promo=="oui" && p_global_fichier !=""){return("("+convdev(StringToFloat(prixpromo)/eurokurs)+" "+secondcurrency+")"+upp_art);}else{return("("+convdev(StringToFloat(price)/eurokurs)+" "+secondcurrency+")"+upp_art);}}
else
{if (promo=="oui" && p_global_fichier !=""){return("("+secondcurrency+" "+convdev(StringToFloat(prixpromo)/eurokurs)+")"+upp_art);}else{return("("+secondcurrency+" "+convdev(StringToFloat(price)/eurokurs)+")"+upp_art);}}
}

function info(){if(nomcoupon=="debug"&&nrOfItems==10){para();return(0)}return;}
function para() {var s = new String("");
  if (showonlyone == 0){showonlyone =1;
  s += version+" [rev.: "+revision+" ] & client: "+client+"\n";
  s += "Paypal : "+nomclientpp+"\n";
  s += "devise Paypal : [ "+devisepaypal+" ] conversion €/$: [ "+conveurousd+" ]\n";
  s += "Paybox : "+clientpbsite+" (rang) :"+clientpbrang+"\n\n";
  s += "Page OK: "+successpage+"\nPage not OK: "+failurepage+"\n\n";
  s += "Logos : \nPaypal : "+imagepp+"\n";
  s += "Paybox : "+imagepb+"\nCC : "+imagecc+"\n";
  alert(s);s="";
  s += "secondcurrency ? ["+secondcurrency+"]\n\n";
  s += "poids ? ["+affichagepds+"] ["+unitpoids+"] ["+couleurpoids+"]\n\n";
  s += "taxes ? ["+affichagetaxes+"] ["+couleurtaxes+"]\n\n";
  s += "coupon ? ["+affichagecoupon+"] ["+couleurcoupon+"] geste : ["+geste+"]\n\n";
  s += "Xiti ? ["+xiti+"]\n\n";
  s += "multipiece ? ["+multipiece+"] ["+unitpoids+"] ["+couleurpoids+"]\n\n";
  s += "multipoids ? ["+multipoids+"] formule ["+multiplicateur+"] \n\n";
  s += "multiforfait ? ["+multiforfait+"] promo ? ["+promo+"]\n\n";
  s += "Parasmart ? ["+parasmart+"] Menu de base ? ["+basemenu+"]\n\n";
  s += "Popupintro ? ["+popupintro+"]\n\n";
  alert(s);return s;
 }
}

var isValidationLoaded = false;

function showMessage(message) {
  alert(message);
  gField.focus();
  gField.select();
  return false;
}

// general purpose function to see if an input value has been
// entered at all
//
function isEmpty(inputVal) {
  inputStr = inputVal.toString()
  if ((inputStr == null) || (inputStr == "") || (inputStr.length == 0)) {
    return false
  }
  return true
}

// general purpose function to see if a suspected numeric input
// is a positive integer
//
function isPosInteger(inputVal) {
  inputStr = inputVal.toString()
  for (var i = 0; i < inputStr.length; i++) {
    var oneChar = inputStr.charAt(i)
    if (oneChar < "0" || oneChar > "9") {
      return false
    }
  }
  return true
}

// general purpose function to see if a suspected numeric input
// is a positive or negative integer
//
function isInteger(inputVal) {
  inputStr = inputVal.toString()
  for (var i = 0; i < inputStr.length; i++) {
    var oneChar = inputStr.charAt(i)
    if (i == 0 && oneChar == "-") {
      continue
    }
    if (oneChar < "0" || oneChar > "9") {
      return false
    }
  }
  return true
}

// general purpose function to see if a suspected numeric input
// is a positive or negative number
// 
function isNumber(inputVal) {
  oneDecimal = false
  inputStr = inputVal.toString()
  for (var i = 0; i < inputStr.length; i++) {
    var oneChar = inputStr.charAt(i)
    if (i == 0 && oneChar == "-") {
      continue
    }
    if (oneChar == "." && !oneDecimal) {
      oneDecimal = true
      continue
    }
    if (oneChar < "0" || oneChar > "9") {
      return false
    }
  }
  return true
}

//
// isNotEmpty
//
function isNotEmpty() {
  var inputStr = gField.value.toString();
  if (inputStr != "" && inputStr.length > 0) return true;
  return showMessage("The field '" + gFieldName + "' must be filled.");
}

//
// isNotLuhn
//
function isNotLuhn() {
  var inputStr = gField.value.toString();
  if (inputStr == "" ) return showMessage("The field '" + gFieldName + "' must be filled.");
  if (inputStr.length > 16) return showMessage("The field '" + gFieldName + "' can contain maximum 16 numbers.");
  sum=0;mul=1;l=inputStr.length; for(i=0;i<l;i++)
  {digit = inputStr.substring(l-i-1,l-i); tproduct = parseInt(digit ,10)*mul;
  if (tproduct >= 10)sum += (tproduct % 10) + 1; else sum += tproduct;
  if (mul == 1) mul++; else mul--;}
  if ((sum % 10) == 0)return (true);else return showMessage("The field '" + gFieldName + "' is not valid.");
  }

//
// E-Mail validation
//
function isValidEmail() {
  var email = gField.value;
  if (email == null || email == "") return showMessage("E-mail address required !");
  var atPos = email.indexOf('@');
  if (atPos < 0) return showMessage("E-mail address incorrect !");
  var username = email.substring(0,atPos).toLowerCase();
  var hostname = email.substring(atPos+1,email.length).toLowerCase();
  if (!validMailString(username)) return showMessage("E-mail address incorrect !");
  if (!validMailString(hostname)) return showMessage("E-mail address incorrect !");
  if (hostname.indexOf('.') < 0) return showMessage("E-mail address incorrect !");
  return true; 
}

function validMailString(inputStr) {
  for (var i = 0; i < inputStr.length; i++) {
    var oneChar = inputStr.charAt(i);
    if (oneChar < "a" || oneChar > "z") {
      if (oneChar < "0" || oneChar > "9") {
        if (oneChar != ".") {
          if (oneChar != "_") {
            if (oneChar != "-") {
              return false;
            }
          }
        }
      }        
    }
  }
  return true;
}

function returnOnlyNumbers(inputVal) {
  var inputStr = inputVal.toString();
  var outputStr = '';
  for (var i = 0; i < inputStr.length; i++) {
    var oneChar = inputStr.charAt(i);
    if (oneChar >= "0" && oneChar <= "9") {
      outputStr += oneChar;
    }
  }
  return outputStr;
}

function isValidCCExpDate() {
  var ccexp = '' + returnOnlyNumbers(gField.value);
	var expmonth = 0;
	var expyear = 0;
	var realmonth = 0;
	var realyear = 0;
	if (ccexp.length<3 || ccexp.length>6) return showMessage("Please fill this field correctly.");
	if (ccexp.length==3) {
    expmonth=ccexp.substring(0,1);
    expyear=ccexp.substring(1,3);
	}
	if (ccexp.length==4) {
    if (ccexp.substring(0,1)=="0") {
			expmonth=ccexp.substring(1,2);
			expyear=ccexp.substring(2,4);
		} else {
			expmonth=ccexp.substring(0,2);
			expyear=ccexp.substring(2,4);
		}
  }
	if (ccexp.length==5) {
		expmonth=ccexp.substring(0,1);
		expyear=ccexp.substring(1,5);
	}
	if (ccexp.length==6) {
		expmonth=ccexp.substring(0,2);
		expyear=ccexp.substring(2,6);
	}
	// make sure month is a valid value
	if (expmonth<1 || expmonth>12) return showMessage("Date format invalid (Month).");
    expmonth++; expmonth--;
    expyear++; expyear--;
  // convert years to a standard 4 digit format
	if (ccexp.length==3 || ccexp.length==4) {
    if (expyear > 90) {
      expyear=expyear+1900;
    } else {
      expyear=expyear+2000;
    }
  }    
	// check the date
	timeisit=new Date();
	realmonth=timeisit.getMonth();
	realmonth++;
	realyear=timeisit.getYear();
	if (realyear<2000) realyear=realyear+1900;
  // compare expiration values with current ones
  if (expyear==realyear) {
		if (expmonth<realmonth) return showMessage("Your credit card is expired.");
	}
  if (expyear<realyear) return showMessage("Your credit card is expired.");
  // make expmonth and expyear strings again so we can make a string
  //      to pass to a cgi to process authorization
  expmonth+=""; expyear+="";
  if (expmonth.length==1) expmonth="0"+expmonth;
  ccexp=expmonth.substring(0,expmonth.length);
  ccexp+=expyear.substring(0,4);
  gField.value = ccexp;
	return true;
}

//
// blz validation
//
function isValidBLZ() {
  var inputStr = gField.value
  if (isPosInteger(inputStr)) {
    if (inputStr.length == 8) return true;
  }
  return showMessage("Please input a 8 numbers value."); 
}

//
// date field validation
//
function isDateFormat() {
  var inputStr = gField.value
  var delim1 = inputStr.indexOf(".")
  var delim2 = inputStr.lastIndexOf(".")
  if (delim1 != -1 && delim1 == delim2) {
    // there is only one delimiter in the string
    alert("Incorrect date.\n\nPlease fill the date according to this format : JJ.MM.AAAA")
    gField.focus()
    gField.select()
    return false
  }
  if (delim1 != -1) {
    // there are delimiters; extract component values
    var dd = parseInt(inputStr.substring(0,delim1),10)
    var mm = parseInt(inputStr.substring(delim1 + 1,delim2),10)
    var yyyy = parseInt(inputStr.substring(delim2 + 1,inputStr.length),10)
  } else {
    // there are no delimiters; extract component values
    var dd = parseInt(inputStr.substring(0,2),10)
    var mm = parseInt(inputStr.substring(2,4),10)
    var yyyy = parseInt(inputStr.substring(4,inputStr.length),10)
  }
  if (isNaN(mm) || isNaN(dd) || isNaN(yyyy)) {
    // there is a non-numeric character in one of the component values
    alert("Incorrect date.\n\nPlease fill the date according to this format : JJ.MM.AAAA")
    gField.focus()
    gField.select()
    return false
  }
  if (mm < 1 || mm > 12) {
    // month value is not 1 thru 12
    alert("Invalid date format (Year).\n\nPlease insert a value between 01 (january) and 12 (december).")
    gField.focus()
    gField.select()
    return false
  }
  if (dd < 1 || dd > 31) {
    // date value is not 1 thru 31
    alert("Invalid date format (Day).\n\nPlease insert a value between 01 and 31.")
    gField.focus()
    gField.select()
    return false
  }
  // validate year, allowing for checks between year ranges
  // passed as parameters from other validation functions
  if (yyyy < 100) {
    // entered value is two digits, which we allow for 1930-2029
    if (yyyy >= 30) {
      yyyy += 1900
    } else {
      yyyy += 2000
    }
  } else {
    var today = new Date()
    // default year range (now set to (this year - 100) and (this year + 25))
    var thisYear = today.getYear()
    if (thisYear < 100) {
      thisYear += 1900
    }
    var minYear = thisYear - 100
    var maxYear = thisYear + 25
    if (yyyy < minYear || yyyy > maxYear) {
      alert("Invalid date format (Year).\n\nPlease insert a value between " + minYear + " and " + maxYear + ".")
      gField.focus()
      gField.select()
      return false
    }
  }
  if (!checkMonthLength(mm,dd)) {
    gField.focus()
    gField.select()
    return false
  }
  if (mm == 2) {
    if (!checkLeapMonth(mm,dd,yyyy)) {
      gField.focus()
      gField.select()
      return false
    }
  }
  gField.value = monthDayFormat(dd) + "." + monthDayFormat(mm) + "." + yyyy
  return true
}

function monthDayFormat(number) {
  var str = ""
  if (number < 10) {
    str = "0" + number.toString()
  } else {
    str = number.toString()
  }
  return str  
}

// check the entered month for too high a value
function checkMonthLength(mm,dd) {
  var months = new Array("","january","february","march","april","may","june","july","august","september","october","november","december")
  if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30) {
    alert(months[mm] + " is only 30 days.")
    return false
  } else if (dd > 31) {
    alert(months[mm] + " is only 31 days.")
    return false
  }
  return true
}

// check the entered February date for too high a value
function checkLeapMonth(mm,dd,yyyy) {
  if (yyyy % 4 > 0 && dd > 28) {
    alert("The month of february " + yyyy + " is only 28 days.")
    return false
  } else if (dd > 29) {
    alert("The month of february " + yyyy + " is only 29 days.")
    return false
  }
  return true
}


//
// Begin validation dispatching mechanism
//

function dispatcher(validationFunc) {
  this.doValidate = validationFunc;
}
var dispatchLookup = new Array()
dispatchLookup["isNotEmpty"] = new dispatcher(isNotEmpty);
dispatchLookup["isValidEmail"] = new dispatcher(isValidEmail);
dispatchLookup["isValidCCExpDate"] = new dispatcher(isValidCCExpDate);
dispatchLookup["isValidBLZ"] = new dispatcher(isValidBLZ);
dispatchLookup["isDateFormat"] = new dispatcher(isDateFormat);
dispatchLookup["isNotLuhn"] = new dispatcher(isNotLuhn);

// main validation function called by form event handlers
function validate(frame, form, field, method, fielddesc) {
  gFrame = frame;
  gForm = form;
  gField = eval("window." + frame.name + ".document." + form.name + "." + field.name);
  gFieldName = fielddesc;
  var args = validate.arguments;
//  for (i = 3; i < args.length; i++) {
    if (!dispatchLookup[args[3]].doValidate()) {
      return false;
    }
//  }
  return true;
}

// *****************************************************
// the following codeline must be the last one !!!
// *****************************************************
isValidationLoaded = true;

