/**
* gère les appels synchrone asynchrone
 * @param  url  du script appelé
  * @param  request chaine de valeur envoyé à ce script
  * @param  callback fonction appelé en retour (pour asynchrone)
 */
function execHttpRequest(url, request, callback) {
  //fction httprequest
  var httpRequest = null;
  var async = (arguments.length==3)?true:false;
  if (window.XMLHttpRequest)
    httpRequest = new XMLHttpRequest();
  else if (window.ActiveXObject) {
    try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
       try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (e) {}
    }
  }
  else {
    alert ("Votre navigateur ne supporte pas l'objet XMLHTTP.");
    return false;
  }
  if (async) httpRequest.open('POST', url, true);
  else httpRequest.open('POST', url, false);
   httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//   if (httpRequest.overrideMimeType) httpRequest.setRequestHeader("Connection", "close");
  if (async) {
     var f = function() {
     // readyState
     // 0 (uninitialized)  non initialisé
     // 1 (loading)  début du transfert des données
     // 2 (loaded)  données transférées
     // 3 (interactive)  les données reçues sont accessibles en partie
     // 4 (complete)  les données sont complètement accessibles
     if (httpRequest.readyState==4) {
       //try {
         //alert(httpRequest.responseText);
       if (httpRequest.status==200) callback(httpRequest.responseText,httpRequest.status);
       //else alert (httpRequest.status+"error ocurred whilst loading the page")
       //} catch (ex) {alert (httpRequest.status);}
       }
    }
    httpRequest.onreadystatechange = f;
  }
  httpRequest.send(request);
  if (!async) {
    if (httpRequest.readyState==4) {
     try {
       if (httpRequest.status==200)  return httpRequest.responseText;
       else alert (httpRequest.status);
     }
     catch (ex) {
       //alert (ex.message);
     alert ("Problème de connexion au serveur !");
     }
   }
 }
}

uploadok=false;
function uploadStart(id) {
  uploadok=false;
  modal(1);
  document.getElementById('progressbar').style.width=0;
  document.getElementById('progressbarinfo').innerHTML='';
  document.formupload.telecharger.disabled=false;
  document.formupload.action='/cgi-bin/upload.cgi?uploadid='+id+"&scripturl="+escape("/upload.php");
//  document.formupload.action='/cookbook/upload.php';
  document.formupload.id.value = id;
  var obj = document.getElementById('uploadForm');
  obj.style.left = document.body.clientWidth/2 - obj.offsetWidth/2;
  obj.style.top = document.body.clientHeight/2 - obj.offsetHeight/2;
}

function uploadEnd(erreur,ext) {
  uploadok=true;
  document.getElementById('uploadForm').style.top=-500;
  document.getElementById('uploadForm').style.left=-500;
  if (!erreur) rec_selectImage('clients/'+document.formupload.id.value+'.'+ext);
  modal(0);
}

function startUploadMonitor() {
  if (navigator.userAgent.indexOf('MSIE')!=-1 && navigator.userAgent.indexOf('PowerPC')!=-1) {
    document.getElementById('uploadForm').style.top=-500;
    document.getElementById('uploadForm').style.left=-500;
    return;
  }
  if (uploadok) return;
  if (document.getElementById('progressbarjs')) document.body.removeChild(document.getElementById('progressbarjs'));
  var s = document.createElement('SCRIPT');
  s.setAttribute('id','progressbarjs');
  s.setAttribute('src','uploadmonitor.php?uploadid='+document.formupload.id.value+'&rand='+Math.random());
  document.body.appendChild(s);
  window.setTimeout("startUploadMonitor()",4000);
}
function setProgressbarValues (done,total,starttime,time) {
  var pc = Math.round(100*done/total);
  document.getElementById('progressbar').style.width=pc+'%';
  document.getElementById('progressbarinfo').innerHTML=pc+'% transferred (speed '+Math.round(done/(time-starttime)/100)/10+' kBs)';

}
function modal(status) {
  if (!document.getElementById('persoMasque')) {
    var persoMasque = document.createElement('DIV');
    persoMasque.id = "persoMasque";
    persoMasque.style.position = "absolute";
    persoMasque.style.top = 0;
    persoMasque.style.left = 0;
    persoMasque.style.zIndex = 2;
    persoMasque.style.width = (document.body.offsetWidth>document.body.scrollWidth) ? document.body.offsetWidth : document.body.scrollWidth;
    persoMasque.style.height = (document.body.offsetHeight>document.body.scrollHeight) ? document.body.offsetHeight : document.body.scrollHeight;
    persoMasque.style.backgroundColor = "black";
    if (!(navigator.userAgent.indexOf('Macintosh')!=-1 && navigator.userAgent.indexOf('Gecko')!=-1 && navigator.userAgent.indexOf('Safari')==-1)) persoMasque.style.opacity = 0.70;
    persoMasque.style.filter = "alpha(opacity=70)";
    document.body.appendChild(persoMasque);
  }
  document.getElementById('persoMasque').style.visibility = (status) ? "visible" : "hidden";
  if (navigator.appVersion.match(/MSIE [0-6]/)) document.getElementById('pageid').style.visibility = (status) ? "hidden" : "visible";
}

function uniqid () {
  var d = new Date();
  var ts = Date.UTC(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate(),d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds(),d.getUTCMilliseconds());
  var r = Math.floor(Math.random()*1000000);
  return (ts.toString()+r.toString())
}

function trimFields(form) {
  var l = form.getElementsByTagName('INPUT');
  for (var i=0;i<l.length;i++) {
    if (l[i].type!="text" && l[i].type!="password") continue;
    l[i].value = l[i].value.replace(/[\r\n\t]/g,'');
    l[i].value = l[i].value.replace(/(^ +)|( +$)/g,'');
  }
}

//création à partir d'un livre existant
function sui_newFrom (f) {
  var v = f.newFrom.value;
  if (v) {
    if (confirm("Êtes-vous sûr de vouloir créer un nouveau livre de cuisine à partir de celui-ci ?"))
      f.submit();
  }
  else alert ("Veuillez sélectionner un livre de cuisine !");
}

//suppression d'un livre
function sui_rmLivre () {
  if (confirm('Voulez-vous vraiment supprimer ce livre et toutes les recettes qu\'il contient ?')) {
    return true;
  }
  return false
}

function detailLivre (id) {
  var el = document.getElementById("detail_"+id);
  if (el.style.display!="none") el.style.display="none";
  else el.style.display="";

}

function rec_init() {
  if (document.getElementById('edit')) {
    rec_selectImage(document.maform.illustration.value);
    //rec_setIntitule('Titre de la recette');
  }
}

//var v = "fsdfs\t  fsdf".replace(/((\r)(\n?))+/g,'$2$3').replace(/( *)((\r)(\n?))( *)/g,'$2').replace(/^( +)/,'').replace(/( +)$/,'').replace(/( +)/g,' ').replace(/\t/g,'');

//enregistrement intitulé
function rec_saveIntitule() {
  var f = document.maform;
  if (document.getElementById('edit')) {
    if (document.getElementById('edit').getAttribute('isedit')==1) {
       f.intitule.value = ac_codeSrc().replace(/[\r\n]/g,'').replace(/<br>/gi,'\r\n').replace(/<[^>]+>/g,'').replace(/&nbsp;/gi,' ').replace(/(^ +)|( +$)/g,'').replace(/[\x81\x7F\x82\x8F\x90\x9D]/g,'');
    }
  }
}

//traitement des sauts de lignes et espace en trop [ \.-]
function rec_formatText(v) {
  return v.replace(/((\r)?(\n)+)+/g,'$2$3').replace(/( *)((\r?)(\n+))([ \.-]*)/g,'$2').replace(/^((\r)?(\n)+)/,'').replace(/((\r)?(\n)+)$/,'').replace(/^([ \.-]+)/,'').replace(/( +)$/,'').replace(/( +)/g,' ').replace(/\t/g,'').replace(/\(( +)/g,'(').replace(/( +)\)/g,')').replace(/((\r)?(\n)+)+/g,'$2$3');
}

//appelée à chaque save y compris les autos (qd chs)
function rec_sendForm() {
  
  var reset_recette = "";
  if(document.getElementById('reset_recette')){
	reset_recette = document.getElementById('reset_recette').value;
  }
  if(reset_recette != 'reset_recette'){
  	if(document.getElementById('cookbook_titre')){
		if(rec_change_cb_titre() == false){return false};
		if(rec_cb_titre() == false){return false};
	}
  	if (document.getElementById('edit')) {
		var f = document.maform;
		if(!document.getElementById('nom') && f.intitule.value == "" && f.auteur.value == "" && f.preparation.value == "" && f.ingredient.value == "Saisissez la liste des ingrédients ici…"){
			return true;
		}else{
			if (document.getElementById('cookbook_date_limite')) {
    			if(rec_date_limite() == false){return false};
			}
			if (document.getElementById('nom')) {
	  			if(!f.nom.value){
	    			alert("Le nom de l'élève est obligatoire.");
	    			return false;
      			}
			}
			if (document.getElementById('email')) {
				if(f.email.value){
      				if(rec_email() == false){return false};
				}
			}
    		if(!f.auteur.value){
	  			alert("Le nom de l'auteur est obligatoire.");
	  			return false;
    		}			
    		if(rec_titre() == false){return false};   		
    		f.preparation.value = rec_formatText(f.preparation.value);
    		if(rec_preparation() == false){return false}; 
    		if(rec_ingredient() == false){return false};
	    	if(rec_preparation_vide() == false){return false};
    		if(rec_ingredient_vide() == false){return false};
    		if(rec_tps_preparation() == false){return false};
    		if(rec_tps_cuisson() == false){return false};
		}
  	}

  	return true;
  }
}

//fonction testant le format de la date

function rec_date_limite() {
    var f = document.maform;
	if(!f.cookbook_date_limite.value.match(/^[0-9]{1,2}\/[01]?[0-9]\/[0-9]{4}$/) && f.cookbook_date_limite.value!="00/00/0000" && f.cookbook_date_limite.value!="JJ/MM/AAAA" && f.cookbook_date_limite.value!=""){
	alert("La date limite de saisie n'est pas valide.");
	return false;
	}
}

//vérifie l'email
function rec_email(){
  var f = document.maform;
  if(!f.email.value.match(/[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+[.]+[a-zA-Z]+/)){
	alert("L'adresse email n'est pas valide.");
	return false;
  }
}

function rec_titre_touch(evt) {
	var keyCode = evt.which ? evt.which : evt.keyCode;
	
	if (keyCode != 13) {
	
		rec_titre();
	}
}

//vérifie le titre en même tps que la saisie
function rec_titre(){

  var f = document.getElementById('edit');
  if (f) {
    rec_saveIntitule();

	if (!document.getElementById('edit').value) {
       	alert("La recette ouverte doit comporter un titre.");
       	document.getElementById("edit").focus();
       	return false;
    }
    var mots = f.value.match(/([^\r\n ])+/g);
    if (mots) {
      if (mots.length>15) {
        alert ("Le titre de la recette ne doit pas dépasser les 15 mots.\nActuellement il en contient "+mots.length+".");
        return false;
      }
      else if (f.value.length>65) {
        alert ("Le titre de la recette ne doit pas dépasser 65 caractères.\nActuellement il en contient "+f.value.length+".");
        return false;
      }
    }
 }


}


//vérifie le champ préparation en même tps que la saisie
function rec_preparation(){
  var f = document.maform;
  var t = 0;
  t = f.preparation.value.length;
  if (t>900) {
    alert("Vous avez saisi trop de texte dans le champ 'Préparation'. \nVous avez "+t+" caractères pour 900 maximum.");
    return false;
  }
}

//vérifie le champ cb titre en même tps que la saisie
function rec_cb_titre(){
  var f = document.maform;
  var t = 0;
  t = f.cookbook_titre.value.length;
  if (t>80) {
    alert("Vous avez saisi trop de texte dans le champ 'Titre du livre'. \nVous avez "+t+" caractères pour 80 maximum.");
    return false;
  }
}

//vérifie si le titre du cookbook a été changé
function rec_change_cb_titre(){
  var f = document.maform;
  if (!f.cookbook_titre.value || f.cookbook_titre.value == "Mon livre de recettes") {
    alert ("Votre livre doit avoir un titre.");
    return false;
  }
}

//efface le titre
function effacer_titre() {
	if(document.getElementById("edit").value=="Titre de la recette") {
		document.getElementById("edit").value="";
	}

}

//efface le titre par défault lors du premier focus
function init_titre(){
	if(document.maform.cookbook_titre.value == "Mon livre de recettes") {
		document.maform.cookbook_titre.value = '';
	}
}

//vérifie le champ préparation en même tps que la saisie
function rec_preparation_vide(){
  var f = document.maform;
  if (!f.preparation.value) {
    alert("Le champ préparation est vide.");
	document.getElementById("car_preparation").innerHTML=900;
    return false;
  }
}

//fonction de vérification du champs de saisie des ingrédients max 16 lignes, 25 car/lig, 25 car dernière lig, max 400 car total
function rec_ingredient(){
  var f = document.maform;
  var t = 0;
  var nb_ligne_tot = 0;
  var v_ing = "";
  //f.ingredient.value = rec_formatText(f.ingredient.value);
  t = f.ingredient.value.length;
  var tab_ingredient=f.ingredient.value.split("\n");
  var nb_ligne_tot = 0;
  var v_ing = "";
  if(t > 400){
	alert("Vous avez saisi trop de texte dans le champ 'Dans mon panier'. \nVous avez "+t+" caractères pour 400 maximum.");
	return false;
  }
  for(var x = 0 ; x < tab_ingredient.length ; x++){
	if(tab_ingredient[x].length>25){
	  nb_ligne = Math.floor(tab_ingredient[x].length/25);
	  nb_ligne_tot += nb_ligne;
	  }else{
	  nb_ligne_tot++;
	  }
	  if(nb_ligne_tot > 16){
		document.getElementById("ingredient").value=v_ing;
		alert("Vous ne pouvez pas saisir plus de 16 lignes d'ingrédients.");
		return false;
		break;
	  }else if(nb_ligne_tot == 16){
		v_ing += (tab_ingredient[x].substr(0,24)).replace(/[\r\n]/g,'');
		if(tab_ingredient[x].length>25){
		  alert("La dernière ligne ne peut être supérieure à 25 caractères.");
		  document.getElementById("ingredient").value=v_ing;
		  return false;
		}
	  }else if(nb_ligne_tot < 16){
		v_ing += tab_ingredient[x]+"\n";
	  }
  }
  if(t == 0){
	document.getElementById("nb_ingredient").innerHTML=16;
  }
}

function rec_ingredient_vide(){
  var f = document.maform;
  if(!f.ingredient.value || f.ingredient.value=="Saisissez la liste des ingrédients ici…"){
	alert("Votre panier est vide.");
	return false;
  }
}

//vérifie le champ temps de préparation en même tps que la saisie
function rec_tps_preparation(){
  var f = document.maform;
  var t = 0;
  t = f.temps_preparation.value.length;
  if (t>13) {
      alert("Vous avez saisi trop de texte dans le champ 'temps de préparation'. \nVous avez "+t+" caractères pour 13 maximum.");
	return false;
  }
}

//vérifie le champ temps de cuisson en même tps que la saisie
function rec_tps_cuisson(){
  var f = document.maform;
  var t = 0;
  t = f.temps_cuisson.value.length;
  if (t>13) {
      alert("Vous avez saisi trop de texte dans le champ 'temps de cuisson'. \nVous avez "+t+" caractères pour 13 maximum.");
	return false;
  }
}

//confirm av terminer la cmd
function rec_submitCmd() {
  var f = document.maform;

  if (!f.cookbook_titre.value || f.cookbook_titre.value == "Mon livre de recettes") {
    alert ("Votre livre doit avoir un titre ");
    return false;
  }
  if (confirm("Le texte de vos recettes ne sera pas corrigé.\nAssurez vous donc de bien avoir revu l\'ensemble des recettes saisies.")){
    return true;
  }else{
	return false;
  }

  return true;
}

//suppression d'un livre
function rec_rmLivre() {
  if (confirm('Voulez-vous vraiment supprimer ce livre et toutes les recettes qu\'il contient ?')) {
    document.maform.supp_cookbook.value=1;
    rec_sendForm();
    //document.maform.submit();
    return true;
  }
}

//sélection d'une recette
function rec_selectRec(idEl) {
   
   document.maform.ouvre_recette.value=idEl;
      
   if (document.getElementById("edit"))  {

       if (verifier_saisie_recette(idEl) == true) {      
           
           if (rec_sendForm()) document.maform.submit();
       }

   }
   else {

       if (rec_sendForm()) document.maform.submit();
   }
   
}

//chgmt du type de plat
function rec_changePlat(v) {
  //if (document.getElementById('edit').getAttribute('isedit')==1) rec_sendForm();
  //else
  document.getElementById('blocdroit').className='fondtypeplat'+v;
}

//suppression d'une recette
function rec_rmRec(idEl) {
  if (confirm("Voulez-vous vraiment supprimer cette recette ?")) {
    document.maform.supp_recette.value=idEl;
    document.maform.submit();
  }
}

//revenir à l'accueil
function rec_go(v) {
    
  var f = document.maform;
  
  if (verifier_saisie_recette(v) == true) {

      if (!f.cookbook_titre.value) {
        alert ("Votre livre doit avoir un titre !");
      }
      else {

        document.maform.go.value = v;
        rec_saveIntitule();
        if (rec_sendForm()) document.maform.submit();
        //document.maform.submit();
      }
      
  }

}

function verifier_saisie_recette(v) {

  var redirection = 0;
  var f = document.maform;
  
  if (document.getElementById("edit")) {
      
      // VŽrifie si la recette est vide ou complete
      var intitule = document.getElementById("edit").value;
      var auteur = f.auteur.value;
      var nb_personne = f.nb_personne.value;
      var preparation = f.preparation.value;
      var temps_preparation = f.temps_preparation.value;
      var temps_cuisson = f.temps_cuisson.value;
      var id_thermostat = f.id_thermostat.options[f.id_thermostat.selectedIndex].innerHTML;
      var ingredient = document.getElementById("ingredient").value;

      if (((intitule != "Titre de la recette" || intitule != "") && auteur != "" && preparation != "" && (ingredient != "Saisissez la liste des ingrédients ici…" || ingredient != "")) || ((intitule == "Titre de la recette" || intitule == "") && auteur == "" && preparation == "" && (ingredient == "Saisissez la liste des ingrédients ici…" || ingredient == ""))) {
          redirection = 1;
      }

  }
  
  if (redirection) {
      
      switch(v) {
          case "accueil" : 
             window.location.href = "/suivi.php";
             break;
          case "index" :
             window.location.href = "/index.php";
             break;
          case "deconnexion" :
             window.location.href = "/deconnexion.php";
             break;             
          default : 
             document.maform.submit();
             break;
      }
      
      return false;
  }
  else {
      return true;
  }
    
}

//verif taille max des champs ingrédients et astuces
/* function rec_maxPanierAstuces(el) {
  var f = el.form;
  if ((f.ingredient.value.length+f.astuce.value.length)>150) {
    alert('La somme des champs Ingrédients et Astuces dépasse la taille maximum');
    el.value=el.value.substring(0,el.value.length-1);
    return false;
  }
} */


// function rec_autosave(f) {
//
//   f.target='bg';
//   rec_sendform();
//   f.target='';
// }

function rec_saveFocus(nom) {
  if(document.getElementById('edit')){
    if (!document.maform.id_recette.value && document.getElementById('edit').getAttribute('isedit')==1) {
       document.maform.focus.value = nom;
       // enelvé SL 25/10/08 pb message intempestif
       //rec_sendForm();
    }
  }
}

function rec_rmImg() {
  if (confirm('Voulez-vous vraiment supprimer cette image ?')) {
    rec_selectImage('');
  }
  return false;
}

function rec_ouvreBiblio() {
  modal(1);
  var divbiblio = document.getElementById('divbiblio');
  divbiblio.style.visibility='visible';
  divbiblio.style.zIndex = 3;
  document.getElementById('biblioimage').innerHTML = execHttpRequest("biblio.php");
  divbiblio.style.left = document.body.clientWidth/2 - divbiblio.offsetWidth/2;
  divbiblio.style.top = document.body.clientHeight/2 - divbiblio.offsetHeight/2;
  divbiblio.onclick = function () {this.style.visibility='hidden';modal(0);}
}
function rec_selectImage(img) {
  var ext =(img.match(/bibli_/))?"gif":"jpg";
  document.maform.illustration.value = img;
  var img_preview = img.replace(/\.(\w+)$/,'_preview.'+ext);
  //img_preview = img_preview.replace('clients/','/clients/cookbook/');
  if (!img_preview.length) img_preview='bibliotheque/def_preview.gif';
  document.getElementById('image').src = img_preview;
}

function rec_setIntitule(def) {
 
  if (document.maform.intitule.value.length) {
     document.getElementById('edit').setAttribute('isedit','1');
     ac_init('edit',document.maform.intitule.value.replace(/\r?\n/g,'<br>'));
  }
  else {
     ac_init('edit',def);
  }
}

function rec_filtre() {
	if (verifier_saisie_recette() == true) {
        if (rec_sendForm()) document.maform.submit();
    }
}

function rec_show_all(){

    if (verifier_saisie_recette() == true) {
        document.getElementById("filtre").value="";
        if (rec_sendForm()) document.maform.submit();
    }
}

/* function rec_getIntitule() {
  //alert(document.getElementById('edit').getAttribute('isedit'))
  if (document.getElementById('edit').getAttribute('isedit'))
     document.maform.intitule.value = ac_codeSrc().replace(/<br>/gi,'\r\n').replace(/<[^>]+>/g,'').replace(/(^ +)|( +$)/g,'').replace(/\x81//g,'');
} */

function liv_verif() {
  var msg ="";
  if (document.form_client.etablissement.value =="")
    msg="Veuillez indiquez le nom de votre établissement !\n";
  if (document.form_client.adresse.value =="")
    msg=msg+"Veuillez indiquer votre adresse !\n";
  if (document.form_client.cp.value.length>9)
    msg=msg+"Le format de votre code postal est invalide\n";
  if (document.form_client.ville.value =="")
    msg=msg+"Veuillez indiquer votre ville !\n";
  //if (document.form_client.email.value=="" || !document.form_client.email.value.match(/^[\w\_\.\- ]+@[\w\.\-]+\.[\w ]+$/))
  if (document.form_client.email.value=="" || !document.form_client.email.value.match(/^(\w+\-?\.?_?)*\w+@([\w\-]+\.)+\w+$/))
    msg=msg+"Votre adresse email est invalide !\n";
  if (document.form_client.tel.value =="")
    msg=msg+"Veuillez indiquer votre numéro de téléphone !\n";
  if (document.form_client.liv_nom.value =="")
    msg=msg+"Veuillez indiquer le nom de la personne qui réceptionnera les colis !\n";
  if (document.form_client.liv_prenom.value =="")
    msg=msg+"Veuillez indiquer le prénom de la personne qui réceptionnera les colis !\n";
   //msg=verif_date();
   //liv_date();

  if (document.form_client.invoice_address.value=="Nouvelle adresse") {
  	if (document.form_client.fac_adresse.value =="")
    	msg=msg+"Veuillez indiquer votre adresse de facturation !\n";
  	if (document.form_client.fac_cp.value.length>9)
    	msg=msg+"Le format de votre code postal de facturation est invalide\n";
  	if (document.form_client.fac_ville.value =="")
    	msg=msg+"Veuillez indiquer votre ville de facturation !\n";
  	if (document.form_client.fac_email.value=="" || !document.form_client.fac_email.value.match(/^(\w+\-?\.?_?)*\w+@([\w\-]+\.)+\w+$/))
    	msg=msg+"Votre adresse email de facturation est invalide !\n";
  	if (document.form_client.fac_tel.value =="")
    	msg=msg+"Veuillez indiquer votre numéro de téléphone de facturation !\n";
  	if (document.form_client.fac_nom.value =="")
    	msg=msg+"Veuillez indiquer le nom de la personne à facturer !\n";
  	if (document.form_client.fac_prenom.value =="")
    	msg=msg+"Veuillez indiquer le prénom de la personne à facturer !\n";
  }else{
	document.form_client.fac_etablissement.value = document.form_client.etablissement.value;
	document.form_client.fac_civilite.value = document.form_client.civilite.value;
	document.form_client.fac_nom.value = document.form_client.liv_nom.value;
	document.form_client.fac_prenom.value = document.form_client.liv_prenom.value;
    document.form_client.fac_adresse.value = document.form_client.adresse.value;
    document.form_client.fac_adresse2.value = document.form_client.adresse2.value;
	document.form_client.fac_cp.value = document.form_client.cp.value;
	document.form_client.fac_ville.value = document.form_client.ville.value;
	document.form_client.fac_tel.value = document.form_client.tel.value;
	document.form_client.fac_mobile.value = document.form_client.mobile.value;
	document.form_client.fac_email.value = document.form_client.email.value;
  }

  if (msg) {
    alert (msg);
    msg="";
    return false;
  }
  return true;
}


function liv_date() {
  var date = verif_date();
  if (date) document.form_client.date_field.value=date;
  else document.form_client.date_field.value="";
}

function liv_send() {
  if (liv_verif()==true) return true;
  else return false;
}

function liv_go (v) {
  document.form_client.go.value = v;
  document.form_client.submit();
}

function liv_print () {
  liv_send();
}

function cmd_init(idEl) {
  var nb_recettes = document.getElementById("cbnbr_"+idEl).innerHTML;
  var errEl = document.getElementById("cmderror");
  if (!nb_recettes) {
    errEl.innerHTML = "Vous n'avez pas saisis de recettes !";
    errEl.className = "erreur";
  }
}

function cmd_qteChange(idEl,l) {
  var nb_recettes = document.getElementById("cbnbr_"+idEl).innerHTML;
  var qtEl = document.commande["cookbooks_"+idEl];
  var puEl = document.getElementById("cbpu_"+idEl);
  var mtEl = document.getElementById("cbmt_"+idEl);
  var mrEl = document.getElementById("cbmr_"+idEl);
  var errEl = document.getElementById("cmderror");
  var send = new Object();
  var r = null;
  send.action="qteChange";
  send.l = l;
  send.r = nb_recettes;

  if (!l || l==0 || isNaN(l)) {
    errEl.innerHTML = "Veuillez préciser le nombre de livres souhaité !";
    errEl.className = "error";
    qtEl.focus();
  }
  else if (send) {
    r = execHttpRequest("commande.requests.php",send.toJSONString());
    if (r) {
      r = r.parseJSON();
      puEl.innerHTML = r.pu;
      mtEl.innerHTML = r.mt;
      mrEl.innerHTML = r.mr;
      if (!r.error) {
        errEl.className = "error hidden";
        return r;
      }
      else {
        errEl.innerHTML = r.errorMsg;
        errEl.className = "error";
      }
    }
  }
  return null;
}

function cmd_submit(f,idEl) {
  var cbqtEl = document.getElementById("cbqt");
  var cbpuEl = f["cbpu_"+idEl];
  var r = null;
  if (r = cmd_qteChange(idEl,cbqtEl.value)) {
    cbpuEl.value = r.pu;
  }
  else return false;
  return true;
}

function kit_submit() {
  trimFields(document.f);
  var req = new Array('nb_eleve','nom','prenom','etablissement','adresse1','cp','ville','tel','email');
  var chA = new Array("Nombre d'élèves participants",'Nom','Prénom','Etablissement','Adresse','Code postal','Ville','Téléphone','E-mail');
  var ok = 1;
  var list = "Veuillez renseigner les champs suivants : \n";

  for (var i=0;i<req.length;i++) {
    if (!document.f[req[i]].value.match(/\w+/)) {
      list += " - "+chA[i]+"\n";
      ok = 0;
    }
  }

  if (!ok) {
    alert(list);
    return false;
  }

  if (document.f.email.value && !document.f.email.value.match(/^[\w\_\.\-]+@[\w\.\-]+\.[\w]+$/)) {
    alert("Votre adresse email est invalide");
    return false;
  }

  if (!document.f.cp.value.match(/^\d{5}$/)) {
    alert("Le code postal doit comporter cinq chiffres");
    return false;
  }

  if (document.f.cp.value.match(/^9[7-8]/)) {
    alert("Cette opération n'est proposée qu'en France métropolitaine");
    return false;
  }
  document.f.jcheck.value = String.fromCharCode(79)+String.fromCharCode(75);
  return true;
}

//fonction de verification du formulaire d'enregistrement

function reg_submit(){
  var f = document.form_registration;
  if(!f.nom.value){
	alert("Le nom est obligatoire.");
	return false;
  }
  if(!f.ecole.value){
	alert("Le nom de l'école est obligatoire.");
	return false;
  }
  if(!f.cp.value){
	alert("Le code postal est obligatoire.");
	return false;
  }
  if(!f.email.value){
	alert("L'adresse email est obligatoire.");
	return false;
  }
  if(reg_email() == false){return false};
  if(!f.tel.value){
	alert("Le numéro de téléphone est obligatoire.");
	return false;
  }
  if(!f.login.value){
	alert("Le nom d'utilisateur est obligatoire.");
	return false;
  }
  if(!f.password.value){
	alert("Le mot de passe est obligatoire.");
	return false;
  }
  f.jcheck.value = String.fromCharCode(79)+String.fromCharCode(75);
  return true;
}

function reg_email(){
  var f = document.form_registration;
  if(!f.email.value.match(/^[\w\.-]+@[\w\.-]+\.[a-zA-Z]+$/)){
	alert("L'adresse email n'est pas valide.");
	return false;
  }
}

function reg_login(login){
	if(login != 0){
	document.form_registration.login.value='';
	alert('Ce nom d\'utilisateur existe déjà.\nVeuillez en choisir un autre.');
	return false;
	}
}

//fonction qui efface le champs de saisie d'ingrédient au premier focus

function ing_clear(){

	if(document.getElementById("ingredient").value == "Saisissez la liste des ingrédients ici…"){
	var i_clear = 0;
	}else{
	var i_clear = 1;
	}

	if(i_clear != 1){
	document.getElementById("ingredient").value = '';
	i_clear = 1;
	}
}

//fonction qui affiche l'infobulle fct° js pour compatibilité ie<7

function show_bulle(e,nom,tel,mail,date_modification,heure_modification){
	var nom = nom;
	var tel = tel;
	var mail = mail;
	var date_modification = date_modification;
	var heure_modification = heure_modification;
	var text_info_bulle;
	e = e || window.event;
    var cursory
	if(window.event){
	  if(nom){
    	cursory = e.y-90;
		}else{
    	cursory = e.y-60;
	  }
	}else{
	  if(nom){
    	cursory = e.pageY-100;
		}else{
    	cursory = e.pageY-70;
	  }
	}

	if(nom != ""){
	text_info_bulle="Nom de l'élève : "+nom+"<br />Tél.: "+tel+"<br />Email: "+mail+"<br />Modifié le : "+date_modification+", "+heure_modification;
	}else{
	text_info_bulle="Modifié le : "+date_modification+", "+heure_modification;
	}

	document.getElementById("info_bulle").style.top=cursory;
    document.getElementById("text_info_bulle").innerHTML=text_info_bulle;
	document.getElementById("info_bulle").style.display="block";
}

function show_bulle_input(id){
	document.getElementById(id).style.display="block";
}

function show_bulle_commande(id){
	var navigateur = navigator.userAgent.toString();
    if(navigateur.indexOf("MSIE",1) != -1){
    pos = Element.viewportOffset("terminer");
	document.getElementById(id).style.left = pos["left"];
	document.getElementById(id).style.top = pos["top"]-38;
	}
	document.getElementById(id).style.display="block";
}

//fonction qui cache l'infobulle fct° js pour compatibilité ie<7

function hide_bulle(id){
	document.getElementById(id).style.display="none";
}

//detection du navigateur (verifie que ce n'est pas safari)

function detect_navigateur(){
	var navigateur = navigator.userAgent.toString();
	if(navigateur.indexOf("Safari",0) != -1 || navigateur.indexOf("Opera",0) != -1){
		if(navigateur.indexOf("Mac",1) != -1){
			if (confirm("Ce site est incompatible avec Safari, Opera et Google chrome. Veuillez utiliser Firefox.\nVoulez vous télécharger Firefox?")){window.location.href="http://www.mozilla-europe.org/fr/firefox/";}
		}else if(navigateur.indexOf("Windows",1 != -1)){
			alert("Ce site est incompatible avec Safari, Opera and Google chrome. Veuillez utiliser Internet Explorer.")
		}
	}
}

//detection ie6 pour attacher fuille de style complementaire
function style_ie6(){
	var navigateur = navigator.userAgent.toString();
	var e;
	  if(navigateur.indexOf("MSIE 6",1) != -1){
	  e=document.createElement('LINK');
      e.rel='stylesheet';
      e.type='text/css';
      e.href='css/ie6.css';
	  e.media='all';
      document.getElementsByTagName("head")[0].appendChild(e);
	}
}

//calcul du nombre de caractères restant dans le champs titre de la recette
function calcul_car_titre(){
	var nb_car_titre=document.getElementById("edit").value.length;
	document.getElementById("car_titre").innerHTML=65-nb_car_titre;
}

//calcul du nombre de caractères restant dans le champs titre du livre
function calcul_car_cb_titre(){
	var nb_car_cookbook_titre=document.maform.cookbook_titre.value.length;
	document.getElementById("car_cookbook_titre").innerHTML=80-nb_car_cookbook_titre;
}

//calcul du nombre de caractères restant dans le champs preparation
function calcul_car_preparation(){
	var nb_car_preparation=document.maform.preparation.value.length;
	document.getElementById("car_preparation").innerHTML=900-nb_car_preparation;
}

//calcul du nombre d'ingredients restant dans le champs ingredients
function calcul_nb_ingredient(){
    var nb_ingredient;
	if(document.getElementById("ingredient").value == '' || document.getElementById("ingredient").value == 'Saisissez la liste des ingrédients ici…'){
		nb_ingredient=16;
	}else{
		nb_ingredient=16-document.getElementById("ingredient").value.split("\n").length;
	}
	document.getElementById("nb_ingredient").innerHTML=nb_ingredient;
}

//fonction corrigeant le bug ie6 avec des select en dessous
function create_container(id){
	elt = new Container(id);
}

function hide_container(){
	elt.hide();
}

function remove_container(){
	try{elt.remove()}catch(e){};
}

//ouverture de la previsualisation PDF d'une recette
function open_preview_recette(id_recette){
window.open('recette_preview.php?ouvre_recette='+id_recette,'_blank');
}

//ouverture de la previsualisation PDF d'un cookbook
function open_preview_cookbook(id_cookbook){
window.open('cookbook_preview.php?id_cookbook='+id_cookbook,'_blank');
}

//date auto
function verif_date_auto(evenement,tdate) {

	var date;
	var iddate = tdate.id;
	var vdate = tdate.value;
	var ldate = vdate.length;
	var possla1 = vdate.indexOf("/",0);
	var possla2 = vdate.substr(ldate-1,1);
	var tab_date = new Array;
	tab_date = vdate.split("/");
	var ltab_date = tab_date.length;
	var keycode = window.event ? evenement.keyCode : evenement.which;

	if(keycode!=8) {
		if(keycode!=191 && keycode!=111) {
			if((((keycode>=52 && keycode<=57) || (keycode>=100 && keycode<=105) && ldate==1) || (((keycode>=50 && keycode<=57)|| (keycode>=98 && keycode<=105)) && ((ldate==3 && possla1==1) || (ldate==4 && possla1==2))) || (ldate==2 && possla1==-1) || (ldate==4 && possla1==1) || ldate==5) && ltab_date!=3){
				if((keycode>=100 && keycode<=105) && ldate==1) {
				date="0"+vdate+"/";
				} else if ((keycode>=98 && keycode<=105) && ((ldate==3  || ldate==4) && (possla1==1 || possla1==2) || ldate==5)) {
				t_date=vdate.split("/");
					if(parseInt(t_date[1],10)<10) {
						date=t_date[0]+"/0"+parseInt(t_date[1],10)+"/";
					} else {
						date=t_date[0]+"/"+parseInt(t_date[1],10)+"/";
					}

				} else {
				date=vdate+"/";
				}
				tdate.value=date;
			}

			if(ltab_date==3 && tab_date[2].substr(0,2)!=20 && tab_date[2].length==2){
			tab_date=vdate.split("/");
			tab_date[2]="20"+tab_date[2];
			date=tab_date[0]+"/"+tab_date[1]+"/"+tab_date[2];
			ldate=date.length;
			tdate.value=date;
			}
		} else if(keycode==191 || keycode==111) {
				date=vdate.substring(0,ldate-1);
				t_date=vdate.split("/");
				if(t_date[0].length==1 && t_date.length==2) {date="0"+t_date[0]+"/";}
			    if(t_date[1].length==1 && t_date.length==3) {
					if(parseInt(t_date[1],10)<10){
						date=t_date[0]+"/0"+parseInt(t_date[1],10)+"/";
					} else {
						date=t_date[0]+"/"+parseInt(t_date[1],10)+"/";
					}
				}
			    tdate.value=date;
		}

	}

}

//efface champ date
function efface(input){
	if(input.value=="JJ/MM/AAAA")
		input.value="";
}

//décryptage mail

function JSdecrypt(c) {
	var r = new String;
	for (var i=0;i<c.length;i+=2) {
		r += String.fromCharCode(((isNaN(c.charAt(i))?c.charCodeAt(i)-87:parseInt(c.charAt(i),10))*16+(isNaN(c.charAt(i+1))?c.charCodeAt(i+1)-87:parseInt(c.charAt(i+1),10)))-2-(i/2)%3);
	}
	return r;
}

//
function show_adresse(){
	if(document.getElementById("invoice_address").value=="Nouvelle adresse"){
		document.getElementById("show_invoice_address").style.display="block";
	}else if(document.getElementById("invoice_address").value=="Adresse de livraison"){
		document.getElementById("show_invoice_address").style.display="none";
	}
}
