// url générale du site et du nom du service web...

var RootURL = "http://www.ibtecnet.com/";
var Service = "service.asp";

// variables generales...

var IsIE6 = false;
if(navigator.userAgent.indexOf("MSIE 6")!=-1) IsIE6 = true;

// fonctions generales...

function NewXHR() {
 var xhr = null;
 if (window.XMLHttpRequest || window.ActiveXObject) {
  if (window.ActiveXObject) {
   try {
    xhr = new ActiveXObject("Msxml2.XMLHTTP");
   } catch(e) {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
   }
  } else {
   xhr = new XMLHttpRequest(); 
  }
 } else {
  alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
  return null;
 }
 return xhr;
}

function Trim(chaine) {
 return chaine.replace(/^\s+|\s+$/g,"");
}
function LTrim(chaine) {
 return chaine.replace(/^\s+/,"");
}
function RTrim(chaine) {
 return chaine.replace(/\s+$/,"");
}

// pour la gestion des menus au survol...

function hasClass(ele,cls) {
 return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
 if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
 if (hasClass(ele,cls)) {
  var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
  ele.className=ele.className.replace(reg,' ');
 }
}

// fonctions de controle...

function CheckEmail(email) {
 var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/;
 return reg.test(email);
}

function CheckDate(datefr) {
 var erreurs="";
 regxpDate = new RegExp("^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}$");
 if(!datefr.match(regxpDate)) {
  erreurs=erreurs+"Merci de saisir une date valide au format JJ\/MM\/AAAA\n";
 } else {
  testdate=datefr.split("/");
  testday=testdate[0];
  testmonth=testdate[1];
  testyear=testdate[2];
  if(testday<1 || testday>31) erreurs=erreurs+"Le jour saisi n\'est pas valide\n";
  if(testmonth<1 || testmonth>12) erreurs=erreurs+"Le mois saisi n\'est pas valide\n";
  if((testmonth==4 || testmonth==6 || testmonth==9 || testmonth==11) && testday==31) erreurs=erreurs+"Il n\'y a pas 31 jours pour ce mois\n";
  if(testmonth==2) {
   var isleap=(testyear%4==0 && (testyear%100!=0 || testyear%400==0));
   if (testday>29 || (testday==29 && !isleap)) erreurs=erreurs+"Février "+testyear+" n\'a pas "+testday+" jours\n";
  }
 }
 return erreurs;
}

function ConfirmBox(msg) {
 var ok = confirm(msg)
 if(ok) { 
   return true;
 } else { 
   return false;
 }
}

// fonction de redirection url...

function changeUrl(url) {
 document.location.href=RootURL+url;
}

// statistiques...

function addlog(site) {
 document.write("<img src=\"http://www." + site + "/addlog.asp?" + "x=" + Math.random () + "&width=" + screen.width + "&height=" + screen.height + "&depth=" + screen.colorDepth + "&referer=" + escape(document.referrer) + "\" width=1 hight=1 border=0>" );
}

// verification des formulaires...

function checkFormContact() {
 var msg="";
 var radiochecked;
 var form=document.getElementById("frmcontact");
 //tests des champs obligatoires...
 if(Trim(form.fldraison.value)=="") {
  msg=msg+"Merci de saisir une raison sociale\n";
 }
 //cas particliers input type radio...
 radiochecked=false;
 for(i=0;i<form.fldcivilite.length;i++){
  if(form.fldcivilite[i].checked==true) radiochecked=true;
 }
 if(radiochecked==false) {
  msg=msg+"Merci de choisir une civilité\n";
 }
 if(Trim(form.fldnom.value)=="") {
  msg=msg+"Merci de saisir un nom\n";
 }
 if(Trim(form.fldprenom.value)=="") {
  msg=msg+"Merci de saisir un prénom\n";
 }
 if(Trim(form.fldemail.value)=="") {
  msg=msg+"Merci de saisir une adresse de messagerie\n";
 } else {
  if(CheckEmail(Trim(form.fldemail.value))==false) msg=msg+"Merci de saisir une adresse de messagerie valide\n";
 }
 if(Trim(form.fldmessage.value)=="") {
  msg=msg+"Merci de saisir un message\n";
 }
 //retour...
 if(msg!="") {
  alert("Saisie erronée !\n"+msg);
  return false;
 } else return true;
}

function checkFormNewsletter() {
 var msg="";
 var form=document.getElementById("frmnewsletter");
 //tests des champs obligatoires...
 if(Trim(form.email.value)=="") {
  msg=msg+"Merci de saisir une adresse de messagerie\n";
 } else {
  if(CheckEmail(Trim(form.email.value))==false) msg=msg+"Merci de saisir une adresse de messagerie valide\n";
 }
 //retour...
 if(msg!="") {
  alert("Saisie erronée !\n"+msg);
  return false;
 } else return true;
}

function checkFormPromoCode() {
 var msg="";
 var form=document.getElementById("frmpromocode");
 //tests des champs obligatoires...
 if(Trim(form.codepromo.value)=="") {
  msg=msg+"Merci de saisir un code promotionnel\n";
 } 
 //retour...
 if(msg!="") {
  alert("Saisie erronée !\n"+msg);
  return false;
 } else return true;
}

function checkFormTransporteur() {
 var msg="";
 var radiochecked;
 var form=document.getElementById("frmtransporteur");
 //tests des champs obligatoires...

 radiochecked=false;
 if(form.fldtransporteur.length==null) {
  if(form.fldtransporteur.checked==true) radiochecked=true;
 } else {
  for(i=0;i<form.fldtransporteur.length;i++){
   if(form.fldtransporteur[i].checked==true) radiochecked=true;
  }
 }

 if(radiochecked==false) {
  msg=msg+"Merci de choisir un mode de livraison\n";
 }
 //retour...
 if(msg!="") {
  alert("Saisie erronée !\n"+msg);
  return false;
 } else return true;
}

function checkFormClientLogin() {
 var msg="";
 var form=document.getElementById("frmclientlogin");
 //tests des champs obligatoires...
 if(Trim(form.fldemail.value)=="") {
  msg=msg+"Merci de saisir une adresse de messagerie\n";
 } else {
  if(CheckEmail(Trim(form.fldemail.value))==false) msg=msg+"Merci de saisir une adresse de messagerie valide\n";
 }
 if(Trim(form.fldpass.value)=="") {
  msg=msg+"Merci de saisir votre mot de passe\n";
 } 
 //retour...
 if(msg!="") {
  alert("Saisie erronée !\n"+msg);
  return false;
 } else {
  var Message;
  //creation XHR...
  var myXHR = NewXHR();
  //ouvre la requete vers la page désirée...
  //myXHR.open('POST',RootURL+Service,true);
  //url en chemin absolu ne marche pas sur Safari Mac...
  myXHR.open('POST',Service,true);
  //gestion du cache du navigateur...
  myXHR.setRequestHeader("Cache-Control","no-cache");
  myXHR.setRequestHeader("Pragma","no-cache");
  //on force le type form dans le header...
  myXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  //la fonction de retour...
  myXHR.onreadystatechange = function () {
   if (myXHR.readyState==4 && myXHR.status==200) {
    var login = myXHR.responseText;
    if(login=="ok") {
     //ok... redirect...
     changeUrl("index.asp?menu=clientold&cc="+new Date().getTime());
    } else {
     //message d'erreur...
     Message="";
     Message=Message+"<table><tr><td>";
     Message=Message+"<span class=\"titre\">Echec de l\'identification</span><br />";
     Message=Message+"Merci de vérifier la saisie de votre email<br />et de votre mot de passe<br />";
     Message=Message+"<a href=\"#\" onclick=\"closeBox();return false;\">Recommencer</a>";
     Message=Message+"</td></tr></table>";
     document.getElementById("message").innerHTML=Message;
     openBox();
    }
   }
  }
  //on envoi la requete...
  myXHR.send("requete=login&email="+Trim(form.fldemail.value)+"&motpasse="+escape(Trim(form.fldpass.value))+"&cc="+new Date().getTime());
  return false;
 }
}

function checkFormClientLogin2() {
 var msg="";
 var form=document.getElementById("frmclientlogin");
 //tests des champs obligatoires...
 if(Trim(form.fldemail.value)=="") {
  msg=msg+"Merci de saisir une adresse de messagerie\n";
 } else {
  if(CheckEmail(Trim(form.fldemail.value))==false) msg=msg+"Merci de saisir une adresse de messagerie valide\n";
 }
 if(Trim(form.fldpass.value)=="") {
  msg=msg+"Merci de saisir votre mot de passe\n";
 } 
 //retour...
 if(msg!="") {
  alert("Saisie erronée !\n"+msg);
  return false;
 } else {
  var Message;
  //creation XHR...
  var myXHR = NewXHR();
  //ouvre la requete vers la page désirée...
  //myXHR.open('POST',RootURL+Service,true);
  //url en chemin absolu ne marche pas sur Safari Mac...
  myXHR.open('POST',Service,true);
  //gestion du cache du navigateur...
  myXHR.setRequestHeader("Cache-Control","no-cache");
  myXHR.setRequestHeader("Pragma","no-cache");
  //on force le type form dans le header...
  myXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  //la fonction de retour...
  myXHR.onreadystatechange = function () {
   if (myXHR.readyState==4 && myXHR.status==200) {
    var login = myXHR.responseText;
    if(login=="ok") {
     //ok... redirect...
     changeUrl("index.asp?menu=accueil&cc="+new Date().getTime());
    } else {
     //message d'erreur...
     Message="";
     Message=Message+"<table><tr><td>";
     Message=Message+"<span class=\"titre\">Echec de l\'identification</span><br />";
     Message=Message+"Merci de vérifier la saisie de votre email<br />et de votre mot de passe<br />";
     Message=Message+"<a href=\"#\" onclick=\"closeBox();return false;\">Recommencer</a>";
     Message=Message+"</td></tr></table>";
     document.getElementById("message").innerHTML=Message;
     openBox();
    }
   }
  }
  //on envoi la requete...
  myXHR.send("requete=login&email="+Trim(form.fldemail.value)+"&motpasse="+escape(Trim(form.fldpass.value))+"&cc="+new Date().getTime());
  return false;
 }
}

function checkFormClient() {

 var msg="";
 var login="";
 var checklogin=false;
 var radiochecked;

 //on recupere l'argument passé à la fonction... s'il existe...
 //ici il ne peut y avoir qu'un seul argument facultatif : l'email courant (login) du client...
 if(arguments.length>0) var login=arguments[0];

 var form=document.getElementById("frmclient");
 //tests des champs obligatoires...
 if(Trim(form.fldraisonsociale.value)=="" && Trim(form.fldnotva.value)!="") {
  msg=msg+"Merci de saisir une raison sociale\n";
 }
 if(Trim(form.fldraisonsociale.value)!="" && Trim(form.fldnotva.value)=="") {
  msg=msg+"Merci de saisir un numéro de TVA\n";
 }
 if(Trim(form.fldnom.value)=="") {
  msg=msg+"Merci de saisir un nom\n";
 }
 if(Trim(form.fldprenom.value)=="") {
  msg=msg+"Merci de saisir un prénom\n";
 }
 if(Trim(form.fldadresse.value)=="") {
  msg=msg+"Merci de saisir une adresse (facturation)\n";
 }
 if(Trim(form.fldcp.value)=="") {
  msg=msg+"Merci de saisir un code postal (facturation)\n";
 }
 if(Trim(form.fldville.value)=="") {
  msg=msg+"Merci de saisir une ville (facturation)\n";
 }
 if(Trim(form.fldpays.value)=="") {
  msg=msg+"Merci de saisir un pays (facturation)\n";
 }
 if(Trim(form.fldtelephone.value)=="" && Trim(form.fldmobile.value)=="") {
  msg=msg+"Merci de saisir un numéro de téléphone ou de mobile\n";
 }
 if(Trim(form.fldmel.value)=="") {
  msg=msg+"Merci de saisir une adresse de messagerie\n";
 } else {
  if(CheckEmail(Trim(form.fldmel.value))==false) msg=msg+"Merci de saisir une adresse de messagerie valide\n";
 }
 if(Trim(form.fldmotpasse.value)=="") {
  msg=msg+"Merci de saisir un mot de passe\n";
 }
 if(Trim(form.fldmotpasse2.value)=="") {
  msg=msg+"Merci de resaisir le mot de passe (confirmation)\n";
 }
 if(Trim(form.fldmotpasse.value)!="" && Trim(form.fldmotpasse2.value)!="") {
  if(Trim(form.fldmotpasse.value)!=Trim(form.fldmotpasse2.value)) {
   msg=msg+"Le mot de passe de confirmation ne correspond pas\n";
  }
 }
 //faut-il aussi verifier les infos de livraison ?...
 if(!form.fldidemfacturation.checked) {
  if(Trim(form.flddestinataire.value)=="") {
   msg=msg+"Merci de saisir un destinataire (livraison)\n";
  }
  if(Trim(form.fldlivraisonadresse.value)=="") {
   msg=msg+"Merci de saisir une adresse (livraison)\n";
  }
  if(Trim(form.fldlivraisoncp.value)=="") {
   msg=msg+"Merci de saisir un code postal (livraison)\n";
  }
  if(Trim(form.fldlivraisonville.value)=="") {
   msg=msg+"Merci de saisir une ville (livraison)\n";
  }
  if(Trim(form.fldlivraisonpays.value)=="") {
   msg=msg+"Merci de saisir un pays (livraison)\n";
  }
 }
 //cas particliers input type radio...
 radiochecked=false;
 if(!form.fldpaiement.length) {
  //si un seul bouton radio...
  if(form.fldpaiement.checked==true) radiochecked=true;
 } else {
  //si plusieurs boutons radio...
  for(i=0;i<form.fldpaiement.length;i++){
   if(form.fldpaiement[i].checked==true) radiochecked=true;
  }
 }
 if(radiochecked==false) {
  msg=msg+"Merci de choisir un mode de règlement\n";
 }
 if(!form.fldcgv.checked) {
  msg=msg+"Merci de lire et d\'accepter les conditions générales de vente\n";
 }

 //doit-on verifier l'existence du compte client ?...
 if(Trim(form.fldmel.value)!="") {
  if(CheckEmail(Trim(form.fldmel.value))==true) {
   if(Trim(form.fldmotpasse.value)!="" && Trim(form.fldmotpasse2.value)!="") {
    if(Trim(form.fldmotpasse.value)==Trim(form.fldmotpasse2.value)) {
     //les infos d'identification sont conformes...
     if(login!="") {
      //phase de modification du compte client...
      if(login.toLowerCase()!=form.fldmel.value.toLowerCase()) {
       //il y a eu modification du champ email...
       //il faut donc verifier la présence du nouvel email dans la base...
       checklogin=true;
      }
     } else {
      //phase de creation du compte client...
      //il faut donc verifier la présence de cet email dans la base...
      checklogin=true;
     }
    }
   }
  }
 }

 //retour...
 if(msg!="") {
  alert("Saisie erronée !\n"+msg);
  return false;
 //} else return true;
 } else {
  //doit faire un check du login en plus ?...
  if(checklogin) {
   //creation XHR...
   var myXHR = NewXHR();
   //ouvre la requete vers la page désirée...
   //myXHR.open('POST',RootURL+Service,true);
   //url en chemin absolu ne marche pas sur Safari Mac...
   myXHR.open('POST',Service,true);
   //gestion du cache du navigateur...
   myXHR.setRequestHeader("Cache-Control","no-cache");
   myXHR.setRequestHeader("Pragma","no-cache");
   //on force le type form dans le header...
   myXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   //la fonction de retour...
   myXHR.onreadystatechange = function () {
    if (myXHR.readyState==4 && myXHR.status==200) {
     var retour = myXHR.responseText;
     if(retour=="ko") {
      //login inconnu... c'est parfait... on valide...
      form.submit();
     } else {
      //login existant...
      alert("Validation impossible !\nCette adresse de messagerie est déjà utilisée par un autre client\n\nMerci de vérifier et de corriger votre saisie\n\nS\'il n\'y a pas d\'erreur dans votre saisie merci de retourner\nsur l\'écran d\'identification pour accéder à votre fiche client");
     }
    }
   }
   //on envoi la requete...
   myXHR.send("requete=checkemail&email="+Trim(form.fldmel.value)+"&cc="+new Date().getTime());
   return false;
  } else {
   //tout est ok et pas besoin de faire un check du login...
   return true;
  }
 }

}

function changeFormClient() {
 var checkboxchecked;
 var form=document.getElementById("frmclient");
 checkboxchecked=form.fldidemfacturation.checked;
 if(checkboxchecked) {
  document.getElementById("infosliv").style.display="none";
 } else {
  document.getElementById("infosliv").style.display="block";
 }
}

// fonction d'ajout au panier...

function addCart(id,t,c,q) {
 //boite de dialogue...
 var Message;
 //creation XHR...
 var myXHR = NewXHR();
 //ouvre la requete vers la page désirée...
 //myXHR.open('POST',RootURL+Service,true);
 //url en chemin absolu ne marche pas sur Safari Mac...
 myXHR.open('POST',Service,true);
 //gestion du cache du navigateur...
 myXHR.setRequestHeader("Cache-Control","no-cache");
 myXHR.setRequestHeader("Pragma","no-cache");
 //on force le type form dans le header...
 myXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 //la fonction de retour...
 myXHR.onreadystatechange = function () {
 if (myXHR.readyState==4 && myXHR.status==200) {
  var panier = myXHR.responseText;
  if(panier!="vide") {
   panier = panier.split("|");
   document.getElementById("nbarticle").innerHTML=panier[0];
   document.getElementById("prixtotal").innerHTML=panier[1];
   //si 1er article dans le panier alors activer le bouton commander...
   if(panier[0]>='1'){
    document.getElementById("commander").innerHTML="<a href=\"index.asp?menu=panier&cc="+new Date().getTime()+"\"><img src=\"images/dot.gif\" title=\"Commander\" alt=\"commander\" /></a>";
    //actions supplémentaires...
    Message="";
    Message=Message+"<table><tr><td>";
    Message=Message+"<span class=\"titre\">Article ajouté au panier</span><br />";
    Message=Message+"Vous pouvez maintenant<br />";
    Message=Message+"<a href=\"#\" onclick=\"closeBox();return false;\">continuer vos achats</a> ou <a href=\"index.asp?menu=panier&cc="+new Date().getTime()+"\">visualiser votre panier</a>";
    Message=Message+"</td></tr></table>";
    //document.getElementById("message").innerHTML="<table><tr><td><span class=\"titre\">Article ajouté au panier</span><br />Vous pouvez maintenant<br /><a href=\"#\" onclick=\"closeBox();return false;\">continuer vos achats</a> ou <a href=\"index.asp?menu=panier&cc="+new Date().getTime()+"\">visualiser votre panier</a></td></tr></table>";
    document.getElementById("message").innerHTML=Message;
    openBox();
    }
   } else {
    document.getElementById("nbarticle").innerHTML="votre panier";
    document.getElementById("prixtotal").innerHTML="est vide";
    document.getElementById("commander").innerHTML="<img src=\"images/bouton_commander_off.png\" alt=\"commander\" />";
   }
  }
 }
 //on envoi la requete...
 myXHR.send("requete=addcart&id="+id+"&t="+t+"&c="+c+"&q="+q+"&cc="+new Date().getTime());
}

// restauration du panier du client...
function reloadPanier(duree) {

 var Message;

 Message="";
 Message=Message+"<table><tr><td>";
 Message=Message+"<span class=\"titre\">Panier restauré</span><br />";
 Message=Message+"Le contenu de votre panier est conservé pendant "+duree+" jours.<br />";
 Message=Message+"Nous venons de le restaurer automatiquement.<br />";
 Message=Message+"Vous pouvez maintenant<br />";
 Message=Message+"<a href=\"#\" onclick=\"closeBox();return false;\">continuer vos achats</a> ou <a href=\"index.asp?menu=panier&cc="+new Date().getTime()+"\">visualiser votre panier</a>";
 Message=Message+"</td></tr></table>";

 document.getElementById("message").innerHTML=Message;
 openBox();

}

// fonctions de gestion de la boite de dialogue avec applat sur tout le site...

function openBox() {

 var applat = document.getElementById('applat');
 var message = document.getElementById('message');

 if(IsIE6) {
  //traitement du bloc applat...
  applat.style.position='absolute';
  //zone entiere qu'occupe la page dans le navigateur...
  applat.style.height = document.documentElement.scrollHeight + 'px';
  //positionnement du bloc message...
  message.style.background='white';
  message.style.marginTop = document.documentElement.scrollTop + Math.round((document.documentElement.clientHeight-280)/2) + 'px';
 }

 applat.style.display='block';
 message.style.display='block';
}

function closeBox() {
 var applat = document.getElementById('applat');
 var message = document.getElementById('message');
 applat.style.display='none';
 message.style.display='none';
}

// fonctions de gestion des menus au survol...

function showMenuCategorie(id,nbcat) {
 var i;
 //on efface tous les menus...
 for(i=0;i<=nbcat;i++) {
  //document.getElementById('cat'+i).style.display='none';
  if(document.getElementById('cat'+i)!=null) document.getElementById('cat'+i).style.display='none';
 }
 //et on affiche le bon...
 document.getElementById('cat'+id).style.display='block';

 //et on met en surbrillance l'intitulé dans le menu categorie...
 if(id!=0) {
  for(i=1;i<=nbcat;i++) {
   //removeClass(document.getElementById('mcat'+i),"sel");
  if(document.getElementById('mcat'+i)!=null) removeClass(document.getElementById('mcat'+i),"sel");
  }
  addClass(document.getElementById('mcat'+id),"sel");
 } else {
  for(i=1;i<=nbcat;i++) {
   //removeClass(document.getElementById('mcat'+i),"sel");
  if(document.getElementById('mcat'+i)!=null) removeClass(document.getElementById('mcat'+i),"sel");
  }
 }

}

