/*
         * SERVICES
         */
        /// <summary>
        /// Réalise la lecture de tous les paramètres disponibles dans le fichier de configuration
        /// </summary>
        /// <param name="configFileRelPath"></param>
        /// <returns></returns>
        public int loadConfigFile(string configFileRelPath)
        {
            // Path absolu du fichier de configuration
            configFilePath = appDirPath + configFileRelPath;
            // Dossier de configuration
            configDirPath = configFilePath.Substring(0, configFilePath.LastIndexOf(Path.DirectorySeparatorChar));
            // Lecture et exploitation du fichier XML de configuration
            ConfigXMLFile configFile = new ConfigXMLFile(configFilePath);

            if (configFile.IOStatus == FileIO.FILEOP_SUCCESSFUL)
            {
                // Langue active
                activeLangIndex = 0;
                activeLang      = configFile.getValue(XMLFile.NODE_SETTING, XMLFile.ATTRIB_NAME, XMLFile.LANGUAGE);
                // Version du fichier de configuration (non utilisé)
                // TODO implémenter l'utilisation du numéro de version du fichier de configuration
                //string[] nodes = { XMLFile.NODE_CONFIG };
                configFileVersion = configFile.getAttribute(new string[] { XMLFile.NODE_APP, XMLFile.NODE_CONFIG },
                                                            XMLFile.ATTRIB_VERSION);
                // Packs de langue
                Langs = configFile.GetLanguagesFromXML(configDirPath);
                // Dossiers des logs
                logDirPath = appDirPath + configFile.getValue(XMLFile.NODE_DIR, XMLFile.ATTRIB_NAME, XMLFile.LOGS);
                // Mode Logger
                logger = configFile.getBoolean(XMLFile.NODE_SETTING, XMLFile.ATTRIB_NAME, XMLFile.LOGGER, true);
                // Dossier des modèles de calcul
                modelsDirPath = appDirPath +
                                configFile.getValue(XMLFile.NODE_DIR, XMLFile.ATTRIB_NAME, XMLFile.MODELS);
                // Nom publique de l'app
                publicAppVersion = "";
                // N° publique de version
                publicAppVersion = "";
                // Dossier des scripts
                scriptsDirPath = appDirPath +
                                 configFile.getValue(XMLFile.NODE_DIR, XMLFile.ATTRIB_NAME, XMLFile.SCRIPTS);
                // Mode UnitsEnabled
                unitsEnabled = configFile.getBoolean(XMLFile.NODE_SETTING, XMLFile.ATTRIB_NAME, XMLFile.UNITS_ENABLED, true);
                // Fichier des unités de calcul
                unitsFileName = configDirPath +
                                System.IO.Path.DirectorySeparatorChar +
                                configFile.getValue(XMLFile.NODE_FILE, XMLFile.ATTRIB_NAME, XMLFile.UNITS);
                // Mode VERBOSE ALLOWED
                verboseAllowed = configFile.getBoolean(XMLFile.NODE_SETTING, XMLFile.ATTRIB_NAME, XMLFile.VERBOSE_ALLOWED, true);
                // Mode VERBOSE
                setVerbose(configFile.getBoolean(XMLFile.NODE_SETTING, XMLFile.ATTRIB_NAME, XMLFile.VERBOSE, false));

                status = FileIO.FILEOP_SUCCESSFUL;

                // Recherche de l'index du language sélectionné
                activeLangIndex = Langs.languageIndex(activeLang);
            }
            else
            {
                // Config file unreadable
                status = configFile.IOStatus;
            }
            return(status);
        }