var gva_clas_mesgs = "t13MessageHolder";
var gva_clas_notfc = "t13Notification";

function sie_01_afich_boite_mesg (id_exter, id_inter, mesg)
{
  var vob_boite_mesgs = document.getElementById(id_exter);
  
  if (vob_boite_mesgs)
  {
  
    vob_boite_mesgs.innerHTML = '<div class="' + id_inter + '">' +
                             '<img src="/res/apexframework/images/delete.png" />&nbsp;'+
                             mesg +
                             '</div>';
  }
  else
  {
    // Si on ne trouve pas le div, on affiche le message d'erreur dans un 'alert'
    alert("Erreur rencontrée: " + mesg);
  }
}

function sie_01_trait_mesgs_errs (forcr_mode_debug)
{
  var vob_sie_mesg_err    = document.getElementById("sie_mesg_err");
  var vob_sie_bloc_err    = document.getElementById("sie_bloc_err");
  var var_liste_elemn     = null;
  var vva_pile_errs       = null;
  var vbo_mode_debug      = null;;
  
  if (document.getElementById('pdebug') || (forcr_mode_debug + 0) != 0)
    vbo_mode_debug = true;
  else
    vbo_mode_debug = false;
  
  // Chercher les "div" de classe "ErrorPageMessage"
  var_liste_elemn = window.document.getElementsByTagName("div");
  for (i=0; i < var_liste_elemn.length; i++)
  {
    if (var_liste_elemn[i].className == "ErrorPageMessage")
    {
      vva_pile_errs = (vva_pile_errs == null ? "" : vva_pile_errs + "<br />")
                    + var_liste_elemn[i].innerHTML;
    }
  }
  
  // Si on a trouvé le "div" contenant le message 
  if (vob_sie_mesg_err)
  {
    if (vob_sie_mesg_err.innerHTML != "")
    {
      vva_pile_errs = vob_sie_mesg_err.innerHTML
                    + (vva_pile_errs == null ? "" : "<br />" + vva_pile_errs);
    }
  }

  if (vbo_mode_debug)
  {
    // Afficher l'erreur directement à l'écran
    sie_01_afich_boite_mesg ("sie_bloc_err", gva_clas_notfc, vva_pile_errs)

    if (vob_sie_bloc_err)
    {
      vob_sie_bloc_err.style.display = "block";
    }
  }
  else
  {
    // Enregistrer le(s) message(s) d'erreur dans un ou des cookie(s)
    var vnu_nombr_cook = 0;
    var vva_valr_cook = null;
    // Découper en morceaux de 4k (arrondi à 4000 pour laisser un peu de souplesse...)
    while (vva_pile_errs != "")
    {
      vnu_nombr_cook++;
      vva_valr_cook   = vva_pile_errs.substr(0, 4000);
      vva_pile_errs   = vva_pile_errs.substr(4000);
      document.cookie = "Mesg_Err_" + vnu_nombr_cook + "=" + encodeURIComponent(vva_valr_cook);
    }

    // Revenir à la page précédente, qui lira les cookies et affichera les messages
    window.history.go(-1);
  }
}

function sie_01_afich_mesgs_errs ()
{
  var vob_cook       = document.cookie;
  var vnu_nombr_cook = 1;
  var vva_pile_errs  = "";
  var vnu_pos        = null;
  var vnu_debut      = null;
  var vnu_fin        = null;
  
  vnu_pos = vob_cook.indexOf("Mesg_Err_" + vnu_nombr_cook + "=");

  // Boucler à travers tous les cookies de messages d'erreurs
  while (vnu_pos != -1)
  {
    // 
    vnu_debut = vob_cook.indexOf("=", vnu_pos) + 1;
    vnu_fin   = vob_cook.indexOf(";", vnu_debut);
    if (vnu_fin < 0)
      vnu_fin = vob_cook.length;

    vva_pile_errs = vva_pile_errs + decodeURIComponent(vob_cook.substring(vnu_debut, vnu_fin));

    // Supprimer le cookie
    document.cookie = "Mesg_Err_" + vnu_nombr_cook + "=; max-age=0";

    // Lire le prochain cookie
    vnu_pos = vob_cook.indexOf("Mesg_Err_" + ++vnu_nombr_cook + "=");
  }
  
  // Quitter si aucune erreur trouvée
  if (vnu_nombr_cook == 1 || vva_pile_errs == "") return;
  
  sie_01_afich_boite_mesg (gva_clas_mesgs, gva_clas_notfc, vva_pile_errs);
}
