// Variables globales
var xmlHttp;

// Fonction permettant de recopier les informations saisies dans la partie facturation dans la partie livraison
function CopieAdresse() {
	document.getElementById('societe_livraison').value = document.getElementById('societe_facturation').value;
	document.getElementById('nom_livraison').value = document.getElementById('nom_facturation').value;
	document.getElementById('prenom_livraison').value = document.getElementById('prenom_facturation').value;
	document.getElementById('adresse_livraison').value = document.getElementById('adresse_facturation').value;
	document.getElementById('complement_livraison').value = document.getElementById('complement_facturation').value;
	document.getElementById('cp_livraison').value = document.getElementById('cp_facturation').value;
	document.getElementById('ville_livraison').value = document.getElementById('ville_facturation').value;
	document.getElementById('pays_livraison').value = document.getElementById('pays_facturation').value;
	document.getElementById('tel_livraison').value = document.getElementById('tel_facturation').value;
	document.getElementById('mail_livraison').value = document.getElementById('mail_facturation').value;
}

// Fonction permettant de vérifier si tous les champs obligatoires ont bien été saisis
function VerifValidation() {
	// Variables locales
	var obj;

	// Contrôles au niveau des conditions générales de ventes
	obj = document.getElementById('checkcgv');
	if (! obj.checked) {
		window.alert('L\'acceptation des conditions générales de ventes est obligatoire');
		//document.getElementById('checkcgv').select();
		document.getElementById('checkcgv').focus();
		return false;
	}
	
	// Contrôles au niveau de la facturation
	obj = document.getElementById('societe_facturation');
	if (trim(obj.value)=='') {
		obj = document.getElementById('nom_facturation');
		if (trim(obj.value)=='') {
			window.alert('La société (ou le nom) est obligatoire au niveau de la facturation');
			document.getElementById('societe_facturation').select();
			document.getElementById('societe_facturation').focus();
			return false;
		}
	}
	obj = document.getElementById('adresse_facturation');
	if (trim(obj.value)=='') {
		window.alert('L\'adresse est obligatoire au niveau de la facturation');
		document.getElementById('adresse_facturation').select();
		document.getElementById('adresse_facturation').focus();
		return false;
	}
	obj = document.getElementById('cp_facturation');
	if (trim(obj.value)=='') {
		window.alert('Le code postal est obligatoire au niveau de la facturation');
		document.getElementById('cp_facturation').select();
		document.getElementById('cp_facturation').focus();
		return false;
	}
	obj = document.getElementById('ville_facturation');
	if (trim(obj.value)=='') {
		window.alert('La ville est obligatoire au niveau de la facturation');
		document.getElementById('ville_facturation').select();
		document.getElementById('ville_facturation').focus();
		return false;
	}
	obj = document.getElementById('tel_facturation');
	if (trim(obj.value)=='') {
		window.alert('Le téléphone est obligatoire au niveau de la facturation');
		document.getElementById('tel_facturation').select();
		document.getElementById('tel_facturation').focus();
		return false;
	}
	obj = document.getElementById('mail_facturation');
	if (trim(obj.value)=='') {
		window.alert('L\'adresse mail est obligatoire au niveau de la facturation');
		document.getElementById('mail_facturation').select();
		document.getElementById('mail_facturation').focus();
		return false;
	}
	else {
		// Une @mail est saisie, il faut tester si elle est valide
		if ( ! VerifMail(obj.value)) {
			window.alert('Adresse mail de facturation non valide');
			document.getElementById('mail_facturation').select();
			document.getElementById('mail_facturation').focus();
			return false;
		}
	}
	
	// Contrôles au niveau de la livraison
	obj = document.getElementById('societe_livraison');
	if (trim(obj.value)=='') {
		obj = document.getElementById('nom_livraison');
		if (trim(obj.value)=='') {
			window.alert('La société (ou le nom) est obligatoire au niveau de la livraison');
			document.getElementById('societe_livraison').select();
			document.getElementById('societe_livraison').focus();
			return false;
		}
	}
	obj = document.getElementById('adresse_livraison');
	if (trim(obj.value)=='') {
		window.alert('L\'adresse est obligatoire au niveau de la livraison');
		document.getElementById('adresse_livraison').select();
		document.getElementById('adresse_livraison').focus();
		return false;
	}
	obj = document.getElementById('cp_livraison');
	if (trim(obj.value)=='') {
		window.alert('Le code postal est obligatoire au niveau de la livraison');
		document.getElementById('cp_livraison').select();
		document.getElementById('cp_livraison').focus();
		return false;
	}
	obj = document.getElementById('ville_livraison');
	if (trim(obj.value)=='') {
		window.alert('La ville est obligatoire au niveau de la livraison');
		document.getElementById('ville_livraison').select();
		document.getElementById('ville_livraison').focus();
		return false;
	}
	// Vérification de l'adresse mail uniquement si elle est saisie
	obj = document.getElementById('mail_livraison');
	if (trim(obj.value)!='') {
		// Une @mail est saisie, il faut tester si elle est valide
		if ( ! VerifMail(obj.value)) {
			window.alert('Adresse mail de livraison non valide');
			document.getElementById('mail_facturation').select();
			document.getElementById('mail_facturation').focus();
			return false;
		}
	}

	// Vérification du type de livraison
	if (document.getElementById('infoslivraison')) {
		// Je ne traite que si la lsiute déroulante existe
		obj = document.getElementById('infoslivraison');
		if (trim(obj.value) == '-99') {
			window.alert('Il faut impérativement sélectionner un type de livraison');
			document.getElementById('infoslivraison').select();
			document.getElementById('infoslivraison').focus();
			return false;
		}
	}
	return true;
}

// Fonction permettant de vérifier si tous les champs obligatoires ont bien été saisis au niveau du formulaire de modification d'une commande via le Back Office
function VerifValidationBOCommande() {
	// Variables locales
	var obj;
	
	// Contrôles au niveau de la facturation
	obj = document.getElementById('societe_facturation');
	if (trim(obj.value)=='') {
		obj = document.getElementById('nom_facturation');
		if (trim(obj.value)=='') {
			window.alert('La société (ou le nom) est obligatoire au niveau de la facturation');
			document.getElementById('societe_facturation').select();
			document.getElementById('societe_facturation').focus();
			return false;
		}
	}
	obj = document.getElementById('adresse_facturation');
	if (trim(obj.value)=='') {
		window.alert('L\'adresse est obligatoire au niveau de la facturation');
		document.getElementById('adresse_facturation').select();
		document.getElementById('adresse_facturation').focus();
		return false;
	}
	obj = document.getElementById('cp_facturation');
	if (trim(obj.value)=='') {
		window.alert('Le code postal est obligatoire au niveau de la facturation');
		document.getElementById('cp_facturation').select();
		document.getElementById('cp_facturation').focus();
		return false;
	}
	obj = document.getElementById('ville_facturation');
	if (trim(obj.value)=='') {
		window.alert('La ville est obligatoire au niveau de la facturation');
		document.getElementById('ville_facturation').select();
		document.getElementById('ville_facturation').focus();
		return false;
	}
	obj = document.getElementById('tel_facturation');
	if (trim(obj.value)=='') {
		window.alert('Le téléphone est obligatoire au niveau de la facturation');
		document.getElementById('tel_facturation').select();
		document.getElementById('tel_facturation').focus();
		return false;
	}
	obj = document.getElementById('mail_facturation');
	if (trim(obj.value)=='') {
		window.alert('L\'adresse mail est obligatoire au niveau de la facturation');
		document.getElementById('mail_facturation').select();
		document.getElementById('mail_facturation').focus();
		return false;
	}
	else {
		// Une @mail est saisie, il faut tester si elle est valide
		if ( ! VerifMail(obj.value)) {
			window.alert('Adresse mail de facturation non valide');
			document.getElementById('mail_facturation').select();
			document.getElementById('mail_facturation').focus();
			return false;
		}
	}
	
	// Contrôles au niveau de la livraison
	obj = document.getElementById('societe_livraison');
	if (trim(obj.value)=='') {
		obj = document.getElementById('nom_livraison');
		if (trim(obj.value)=='') {
			window.alert('La société (ou le nom) est obligatoire au niveau de la livraison');
			document.getElementById('societe_livraison').select();
			document.getElementById('societe_livraison').focus();
			return false;
		}
	}
	obj = document.getElementById('adresse_livraison');
	if (trim(obj.value)=='') {
		window.alert('L\'adresse est obligatoire au niveau de la livraison');
		document.getElementById('adresse_livraison').select();
		document.getElementById('adresse_livraison').focus();
		return false;
	}
	obj = document.getElementById('cp_livraison');
	if (trim(obj.value)=='') {
		window.alert('Le code postal est obligatoire au niveau de la livraison');
		document.getElementById('cp_livraison').select();
		document.getElementById('cp_livraison').focus();
		return false;
	}
	obj = document.getElementById('ville_livraison');
	if (trim(obj.value)=='') {
		window.alert('La ville est obligatoire au niveau de la livraison');
		document.getElementById('ville_livraison').select();
		document.getElementById('ville_livraison').focus();
		return false;
	}
	
	// Vérification de l'adresse mail uniquement si elle est saisie
	obj = document.getElementById('mail_livraison');
	if (trim(obj.value)!='') {
		// Une @mail est saisie, il faut tester si elle est valide
		if ( ! VerifMail(obj.value)) {
			window.alert('Adresse mail de livraison non valide');
			document.getElementById('mail_livraison').select();
			document.getElementById('mail_livraison').focus();
			return false;
		}
	}

	// Vérification de la date d'envoi du colis si nécessaire
	obj = document.getElementById('dateenvoicolis');
	if (obj.value.length != 0) {
		if (! IsDateValid('dateenvoicolis','d\'envoi de colis','hidden_dateenvoicolis')) {
			document.getElementById('dateenvoicolis').select();
			document.getElementById('dateenvoicolis').focus();
			return false;
		}
	}
	
	return true;
}

// Fonction permettant de vérifier si tous les champs obligatoires ont bien été saisis au niveau du formulaire de modification d'un livreur via le Back Office
function VerifValidationBOLivreur() {
	// Variables locales
	var obj;
	
	// Contrôles
	obj = document.getElementById('nom');
	if (trim(obj.value)=='') {
		window.alert('Le nom est obligatoire');
		document.getElementById('nom').select();
		document.getElementById('nom').focus();
		return false;
	}

	// Vérification de l'adresse mail uniquement si elle est saisie
	obj = document.getElementById('mail');
	if (trim(obj.value)!='') {
		// Une @mail est saisie, il faut tester si elle est valide
		if ( ! VerifMail(obj.value)) {
			window.alert('Adresse mail non valide');
			document.getElementById('mail').select();
			document.getElementById('mail').focus();
			return false;
		}
	}
	
	return true;
}

// Fonction permettant de vérifier si tous les champs obligatoires ont bien été saisis au niveau du formulaire de modification d'une informations de livraison via le Back Office
function VerifValidationBOInfosLivraison() {
	// Variables locales
	var obj;
	
	// Contrôles
	obj = document.getElementById('libelle');
	if (trim(obj.value)=='') {
		window.alert('Le libellé est obligatoire');
		document.getElementById('libelle').select();
		document.getElementById('libelle').focus();
		return false;
	}

	obj = document.getElementById('typeenvoi');
	if (trim(obj.value)=='') {
		window.alert('Le type d\'envoi est obligatoire');
		document.getElementById('typeenvoi').select();
		document.getElementById('typeenvoi').focus();
		return false;
	}
	
	return true;
}

// Permet d'afficher la commande sélectionnée
function AffCommande(PUrlEtParametres) {
	window.location.href = PUrlEtParametres;
}

// Permet d'afficher le livreur sélectionné
function AffLivreur(PUrlEtParametres) {
	window.location.href = PUrlEtParametres;
}

// Permet d'afficher l'informations livraison sélectionnée
function AffInfosLivraison(PUrlEtParametres) {
	window.location.href = PUrlEtParametres;
}

// Fonction de validation du formulaire de commande : Vérifie les informations obligatoires et lance la validation de la commmande si besoin
function SubmitFormCommande(PUrlEtParametres) {
	if (VerifValidation()) {
		document.commande_form.action=PUrlEtParametres;
		document.commande_form.submit();
	}
}

// Fonction de validation du formulaire de commande au niveau du Back Office : Vérifie les informations obligatoires et lance la modification de la commmande si besoin
function SubmitFormCommandeBO(PUrlEtParametres) {
	if (VerifValidationBOCommande()) {
		document.commande_form.action=PUrlEtParametres;
		document.commande_form.submit();
	}
}

// Fonction de validation du formulaire de commande au niveau du Back Office : Vérifie les informations obligatoires et lance la modification du livreur si besoin
function SubmitFormLivreurBO(PUrlEtParametres) {
	if (VerifValidationBOLivreur()) {
		document.livreur_form.action=PUrlEtParametres;
		document.livreur_form.submit();
	}
}

// Fonction de validation du formulaire d' infos livraison au niveau du Back Office : Vérifie les informations obligatoires et lance la modification d'une infos livraison si besoin
function SubmitFormInfosLivraisonBO(PUrlEtParametres) {
	if (VerifValidationBOInfosLivraison()) {
		document.infos_livraison_form.action=PUrlEtParametres;
		document.infos_livraison_form.submit();
	}
}

// Fonction javascript équivalente à la fonction Trim en VB
function trim(string) { 
	return string.replace(/(^\s*)|(\s*$)/g,''); 
}

// Fonction de fermeture de la fenêtre active
function FermeFenetre() {
	window.close();
}

// Fonction de vérification de validité d'une adresse mail
function VerifMail(email) { // vérif validité email par REGEXP
   var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
   //var reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,3}$/
   //return (reg.exec(email)!=null)
   return (reg.test(email))
}

// Fonction de vérification de la date
function VerifDate(PDate) {
}

// Recalcul des différents frais de port
function RecalculFraisPort() {
	// La valeur du frais de port a été modifié, il faut recalculer la valeur
	var obj;
	var variable = 'hidden_';
	var mtFraisPortTmp, mtFraisPort, actuelMtTotalTTC, newMtTotalAPayer;
	var montantTTClib, montantFraisPortLib;
	
	montantFraisPortLib = document.getElementById('port').value;
	montantFraisPortLib = JSReplaceSpace(montantFraisPortLib);

	// Construction de l'id du champ input contenant la valeur des frais de port sélectionné dans la liste déroulante
	obj = document.getElementById('infoslivraison');
	variable = variable + obj.value;

	// Récupération du montant de frais de port ainsi que le montant maximum auquel il s'applique
	var variable_temp;
	variable_temp = document.getElementById(variable).value;
	//window.alert(variable_temp);
	
	var reg1 = new RegExp(";+", "g");
	var tab_montant = variable_temp.split(reg1);	// tab_montant : tableau contenant	[0] : valeur du frais de port 
													//						[1] : montant max auquel il faut appliquer ce frais de port : au dessus : GRATUIT
	//window.alert('tab_montant[0] : '+ tab_montant[0]);
	//window.alert('tab_montant[1] : '+ tab_montant[1]);

	// Nouveau montant pour les frais de port
	//mtFraisPort = Math.round(parseFloat(document.getElementById(variable).value)*100)/100; // Fonctionne pas
	mtFraisPortTmp = document.getElementById(variable).value;
	//  Remplacement de la , par le point sinon le parseFloat supprime les décimals
	mtFraisPortTmp = mtFraisPortTmp.replace(/,/,'.');
	//mtFraisPort = Math.round(parseFloat(mtFraisPortTmp))*100)/100;
	mtFraisPort = parseFloat(mtFraisPortTmp);
	
	var a, b;
	montantTTClib = document.getElementById('ttc').value;
	montantTTClib = JSReplaceSpace(montantTTClib);
	b = parseFloat(tab_montant[1]);
	a = parseFloat(montantTTClib);
	//window.alert('ttc :'+a+' limite :'+b);
	//window.alert('ttc :'+montantTTClib+' limite :'+tab_montant[1]);
	//alert(a-b);
	//if (parseFloat(montantTTClib)>parseFloat(tab_montant[1])) {
	if ((a-b)>0) {
	//if (montantTTClib>tab_montant[1]) {
		// Le montant ttc est supérieur ou égal à la limite auquel il faut appliquer le frais de port
		// Le frais de port est donc GRATUIT
		window.alert('FRAIS PORT GRATUIT');
		// Affichage du nouveau montant de frais de port
		obj = document.getElementById('port');
		obj.value = format("0",2,' ') + ' €';
		// Affichage du nouveau montant total à payer
		obj = document.getElementById('totalttc');
		montantTTC = parseFloat(montantTTClib);
		obj.value = format(montantTTC,2,' ') + ' €';
	}
	else {
		// Calcul du nouveau montant total à payer
		obj = document.getElementById('ttc');
		actuelMtTotalTTC = parseFloat(montantTTClib);
		newMtTotalAPayer = Math.round ((actuelMtTotalTTC+mtFraisPort)*100)/100;
		
		// Affichage du nouveau montant de frais de port
		obj = document.getElementById('port');
		obj.value = format(mtFraisPort,2,' ') + ' €';
		// Affichage du nouveau montant total à payer
		
		obj = document.getElementById('totalttc');
		obj.value = format(newMtTotalAPayer,2,' ') + ' €';
		
		// Informations que le montant global à payer a été modifié
		window.alert('ATTENTION : le changement du type de livraison a modifié le montant total à payer de votre commande.');
	}
	//alert('1');
}

function JSReplaceSpace(pStr) {
	var pos;
	pos = pStr.indexOf(String.fromCharCode(160),1);
	while (pos > -1) {
		pStr = pStr.substr(0,pos)+pStr.substr(pos+1,pStr.length);
		pos = pStr.indexOf(String.fromCharCode(160),1);
	}
	return pStr;
}

// Fonction qui formate un chiffre avec 'decimal' chiffres après la virgule et un separateur
function format(valeur,decimal,separateur) {
	var deci=Math.round( Math.pow(10,decimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur)))) ; 
	var val=Math.floor(Math.abs(valeur));
	if ((decimal==0)||(deci==Math.pow(10,decimal))) {val=Math.floor(Math.abs(valeur)); deci=0;}
	var val_format=val+"";
	var nb=val_format.length;
	for (var i=1;i<4;i++) {
		if (val>=Math.pow(10,(3*i))) {
			val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i));
		}
	}
	if (decimal>0) {
		var decim=""; 
		for (var j=0;j<(decimal-deci.toString().length);j++) {decim+="0";}
		deci=decim+deci.toString();
		val_format=val_format+","+deci;
	}
	if (parseFloat(valeur)<0) {val_format="-"+val_format;}
	return val_format;
}


// Fonction de vérification de la date : indique si la date est valide et écrit la date dans le champ caché passé en paramètre pour un enregistrement plus facile en SGBD
// ATTENTION : cette fonction nécessite la fonction IsNumeric pour fonctionner
function IsDateValid(name,lib, hidden_name) {
  // Paramètre entrée :
  //    - name = ID de la zone date à vérifier dans le formulaire 
  //    - lib = pour l'affichage : soit "de début", soit "de fin"
  //    - hidden_name = ID de la zone date cachée dans le formulaire et servant à la mise à jour de SQL SERVEUR 
  // Cette fonction permet de mettre la date au format jj/mm/aaaa si elle est entrée dans l'un des 6 formats suivants
  //    1.  jjmmaa
  //    2.  jjmmaaa
  //    3.  jj/mm/aa
  //    4.  jj/mm/aaaa
  //    5.  jj-mm-aa
  //    6.  jj-mm-aaaa
  // Valeur de retour de la fonction :
  //    - true : la date est correcte et valide
  //    - false : la date est incorrecte ou non valide
  
  var obj = document.getElementById(name);
  var msgerr;
  var date_temporaire = obj.value;
  var traitement_erreur = true;
  var j, m, a;

  // Test si des dates sont présentes
  if (date_temporaire=="") {
	//alert("La date "+lib+" est obligatoire.");
	var tmp = new Date();
	var jj, jjour, mm, mmois, aannee;
	jj = tmp.getDate(); // getDay() donne le jour dans la semaine
	if (jj<10){ 
	  jjour="0"+jj;
	}
	else {
	  jjour=jj;
	}
	mm = tmp.getMonth()+1;
	if (mm<10){ 
	  mmois="0"+mm;
	}
	else {
	  mmois=mm;
	}
	aannee = tmp.getFullYear();
	obj.value=jjour+"/"+mmois+"/"+aannee;
	return false ;
  }
  
  // Recherche si la date ne contient que des chiffres
  if (IsNumeric(date_temporaire)==true) {
    // La date ne contient que des numériques donc les 2 seuls formats possibles sont les suivants :
    //    * jjmmaaaa
    //    * jjmmaa
    if ((date_temporaire.length==6) || (date_temporaire.length==8)) {
      //alert("La date de début est entièrement numérique");
      j = date_temporaire.substring(0,2);
      m = date_temporaire.substring(2,4);
      a = date_temporaire.substring(4);
      traitement_erreur=false;
    }
    if (traitement_erreur==true) {
      msgerr = "La date "+lib+" ne fait pas partie d'un des 2 formats valides suivants :\n";
      msgerr = msgerr + "\n\t1. jjmmaaaa\n\t2. jjmmaa";
      alert(msgerr);
      return false;
    }
  }
  else if (date_temporaire.indexOf('/')>=0) {
    // La date contient le caractère '/' donc les 2 seuls formats possibles sont les suivants :
    //    * jj/mm/aaaa
    //    * jj/mm/aa
    if ((date_temporaire.length==8) || (date_temporaire.length==10)) {
      if ((date_temporaire.charAt(2)=='/') && (date_temporaire.charAt(5)=='/')) {
        if ((IsNumeric(date_temporaire.substring(0,2))==true) && (IsNumeric(date_temporaire.substring(3,5))==true) && (IsNumeric(date_temporaire.substring(6))==true)) {
          j = date_temporaire.substring(0,2);
          m = date_temporaire.substring(3,5);
          a = date_temporaire.substring(6);
          traitement_erreur = false;
        }
      }
    }
    if (traitement_erreur==true) {
      msgerr = "La date "+lib+" ne fait pas partie d'un des 2 formats valides suivants :\n";
      msgerr = msgerr + "\n\t1. jj/mm/aaaa\n\t2. jj/mm/aa";
      alert(msgerr);
      return false;
    }
  }
  else if (date_temporaire.indexOf('-')>=0) {
    // La date contient le caractère '-' donc les 2 seuls formats possibles sont les suivants :
    //    * jj-mm-aaaa
    //    * jj-mm-aa
    if ((date_temporaire.length==8) || (date_temporaire.length==10)) {
      if ((date_temporaire.charAt(2)=='-') && (date_temporaire.charAt(5)=='-')) {
        if ((IsNumeric(date_temporaire.substring(0,2))==true) && (IsNumeric(date_temporaire.substring(3,5))==true) && (IsNumeric(date_temporaire.substring(6))==true)) {
          j = date_temporaire.substring(0,2);
          m = date_temporaire.substring(3,5);
          a = date_temporaire.substring(6);
          traitement_erreur = false;
        }
      }
    }
    if (traitement_erreur==true) {
      msgerr = "La date "+lib+" ne fait pas partie d'un des 2 formats valides suivants :\n";
      msgerr = msgerr + "\n\t1. jj-mm-aaaa\n\t2. jj-mm-aa";
      alert(msgerr);
      return false;
    }
  }
  else {
	traitement_erreur=true;
    msgerr = "La date "+lib+" ne fait pas partie d'un des 6 formats valides suivants :\n";
    msgerr = msgerr + "\n\t1. jjmmaaaa\n\t2. jjmmaa";
    msgerr = msgerr + "\n\t3. jj/mm/aaaa\n\t4. jj/mm/aa";
    msgerr = msgerr + "\n\t5. jj-mm-aaaa\n\t6. jj-mm-aa";
    msgerr = msgerr + "\n\n(j = le jour  +  m = le mois  +  a=année)"; 
    alert(msgerr);
    obj.select();
    obj.focus();
    return false;
  }
  // Le format de date est correct, il faut que je vérifie si la date existe
  // Test sur l'année
  if ((a<100) && (a>=75)) {
    a = "19" + a;
  }
  else if ((a<100) && (a<75)) {
    a = "20" + a;
  }
  var new_date = new Date(a,m-1,j)
  var new_j = new_date.getDate();
  var new_m = new_date.getMonth()+1;
  var new_a = new_date.getFullYear();
  if ((j!=new_j) || (m!=new_m) || (a!=new_a)) {
		alert("La date "+lib+" n'existe pas");
		obj.select();
		obj.focus();
		return false;
  }
  var hidden_obj = document.getElementById(hidden_name);
  hidden_obj.value = a+"/"+m+"/"+j;
  obj.value = j+"/"+m+"/"+a;
  return true;
}

// Vérifie si la chaine envoyée est de type numérique
function IsNumeric(sText) {
  var ValidChars = "0123456789";
  var IsNumber=true;
  var Char;
  for (i = 0; i < sText.length && IsNumber == true; i++) {
    Char = sText.charAt(i);
    if (ValidChars.indexOf(Char) == -1) {
      IsNumber = false;
    }
  }
  return IsNumber;
}

// Vérifie si un montant (vérif si c'est bien un nombre qui est saisi, arrondi ce nombre à deux décimal, ...)
// ATTENTION : traitement différent en fonction de la valeur passée en paramètre
function VerifieMontant(montant_a_verifier) {
	var m_prix;
	var lPosition;
	if (montant_a_verifier==1) {
		if (isNaN(document.infos_livraison_form.fraisport.value)) {
			window.alert("Le montant de frais de port n'est pas un nombre");
			document.infos_livraison_form.fraisport.value = 0;
			return false;
		}
		lPosition = document.infos_livraison_form.fraisport.value.indexOf('.');
		if (lPosition > -1) {
			// Il y a une décimal donc j'arrondi le réultat à 2 décimal maximum
			document.infos_livraison_form.fraisport.value = Math.round (parseFloat(document.infos_livraison_form.fraisport.value)*100)/100;
		}
	}
	if (montant_a_verifier==2) {
		if (isNaN(document.infos_livraison_form.montantlimite.value)) {
			window.alert("Le montant limite TTC n'est pas un nombre");
			document.infos_livraison_form.montantlimite.value = 0;
			return false;
		}
		lPosition = document.infos_livraison_form.montantlimite.value.indexOf('.');
		if (lPosition > -1) {
			// Il y a une décimal donc j'arrondi le réultat à 2 décimal maximum
			document.infos_livraison_form.montantlimite.value = Math.round (parseFloat(document.infos_livraison_form.montantlimite.value)*100)/100;
		}
	}
	
	return true;
}

//
// POPUP
//
function popupcentre(adresse, nomFenetre) {
  var largeur = 800;
	var hauteur = 600;
	var largeurEcran = (screen.width - largeur) / 2;
	var hauteurEcran = (screen.height - hauteur) / 2;
	var optionpopup =  'height=' +hauteur+ ',width=' +largeur+ ',top=' +hauteurEcran+ ',left=' +largeurEcran+ ',screenY=' +hauteurEcran+ ',screenX=' +largeurEcran;
	optionpopup = optionpopup + ',resizable=1,scrollbars=1,toolbar=0,location=0,directories=0,status=0,menubar=0';
	//alert(adresse)
	//alert(nomFenetre)
	//alert(optionpopup)
	window.open(adresse, nomFenetre,optionpopup);
}

// Fonction d'affichage du résultat de la recherche
function DIVResultatRecherche(PUrl) {
	var lParam;
	lParam = '?Reference=' + document.getElementById('reference').value;
	lParam = lParam + '&Nom=' + document.getElementById('nom').value;
	lParam = lParam + '&Etat=' + document.getElementById('etat').value;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url= PUrl + 'BO_CommandeListe.asp' + lParam;
	//window.alert(url);
	xmlHttp.onreadystatechange=stateVisibility;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

// Fonction d'affichage de la page web exécuté
function stateVisibility() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		document.getElementById('DIVResultatRecherche').innerHTML=xmlHttp.responseText;
	} 
}

// Fonction retournant un objet XMLHttp
function GetXmlHttpObject() { 
	var objXMLHttp=null;
	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}


