﻿
var g_blnDEBUG = true;

// Fichier JScript listant toutes les méthodes utilisant l'objet XMLHttpRequest + gestion du retour arrière "en Ajax"

// Mise à jour des listes "Modèle" et "Type" via XMLHttpRequest (méthode appelée dans la page combo des véhicules)
function liste(numDiv) 
{
    // Remarque : seul le document.getElementById("XXX") fonctionne avec Firefox, vehicule.XXX entraine des problèmes et le document.forms[0].elements["xxx"] aussi...
    var listManuf    = document.getElementById("MANUFACTURERS");
    var listModels   = document.getElementById("MODELS");
    var indexL1 = listManuf.selectedIndex;
    var indexL2 = listModels.selectedIndex;
    var data = "";
    var xhr_object = null;

    xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/CombosCars.asp", true);

    xhr_object.onreadystatechange = function() 
    {
        if(xhr_object.readyState == 4)
        {
          if (xhr_object.status == 200)
          {
             document.getElementById("ajax" + numDiv).innerHTML = xhr_object.responseText;
          }
        }
    }

    switch(numDiv)
    {
        case 1 : data = "NUMDIV=" + numDiv + "&ID_OSC_MANUFACTURERS=" + escape(listManuf.options[indexL1].value)
                 break;
                 
        case 2 : data = "NUMDIV=" + numDiv + "&ID_OSC_MANUFACTURERS=" + escape(listManuf.options[indexL1].value) + "&ID_OSC_MODELS=" + escape(listModels.options[indexL2].value);
                 break;
                 
        default : break;
    }
    xhr_object.send(data);

    // On met le message d'erreur à vide (qu'il soit présent ou pas)
    document.getElementById("erreur_choix").innerHTML = "";
}

function listequot(numDiv) 
{
    // Remarque : seul le document.getElementById("XXX") fonctionne avec Firefox, vehicule.XXX entraine des problèmes et le document.forms[0].elements["xxx"] aussi...
    var listManuf    = document.getElementById("ID_MANUFACTURERS_QUOTATION");
    var listModels   = document.getElementById("MODELS_QUOTATION");
    var indexL1 = listManuf.selectedIndex;
    var indexL2 = listModels.selectedIndex;
    var data = "";
    var xhr_object = null;

    xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/CombosCars.asp", true);

    xhr_object.onreadystatechange = function() 
    {
        if(xhr_object.readyState == 4)
        {
          if (xhr_object.status == 200)
          {
             document.getElementById("ajax" + numDiv).innerHTML = xhr_object.responseText;
          }
        }
    }

    switch(numDiv)
    {
        case 4 : data = "NUMDIV=" + numDiv + "&ID_OSC_MANUFACTURERS_QUOT=" + escape(listManuf.options[indexL1].value)
                 break;
                 
        case 5 : data = "NUMDIV=" + numDiv + "&ID_OSC_MANUFACTURERS_QUOT=" + escape(listManuf.options[indexL1].value) + "&ID_OSC_MODELS_QUOT=" + escape(listModels.options[indexL2].value);
                 break;
                 
        default : break;
    }
    xhr_object.send(data);

    // On met le message d'erreur à vide (qu'il soit présent ou pas)
    document.getElementById("erreur_choix").innerHTML = "";
}

// Méthode permettant de vérifier l'existence du type mines rentré (méthode appelée dans la page carte grise)
// Et de lister les véhicules en correspondance
// Si trop de véhicules correspondent (> 40), on laisse la liste vide (pour éviter de faire transiter trop de données)
// Si aucune correpondance, on prévient l'internaute qu'aucun véhicule ne commence par le type mines rentré
function completion_typeMines(valueTypeMines)
{
    var data = "";
    var tabRetourChaine
    var xhr_object = null;
   
    // on affiche le bouton grisé 
    document.getElementById("ClearButtonCG").style.display = "none";
    document.getElementById("GreyButtonCG").style.display = "";
    
    if (valueTypeMines.length > 1) // on appelle l'ajax seulement lorsque l'utilisateur a tapé au moins 1 lettre
    { 
       if (currentTypeMines != valueTypeMines)
       {
         currentTypeMines = valueTypeMines;
         xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/searchTypeMines.asp", true);
        
         xhr_object.onreadystatechange = function() 
         {
             if(xhr_object.readyState == 4)
             {
               if (xhr_object.status == 200)
               {
                  tabRetourChaine=xhr_object.responseText.split("|");
                  
                  // Si la chaine[0] est vide, cela veut dire qu'on a réussi à matché le type mines
                  if (tabRetourChaine[0].length == 0)
                  {
                     document.getElementById("lbl2").style.display = "";
                    // on rend invisible le message d'erreur (il peut être déjà invisible)
                    document.getElementById("typeMinesUnknown").style.display = "none";
                     
                     // Si la chaine[1] est vide, cela veut dire qu'on a trop de résultats
                     if (tabRetourChaine[1].length == 0)
                     {
                         document.getElementById("LIST_CARS_EMPTY").style.display = "";
                         document.getElementById("div_ListVehiculesFull").style.display = "none";
                     }
                     else // On a des résultats (mais pas trop !)
                     {
                         // On affiche le résultat 
                         document.getElementById("LIST_CARS_EMPTY").style.display = "none";
                         document.getElementById("div_ListVehiculesFull").style.display = "";
                         document.getElementById("div_ListVehiculesFull").innerHTML = tabRetourChaine[1];
                     }
                  }
                  else // Pas de correspondance
                  {
                     // On affiche le message d'erreur (on rend invisible la liste des véhicules vide et pleine)
                     document.getElementById("LIST_CARS_EMPTY").style.display = "none";
                     document.getElementById("div_ListVehiculesFull").style.display = "none";
                     document.getElementById("lbl2").style.display = "none";
                     document.getElementById("typeMinesUnknown").style.display = "";
                     document.getElementById("typeMinesUnknown").innerHTML = tabRetourChaine[0];
                  }
               }
            }
         }
       }
    }
    else
    {
        document.getElementById("LIST_CARS_EMPTY").style.display="";
        document.getElementById("div_ListVehiculesFull").style.display="none";
        document.getElementById("lbl2").style.display="";
        document.getElementById("typeMinesUnknown").style.display = "none";
    }

    data = "STRING_ENTERED = " + valueTypeMines;
    xhr_object.send(data);
}

function ScanEmail()
{
    var xhr_object = null;

    if(window.XMLHttpRequest) // Firefox
        xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
            xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else 
    { // XMLHttpRequest non supporté par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        return;
    }

    xhr_object.onreadystatechange = function() 
    {
        if(xhr_object.readyState == 4)
        {
          if (xhr_object.status == 200)
          {
            //alert("réponse = " + xhr_object.responseText);
            if (xhr_object.responseText == "True")
            {
                document.getElementById("otherData").style.display = "none";
                document.getElementById("alreadyMember").style.display = "";
            }
            else
            {
                document.getElementById("otherData").style.display = "";
                document.getElementById("alreadyMember").style.display = "none";
            }
          }
        }
    }

    xhr_object.open("POST", "/back/ajax/checkExistMail.asp", true);
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=iso-8859-1");
    
    data = "eMail = " + document.getElementById("txtEmail").value;
    xhr_object.send(data);
}


// Gestion du retour arrière (problème de l'ajax) avec l'aide de la librairie dhtmlHistory.js
// ATTENTION : ne pas oublier de mettre onload="initialize();" dans la balise body du site !!!!!
function initialize() 
{
    var i, message;
    // initialize the DHTML History
    // framework
    dhtmlHistory.initialize();
    dhtmlHistory.addListener(historyChange);
  
    // On teste d'abord que la page contient les combos pour le choix du véhicule (car cette métode est appelé à chaque page)
    // Pour cela, on peut tester qu'on a bien un des boutons "Afficher votre catalogue pièces"
    if (document.getElementById('ClearButton') != null)
    {
        if (historyStorage.hasKey("indexManufacturers") == true )
        {
            document.getElementById("MANUFACTURERS").selectedIndex = historyStorage.get("indexManufacturers");
            listeRetourArriere(1);
        }

        if ( historyStorage.hasKey("indexModels") == true )
        {
            document.getElementById("MODELS").selectedIndex = historyStorage.get("indexModels");
            listeRetourArriere(2);
        }

        if ( historyStorage.hasKey("indexTypes") == true )
        {
            document.getElementById("TYPES").selectedIndex = historyStorage.get("indexTypes");
                
            //On rend invisible le bouton clair et on rend visible le bouton grisé
            document.getElementById('GreyButton').style.display='none';
            document.getElementById('ClearButton').style.display='';
        }
    }
    
    // Pour la page panier_etape1.asp, on teste qu'on a la liste déroulante avec id=LIST_BILL_CITY
    if (document.getElementById('LIST_BILL_CITY') != null)
    {
        if (historyStorage.hasKey("indexBILL_CITY") == true )
        {
            getCityByPostalCode(document.getElementById("BILL_POSTAL_CODE").value,true,"BILL_CITY", true);
        }
        
        // Suivant Pro ou pas, afficher / masquer div
        if (historyStorage.hasKey('statePro') == true)
        {
            if (historyStorage.get('statePro') == true)
            {
                document.getElementById('EST_PROFESSIONNEL').checked = 1;
                document.getElementById('BILL_PRO_NAME').style.display='';
                document.getElementById('BILL_PERSO_NAME').style.display='none';
                document.getElementById('BILL_PRO_FIRST_NAME_LIB').style.display='';
                document.getElementById('BILL_PERSO_FIRST_NAME_LIB').style.display='none';
                document.getElementById('BILL_PRO_FIRST_NAME_FIELD').style.display='';
                document.getElementById('BILL_PERSO_FIRST_NAME_FIELD').style.display='none';
            }
            else
            {
                document.getElementById('EST_PROFESSIONNEL').checked = 0;
                document.getElementById('BILL_PRO_NAME').style.display='none';
                document.getElementById('BILL_PERSO_NAME').style.display='';
                document.getElementById('BILL_PRO_FIRST_NAME_LIB').style.display='none';
                document.getElementById('BILL_PERSO_FIRST_NAME_LIB').style.display='';
                document.getElementById('BILL_PRO_FIRST_NAME_FIELD').style.display='none';
                document.getElementById('BILL_PERSO_FIRST_NAME_FIELD').style.display='';
            }
        }        
        
        if (historyStorage.hasKey('adresseDiff') == true)
        {
            if (historyStorage.get('adresseDiff') == true)
            {
                document.getElementById('ADRESSE_DIFFERENTE').checked = 1;
                document.getElementById('differentAdress').style.display='';
            }
            else
            {
                document.getElementById('ADRESSE_DIFFERENTE').checked = 0;
                document.getElementById('differentAdress').style.display='none';
            }
        }

        if (historyStorage.hasKey("indexSHIP_CITY") == true )
        {
            getCityByPostalCode(document.getElementById("SHIP_POSTAL_CODE").value,true,"SHIP_CITY", true);
        }
    }
}

function historyChange(newLocation, 
                       historyData) {
}

// Mise à jour des listes "Modèle" et "Type" suite à un retour arrière de l'internaute (méthode appelée dans la page combo des véhicules)
function listeRetourArriere(numDiv) 
{
    // Remarque : seul le document.getElementById("XXX") fonctionne avec Firefox, vehicule.XXX entraine des problèmes et le document.forms[0].elements["xxx"] aussi...
    var listManuf    = document.getElementById("MANUFACTURERS");
    var listModels   = document.getElementById("MODELS");
    var listTypes    = document.getElementById("TYPES");
    var indexL1 = listManuf.selectedIndex;
    var indexL3 = listModels.selectedIndex;
    var data = "";
    var xhr_object = null;

    xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/CombosCars.asp", false);

    switch(numDiv)
    {
        case 1 : listModels.length=0; listModels.options[0] = new Option("------- Modèle -------","");
                 listTypes.length=0; listTypes.options[0] = new Option("------- Type -------","");
                 data = "NUMDIV=" + numDiv + "&ID_OSC_MANUFACTURERS=" + escape(listManuf.options[indexL1].value)
                 historyStorage.put("indexManufacturers", indexL1);
                 break;
                 
        case 2 : listTypes.length=0; listTypes.options[0] = new Option("------- Type -------","");
                 data = "NUMDIV=" + numDiv + "&ID_OSC_MANUFACTURERS=" + escape(listManuf.options[indexL1].value) + "&ID_OSC_MODELS=" + escape(listModels.options[indexL3].value);
                 historyStorage.put("indexModels", indexL3);
                 break;
                 
        default : break;
    }
    xhr_object.send(data);
    
    if(xhr_object.readyState == 4)
    {
      if (xhr_object.status == 200)
      {
         document.getElementById("ajax" + numDiv).innerHTML = xhr_object.responseText;
      }
    }
    // On met le message d'erreur à vide (qu'il soit présent ou pas)
    document.getElementById("erreur_choix").innerHTML = "";
}

// Envoi d'un mail en Ajax (méthode appelée dans les pages catalog et liste)
function sendQuestion(id_osc_types, id_osc_levels, lib_osc_manufacturers, lib_osc_models, lib_osc_cars, id_generic_articles, lib_generic_articles, id_articles, reference, message_sent_ok) 
{
    var firstname   = document.getElementById("FIRST_NAME_QUOTATION").value;
    var lastname    = document.getElementById("LAST_NAME_QUOTATION").value;
    var email       = document.getElementById("EMAIL_QUOTATION").value;
    var telephone   = document.getElementById("PHONE_QUOTATION").value;
    var typemines   = document.getElementById("TYPEMINES_QUOTATION").value;
    var description = document.getElementById("DESCRIPTION_QUOTATION").value;
    var registration_date = document.getElementById("REGISTRATION_DATE_QUOTATION").value;
    var manufacturers="";
    var models="";
    var types="";
    var TYPES_LEVELS_QUOT = "";
    var okmail;
    var power_steering="";
    var ac=""; 
    var abs=""; 
    var esp = "";
    var data = "";
    var xhr_object = null;

    if (id_osc_types == "")
    {
        manufacturers =  document.getElementById("ID_MANUFACTURERS_QUOTATION").options[document.getElementById("ID_MANUFACTURERS_QUOTATION").selectedIndex].text;
        models =  document.getElementById("MODELS_QUOTATION").options[document.getElementById("MODELS_QUOTATION").selectedIndex].text;
        types =  document.getElementById("TYPES_QUOTATION").options[document.getElementById("TYPES_QUOTATION").selectedIndex].text;
        TYPES_LEVELS_QUOT = document.getElementById("TYPES_LEVELS_QUOT").value;
    }

    if (document.getElementById("OK_MAIL_QUOTATION").checked == true)
        okmail=1;
    else
        okmail=0;

    if (document.getElementsByName("ABS_QUOTATION")[0].checked == false)
    {
        if (document.getElementsByName("ABS_QUOTATION")[1].checked == true)
            abs = 0;
    }
    else
        abs = 1;

    if (document.getElementsByName("POWER_STEERING_QUOTATION")[0].checked == false)
    {
        if (document.getElementsByName("POWER_STEERING_QUOTATION")[1].checked == true)
            power_steering=0;
    }
    else
        power_steering=1;
        
    if (document.getElementsByName("AC_QUOTATION")[0].checked == false)
    {
        if (document.getElementsByName("AC_QUOTATION")[1].checked == true)
            ac=0;
    }
    else
        ac=1;
        
    if (document.getElementsByName("ESP_QUOTATION")[0].checked == false)
    {
        if (document.getElementsByName("ESP_QUOTATION")[1].checked == true)
            esp = 0;
    }
    else
        esp = 1;
      


    xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/SendQuestions.asp", true);

    xhr_object.onreadystatechange = function() 
    {
        if(xhr_object.readyState == 4)
        {
          if (xhr_object.status == 200)
          {
             document.getElementById("FORM_AJAX_LOADER_TR").style.display = 'none';
             document.getElementById('question').style.display='none';
             document.getElementById('questionMailSent').style.display='';
             
             if (xhr_object.responseText!="OK")
                document.getElementById("questionMailSent").innerHTML = xhr_object.responseText;
             
             // On prévient l'utilisateur par une alert que sa demande vient d'être envoyé
             alert(message_sent_ok);
             
             history.back(-1);
          }
        }
    }

    // Explication pour la ReplaceString du champ description
    // il faut remplacer la chaine "%0A" (fait par la fonction escape lorsqu'il y a un retour charriot dans une chaine) par "<br/>" 
    // utile pour la fonction sendQuestion lors de l'envoie de la chaine html à la page ASP AJAX

    data = "ID_OSC_TYPES=" + id_osc_types + "&ID_OSC_LEVELS=" + id_osc_levels + "&TELEPHONE=" + telephone + "&EMAIL=" + email + "&MANUFACTURERS=" + manufacturers + "&TYPES=" + escape(types);
    data = data + "&DESCRIPTION=" + ReplaceString(escape(description), "%0A","<br/>") + "&ID_GENERIC_ARTICLES=" + id_generic_articles + "&ID_ARTICLES=" + id_articles;
    data = data + "&FIRST_NAME=" + escape(firstname) + "&LAST_NAME=" + escape(lastname) + "&OK_MAIL=" + okmail + "&LIB_GENERIC_ARTICLES=" + lib_generic_articles;
    data = data + "&REGISTRATION_DATE=" + registration_date + "&ABS=" + abs + "&POWER_STEERING=" + power_steering + "&AC=" + ac + "&TYPEMINES=" + typemines + "&REFERENCE=" + reference;
    data = data + "&ESP=" + esp;
    data = data + "&LIB_OSC_MANUFACTURERS=" + lib_osc_manufacturers + "&LIB_OSC_MODELS=" + lib_osc_models + "&LIB_OSC_CARS=" + lib_osc_cars + "&MODELS=" + escape(models);
    data = data + "&TYPES_LEVELS_QUOT=" + TYPES_LEVELS_QUOT
    //alert(data);
    xhr_object.send(data);
}

/******************************************************************************************/
/* Passe une commande avec le statut "Précommande" vers le statut "En atttente saisie CB" */
/* et Efface le contenu du panier                                                         */
/******************************************************************************************/
function WaitingForPayment(ID_CLIENT_ORDERS)
{
   var data = "";
   var xhr_object = null;

   xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/waitingForPayment.asp", false);

    data = "ID_CLIENT_ORDERS=" + ID_CLIENT_ORDERS;
    xhr_object.send(data);
    
    if(xhr_object.readyState == 4)
    {
      if (xhr_object.status == 200)
      {
         //alert('response= ' + xhr_object.responseText);
      }
    }
}

function addBasketVariations(id_variations, quantity, message_add_OK, message_add_KO)
{
    var data = "";
    var xhr_object = null;

    xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/AddBasketVariations.asp", true);

    data = "ID_VARIATIONS=" + id_variations;
    if (quantity != undefined) data = data + "&QUANTITY=" + quantity;
    
    xhr_object.send(data);

    xhr_object.onreadystatechange = function() 
    {
        if(xhr_object.readyState == 4)
        {
          if (xhr_object.status == 200)
          {
             if(xhr_object.responseText == "OK")
             {
                alert("L'article a été ajouté au panier");
                //document.getElementById("itemAdded").style.display = '';
            }
             else
                alert("Un problème a eu lieu lors de l'ajout de cet article dans le panier.");
          }
        }
    }
}

function addBasketArticles(id_articles, id_osc_types, id_osc_levels, message_add_OK, message_add_KO)
{
    var data = "";
    var xhr_object = null;

    xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/AddBasketArticles.asp", true);

    data = "ID_ARTICLES=" + id_articles + "&ID_OSC_LEVELS=" + id_osc_levels + "&ID_OSC_TYPES=" + id_osc_types;
    xhr_object.send(data);

    xhr_object.onreadystatechange = function() 
    {
        if(xhr_object.readyState == 4)
        {
          if (xhr_object.status == 200)
          {
             if(xhr_object.responseText == "OK")
             {
                alert("L'article a été ajouté au panier");
            }
             else
                alert("Un problème a eu lieu lors de l'ajout de cet article dans le panier.");
          }
        }
    }
}

// Fonction d'initalisation de l'objet InitializeXMLHttpRequest
// Entrée : - postMode : mode de postage (POST ou GET) des données pour la page côté serveur
//          - serverPageName : nom de la page serveur appellée par l'objet XMLHttpRequest
//          - AsynchronousMode : mode de fonctionnement de l'appel au serveur 
//              Synchrone  : on attend le traitement effectué dans la "page serveur"
//              Asynchrone : on continue le traitement javascript sans attendre le traitement de la "page serveur"
// Sortie : une instance de XMLHttpRequest
function InitializeXMLHttpRequest(postMode, serverPageName, AsynchronousMode)
{
    var xhr_object = null;
    
    if(window.XMLHttpRequest) // Firefox
        xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
            xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else 
    { // XMLHttpRequest non supporté par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        return;
    }

    xhr_object.open(postMode, serverPageName, AsynchronousMode);
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=iso-8859-1");
    
    return xhr_object;
}

// Fonction permettant de remplacer toutes les occurences "sous chaine" par une autre dans une chaine de caractères
function ReplaceString(allString, stringToReplace, newString)
{
    var reg=new RegExp(stringToReplace, "g");
    return allString.replace(reg, newString);
}

// Fonction permettant d'avoir les villes Espagne + Portugal à partir du code postal
function getCityByPostalCode(value, state, objName, isBackReturn)
{
    var data = "";
    var xhr_object = null;

    xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/SearchCity.asp", true);
    data = "id=" + value + "&Obj=" + objName + "&state=" + state;

	xhr_object.onreadystatechange = function()
	{
		if (xhr_object.readyState == 4 && xhr_object.status == 200)
		{
	
			document.getElementById("DIV_" + objName).innerHTML = xhr_object.responseText ;
			// On initialise le champ hidden à la 1ere valeur de la liste déroulante
			document.getElementById(objName).value = document.getElementById("LIST_" + objName).value;
			// Si on vient par un retour arrière, il faut se caler sur la bonne ligne de la liste déroulante
			if (isBackReturn == true)
			    document.getElementById("LIST_" + objName).selectedIndex = historyStorage.get("index" + objName)
		}
	}

	xhr_object.send(data);
}


/****************************************/
/* Suppression d'une adresse d'un membre*/
/* et Efface le contenu du panier       */
/****************************************/
function DeleteAddresses(ID_PERSONS,ID_ADDRESSES)
{
   try
   {
       var data = "";
       var xhr_object = null;

       xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/deleteaddresses.asp", false);

        data = "ID_PERSONS=" + ID_PERSONS + "&ID_ADDRESSES=" + ID_ADDRESSES;

        xhr_object.send(data);

        if(xhr_object.readyState == 4)
        {
          if (xhr_object.status == 200)
          {
             //alert('response= ' + xhr_object.responseText);
             return true;
          }
        }
        return false;
    }
    catch(e)
    {
        if (typeof(g_blnDEBUG) != "undefined" && g_blnDEBUG == true) 
            alert('erreur DeleteAddresses()\n'+e.message);
        return false;
    }
}




/*************************************************/
/* Controle Si l'Email saisie exite déjà en base
/*************************************************/
function checkIfEmailExist(p_ID_PERSONS,p_EMAIL)
{
   try
   {
        var data = "";
        var xhr_object = null;

        if (typeof(p_ID_PERSONS) == "undefined") 
        {
            p_ID_PERSONS = ""
        }

        xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/checkExistMail.asp", false);

        data = "ID_PERSONS=" + p_ID_PERSONS + "&EMAIL=" + p_EMAIL;

        xhr_object.send(data);

        if(xhr_object.readyState == 4)
        {
          if (xhr_object.status == 200)
          {
             if (xhr_object.responseText == "true")
                return true;
             else
                return false;   
          }
        }
        return false;
    }
    catch(e)
    {
        throw new Error('checkIfEmailExist()\n'+e.message);
        return false;
    }
}

// Appel à l'enregistrement d'un sales_evts en admin
function sendErrorReport(id_osc_types, id_osc_levels, lib_osc_manufacturers, lib_osc_models, lib_osc_cars, id_generic_articles, lib_generic_articles, id_articles, reference, message_sent_ok) 
{
    var firstname   = document.getElementById("FIRST_NAME_ERROR_REPORT").value;
    var lastname    = document.getElementById("LAST_NAME_ERROR_REPORT").value;
    var email       = document.getElementById("EMAIL_ERROR_REPORT").value;
    var telephone   = document.getElementById("PHONE_ERROR_REPORT").value;
    var description = document.getElementById("DESCRIPTION_ERROR_REPORT").value;
    var manufacturers="";
    var models="";
    var types="";
    var okmail;
    var data = "";
    var xhr_object = null;
    var id_sales_evts_precisions = document.getElementById("ID_SALES_EVTS_PRECISIONS").value;

    if (id_osc_types == "")
    {
        manufacturers =  document.getElementById("ID_MANUFACTURERS_ERROR_REPORT").options[document.getElementById("ID_MANUFACTURERS_ERROR_REPORT").selectedIndex].text;
        models = document.getElementById("MODELS_ERROR_REPORT").value;
        types = document.getElementById("TYPES_ERROR_REPORT").value;
    }

    okmail=0;

    xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/SendErrorReports.asp", true);

    xhr_object.onreadystatechange = function() 
    {

        if(xhr_object.readyState == 4)
        {

          if (xhr_object.status == 200)
          {

             document.getElementById("FORM_AJAX_LOADER_TR_ERROR_REPORT").style.display = 'none';
             document.getElementById('questionErrorReport').style.display='none';
             document.getElementById('questionMailSentErrorReport').style.display='';
             
             if (xhr_object.responseText!="OK")
                document.getElementById("questionMailSentErrorReport").innerHTML = xhr_object.responseText;
             
             // On prévient l'utilisateur par une alert que sa demande vient d'être envoyé
             alert(message_sent_ok);

          }
        }
    }

    // Explication pour la ReplaceString du champ description
    // il faut remplacer la chaine "%0A" (fait par la fonction escape lorsqu'il y a un retour charriot dans une chaine) par "<br/>" 
    // utile pour la fonction sendQuestion lors de l'envoie de la chaine html à la page ASP AJAX

    data = "ID_OSC_TYPES=" + id_osc_types + "&ID_OSC_LEVELS=" + id_osc_levels + "&TELEPHONE=" + telephone + "&EMAIL=" + email + "&MANUFACTURERS=" + manufacturers + "&TYPES=" + escape(types);
    data = data + "&DESCRIPTION=" + ReplaceString(escape(description), "%0A","<br/>") + "&ID_GENERIC_ARTICLES=" + id_generic_articles + "&ID_ARTICLES=" + id_articles;
    data = data + "&FIRST_NAME=" + escape(firstname) + "&LAST_NAME=" + escape(lastname) + "&OK_MAIL=" + okmail + "&LIB_GENERIC_ARTICLES=" + lib_generic_articles;
    data = data + "&REFERENCE=" + reference + "&ID_SALES_EVTS_PRECISIONS=" + id_sales_evts_precisions;
    data = data + "&LIB_OSC_MANUFACTURERS=" + lib_osc_manufacturers + "&LIB_OSC_MODELS=" + lib_osc_models + "&LIB_OSC_CARS=" + lib_osc_cars + "&MODELS=" + escape(models);
    //alert(data);
    xhr_object.send(data);
}

// Lancement d'un script de modification des états de commande liés au piement N fois
// Appel à l'enregistrement d'un sales_evts en admin
function updatePendingCommands() 
{
    var data = "";
    var xhr_object = null;

    xhr_object = InitializeXMLHttpRequest("POST", "/back/ajax/pret_a_exp.asp", true);

   // xhr_object.onreadystatechange = function() 
   // {
         // On prévient l'utilisateur par une alert que sa demande vient d'être envoyé
  //       alert("Appel à la surveillance de l'état des commandes OK");
  //  }

    xhr_object.send();
}