<!--
// ====================================================================
//  Chargement des bibliotèques de scripts
// ====================================================================
var isIE, isFirefox, isOpera, isSafari, isNN, isMozilla;
var IEVer = 0; 
//
// ... initialise les variables des navigateurs ...
//
isIE=(navigator.userAgent.indexOf("MSIE")!=-1);
isFirefox=(navigator.userAgent.indexOf("Firefox")!=-1);
isOpera=(navigator.userAgent.indexOf("Opera")!=-1);
isSafari=(navigator.appVersion.indexOf("Safari")!=-1);
isNN=(navigator.appName.indexOf("Netscape")!=-1);
isMozilla=(navigator.userAgent.indexOf("Gecko")!=-1 && !isNN && !isFirefox && !isSafari);

if(isIE){IEVer=parseInt(navigator.userAgent.substr(navigator.userAgent.indexOf("MSIE")+5, 1), 10);};

function addListener(Element, EventName, Handler)
  {
  //
  // ... si l'élément dispode de la méthode addEventListener ...
  // (tous les navigateurs sauf Internet Explorer)
  //
  if (Element.addEventListener)
    {
    //
    // ... associe l'événement EventName à la méthode Handler ...
    //
    Element.addEventListener(EventName, Handler, false);
    }
  //
  // ... si l'élément dispode de la méthode attachEvent ...
  // (uniquement Internet Explorer)
  //
  else if (Element.attachEvent)
    {
    //
    // ... associe l'événement EventName à la méthode Handler ...
    //
    Element.attachEvent("on"+EventName, Handler);
    };
  }

function include(ScriptFileName, AutoCompleteUrl)
  {
  //
  // ... corrige et met en forme les arguments ...
  //
  if(AutoCompleteUrl==undefined){AutoCompleteUrl=true;};
  //
  // ... si l'url passé en argument doit être complétée ... 
  //
  if(AutoCompleteUrl)
    {
    //
    // ... complète le nom du fichier de script avec l'url du site ...
    //
    ScriptFileName="http://"+document.location.host+"/scripts/"+ScriptFileName
    };
    //
    // ... ajoute la balise Script à l'entête du fichier ...
    //
    document.write('<script type="text/javascript" src="'+ScriptFileName+'"><\/script>');
  }
/* 
function include(ScriptFileName, AutoCompleteUrl)
  {
  var HeadElement;
  var ScriptElement;
  //
  // ... corrige et met en forme les arguments ...
  //
  if(AutoCompleteUrl==undefined){AutoCompleteUrl=true;};
  //
  // ... récupère une référence sur la balise HEAD de la page courante ...
  //
  HeadElement = document.getElementsByTagName("head").item(0);
  //
  // ... si l'objet est valide ...
  //
  if (HeadElement)
    {
    //
    // ... instancie une nouvelle balise Script ... 
    //
    ScriptElement = document.createElement("script");
    //
    // ... si l'url passé en argument doit être complétée ... 
    //
    if(AutoCompleteUrl)
      {
      //
      // ... complète le nom du fichier de script avec l'url du site ...
      //
      ScriptFileName="http://"+document.location.host+"/scripts/"+ScriptFileName
      };
    //
    // ... configure la balise Script ...
    //
    ScriptElement.setAttribute("language", "javascript");
    ScriptElement.setAttribute("type", "text/javascript");
    ScriptElement.setAttribute("src", ScriptFileName);
    //
    // ... ajoute la balise Script à l'entête du fichier ...
    //
    HeadElement.appendChild(ScriptElement);
    //
    // ... détruit les objets temporaire ...
    //
    delete ScriptElement;
    ScriptElement = null;
    //
    delete HeadElement;
    HeadElement = null;
    };        
  }
*/
function isLibraryLoaded(LibraryName)
  {
  //
  // ... la fonction renvoie true si la méthode "Loaded" correspondant à la bibliothèque est présente ...
  //
  return (LibraryName!=undefined && LibraryName!="") ? (LibraryName+"Loaded" in window) : false; 
  }

function loadMacallan()
  {
  var CounterScripts;
  var Includes;
  var Items;
  var LibrariesList="ajax,common,dates,encode,files,forms,strings";
  //
  // ... récupère une référence sur les balises scripts du document ...
  //
  Items = document.getElementsByTagName("script");
  //
  // ... si la référence à la collection des balises scripts est valide ...
  //
  if(Items)
    {
    //
    // ... parcourt la collection des balises scripts ...
    //
    Loop1:
    for (CounterScripts = Items.length-1; CounterScripts > 0; CounterScripts--)
      {
      //
      // ... ...
      //
      with(Items[CounterScripts])
        {
        //
        // ... si la balise script courante correspond au fichier _macallan.js ...
        //
        if(src && src.match(/_macallan\.js(\?.*)?$/))
          {          
          //
          // ... retire les espaces et mémorise la liste des fonctionnalités à activer ...
          //
          Includes = src.replace(/ /g, "").match(/\?.*load=([a-z,]*)/);
          //
          //
          // ... charge les fonctionnalités demandées ...
          // (les fonctionnalités sont toutes chargées si aucune n'est spécifiée)
          //          
          loadLibraries((Includes ? Includes[1] : LibrariesList).split(","), src.substring(0, src.lastIndexOf("/")));
          break Loop1;
          };
        };
      };
    };
    //
    // ... détruit les objets temporaire ...
    //
    delete Items;
    Items = null;    
  }

function loadLibraries(Options, LibraryPath)
  {
  var CounterLibraries;
  //
  // ... si les arguments sont valides ....
  //  
  if(Options)
    {
    //
    // ... corrige et met en forme les arguments ...
    //
    if(LibraryPath==undefined){LibraryPath="";};
    if(LibraryPath!=""){LibraryPath+="/";};    
    //
    // ... parcourt la liste des bibliothèques javascript ...
    //
    for (CounterLibraries = 0; CounterLibraries < Options.length; CounterLibraries++)
      {
      //
      // ... charge la bibliothèque ...
      //
      include(LibraryPath+"_"+Options[CounterLibraries]+".js", false);
      };
    };  
  }
//
// ... déclenche le chargement des bibliothèques externes ...
//
loadMacallan();
//-->
