/* 
 * Masque une DIV et en affiche une autre (principe du toggle).
 */
function se_toggle(sDiv1, sDiv2) {

   div1 = document.getElementById('se_div_'+sDiv1);
   img1 = document.getElementById('se_img_'+sDiv1);
   div2 = document.getElementById('se_div_'+sDiv2);

   if (div1.style.display=='none') {
      div1.style.display='inline';
      div2.style.display='none';
      img1.src = se_img_collapse;
   } else {
      div1.style.display='none';
      div2.style.display='inline';
      img1.src = se_img_expand;
   }

   return true;

}

/*
 * Cette fonction va permettre de "déplier/fermer" une DIV.   Ainsi, dans l'écran de création d'un évènement, certaines rubriques sont par défaut "fermées".
 * C'est le cas de la zone Commentaire qui est une zone optionnelle.   Donc, afin de ne pas surcharger l'écran, cette zone ne sera dépliée que si l'utilisateur
 * le souhaite; ceci après avoir cliqué sur un bouton "+"
 */
function expand(sName, sExpand, sCollapse) {

   div = document.getElementById('se_div'+sName);
   img = document.getElementById('se_imgExpand'+sName);

   if (div.style.display=='none') {
      if (img!=undefined) img.src=sCollapse;
      div.style.display='inline';
   } else {
      if (img!=undefined) img.src=sExpand;
      div.style.display='none';
   }
}

/* 
 * Cette fonction va charger l'image dont l'URL a été encodée.
 * 
 * Le premier paramètre est le nom de l'image (càd le nom défini dans l'attribut ID du tag IMG) tandis que le second paramètre le nom du champs INPUT (càd l'ID) où 
 * se trouve l'adresse URL de l'image.
 * 
 * example:
 * 
 *    <img id="imgVignette" [...] />
 *    <input id="photo" onchange="loadimg('imgVignette','photo');"  [...] />
 */
function loadimg(sImgName, sLocation) {

  var img = document.getElementById(sImgName);

  img.setAttribute("src", document.getElementById(sLocation).value);
}

/*
 * Cette fonction est p.e. utilisée dans l'écran backend de gestion des paramètres.
 * 
 * Permet d'afficher / cacher un "sous-écran".
 */
function showframe(sDivName) {

   if ((sDivName != "") && ("se_frm_"+sDivName != se_old_active_frame)) {

      sURLName = "se_url_"+sDivName;
      sDivName = "se_frm_"+sDivName;

      var div = null;

      // Masque la précédente frame et affiche la nouvelle

     if (!(se_old_active_frame=='')) div = document.getElementById(se_old_active_frame);

     if (div != null) {
        div.style.display="none";

        div = document.getElementById(sDivName);
        if (div != null) div.style.display="inline";
     }

     se_old_active_frame = sDivName;

     // Désactive la précédente URL et active la nouvelle

     div = document.getElementById(se_old_active_url);

     if (div != null) {

        div.className="inactive";

        div = document.getElementById(sURLName);
        if (div != null) div.className="active";

     }

     se_old_active_url   = sURLName;

   } // if ((sDivName != "") && ("se_frm_"+sDivName != se_old_active_frame))

} // function showframe(sDivName)

/*
 * La fonction load_image est utilisée dans la fonction php DrawFields qui se trouve dans Utils.php.   L'objectif est de visualiser
 * l'image qui a été cliquée depuis une liste déroulante.
 * 
 * Trois paramètres :
 * 
 *    Le folder où se situent les images
 *    Le nom de la combobox sur laquelle l'utilisateur a cliqué
 *    Le nom de l'image <img> afin de pouvoir en modifier le src
 */
function load_image(sFolder, sCbx, sImg) {

   var cbx = document.getElementById(sCbx);
   var ndx = cbx.selectedIndex;

   var imgsrc = '';

   if (ndx!=0) imgsrc = cbx.options[ndx].value;

   if (imgsrc!='') {

      img = document.getElementById(sImg);
      img.src = sFolder + imgsrc;

   } else {

      img.src = '';
   }

} // function load_image(sFolder, sCbx, sImg)

function to_lower(str) {
   return str.toLowerCase();
}

/* 
 * Retrouve un paramètre depuis le querystring
 * 
 * http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx
 * 
 * Exemple : alert(getQuerystring('debug'));
 */
function getQuerystring(key, default_) {
  if (default_==null) default_="";
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
} // function getQuerystring(key, default_) {

/*
 * Gestionnaire générique pour afficher un message d'erreur
 */
function show_failure(sTitle, sResponse) {

   // Affichage de l'erreur dès lors que le paramètre d'activation des erreurs est initialisé

   if (getQuerystring('showerror',0)>=1) {

      j = sTitle.length + 10;
      var str = "";
      for (var i = 0; i < j; i++){ str += "-"; }

      if (sTitle!='') { sTitle = str+'\n- '+sTitle+' -\n'+str+'\n\n'; }

      if (sResponse.responseText!=undefined) { sMsg = sResponse.responseText; } else { sMsg = sResponse; }

      alert('======> ERROR <======\n' + sTitle + '\n\n' + sMsg);
      
   }

   return true;

} // function show_failure(response)

