admin = {version:"1.0"}

admin.chooseClient = function(valeur) {
    var elems = valeur.split('|');
    document.getElementById('key_client').value = elems[1];
    document.getElementById('ip_client').value = elems[2];
    if (document.getElementById('ftp_passFTP') && document.getElementById('addClientPassFTP')) document.getElementById('addClientPassFTP').value = '';
};

admin.addBloc = function(typeBloc) {
    var tabBloc = new Array();
    tabBloc['ftp'] = new Array('hostFTP', 'userFTP', 'passFTP');
    tabBloc['sftp'] = new Array('hostSFTP', 'userSFTP', 'passSFTP');
    tabBloc['gabi'] = new Array('hostData', 'portData', 'userData', 'passData', 'hostApi', 'portApi', 'keyApi');
    tabBloc['ktm'] = new Array('hostData', 'userData', 'passData', 'isoexportCall', 'isoexportPath', 'allowedExportTime');
    tabBloc['karvi'] = new Array('databaseName', 'databaseID', 'hostData', 'isoexportCall', 'isoexportPath');
    tabBloc['agate'] = new Array('databaseName', 'hostData', 'portData', 'isoexportCall', 'isoexportPath');
    tabBloc['aloes'] = new Array('databaseName', 'databaseID', 'hostData', 'isoexportCall', 'isoexportPath');
    tabBloc['koha'] = new Array('hostData', 'isoexportCall', 'isoexportPath');

    var fieldset = document.createElement('fieldset');
    fieldset.setAttribute('id', 'fieldset_'+typeBloc);
    var fieldsetLegend = document.createElement('legend');
    var fieldsetImg = document.createElement('img');
    fieldsetImg.className = 'delBlocImg';
    fieldsetImg.setAttribute('src', 'css/images/cancel.png');
    fieldsetImg.setAttribute('alt', 'Supprimer ce bloc');
    fieldsetImg.setAttribute('title', 'Supprimer ce bloc');
    fieldsetImg.setAttribute('onclick', 'admin.delBloc(\'fieldset_'+typeBloc+'\');');
    fieldsetLegend.appendChild(fieldsetImg);
    var fieldsetLegendText = document.createTextNode(typeBloc);
    fieldsetLegend.appendChild(fieldsetLegendText);
    fieldset.appendChild(fieldsetLegend);
    var fieldSetTable = document.createElement('table');
    for (var i = 0; i < tabBloc[typeBloc].length; i++){
        var sselement = tabBloc[typeBloc][i];
        var trTable = document.createElement('tr');
        var tdTable1 = document.createElement('td');
        var tdTable2 = document.createElement('td');
        tdTable1.appendChild(document.createTextNode(sselement + ' : '));
        var input = document.createElement('input');
        var space = document.createTextNode(' ');
        var span = document.createElement('span');
        input.setAttribute('type', 'text');
        input.setAttribute('name', typeBloc + '_' + sselement);
        input.setAttribute('id', typeBloc + '_' + sselement);
        input.setAttribute('size', '50');
        var valueField = '';
        switch (sselement) {
            case 'hostSFTP' :
            case 'hostFTP' :
                valueField = 'upload.bibenligne.fr';
                break;
            case 'userSFTP' :
            case 'userFTP' :
                valueField = document.getElementById('id_client').options[document.getElementById('id_client').selectedIndex].text;
                break;
            case 'passSFTP' :
            case 'passFTP' :
                if (document.getElementById('addClientPassFTP')) valueField = document.getElementById('addClientPassFTP').value;
                break;
            default :
                valueField = '';
        }
        input.setAttribute('value', valueField);
        span.className = 'help';
        span.setAttribute('onmousemove', 'admin.helpBalloon(event, admin.translate(\''+typeBloc+'\', \''+sselement+'\'));');
        span.setAttribute('onmouseout', 'javascript:document.getElementById(\'helpBalloon\').style.display=\'none\';');
        span.innerHTML = '&nbsp;';
        tdTable2.appendChild(input);
        tdTable2.appendChild(space);
        tdTable2.appendChild(span);
        trTable.appendChild(tdTable1);
        trTable.appendChild(tdTable2);
        fieldSetTable.appendChild(trTable);
    }
    fieldset.appendChild(fieldSetTable);
    document.getElementById('contenu_config').appendChild(fieldset);
    if (typeBloc != 'ftp' && typeBloc != 'sftp') document.getElementById('lastSIGB').value = typeBloc;
};

admin.delBloc = function(nodeName) {
    document.getElementById('contenu_config').removeChild(document.getElementById(nodeName));
};

admin.verifyInputEmpty = function(node, type) {
    if (node != 'document') var start = document.getElementById(node);
    else start = document;
    var tabInput = start.getElementsByTagName('input');
    for (var i = 0; i < tabInput.length; i++) {
        if (tabInput[i].type == type && tabInput[i].value == '') return false;
    }
    return true;
};

admin.printConfig = function(type, action, ip, idclient) {
    if (ip != '' && idclient != '') {
        var id = new Array();
        id = idclient.split('|');
        id = id[0];
        if (type == 'general') document.getElementById('addBlocTr').style.display = '';
        else document.getElementById('addBlocTr').style.display = 'none';
        if (action == 'read') admin.ajaxRead({timeout:120000, url:'manage_config.php', query_string:'action=read&ipclient='+ip+'&idclient='+idclient+'&typeconfig='+type, typeconfig:type, ip:ip, id:id});
        if (action == 'write') {
            if (!admin.verifyInputEmpty('document', 'text')) {
                alert('Des champs sont manquants');
                return false;
            }
            if (type == 'general') {
                if (document.getElementById('config_methodSendExport').value == 'ftp' && document.getElementById('fieldset_ftp') == null) {
                    alert('Il manque les informations FTP');
                    return false;
                }
                if (document.getElementById('config_methodSendExport').value == 'sftp' && document.getElementById('fieldset_sftp') == null) {
                    alert('Il manque les informations SFTP');
                    return false;
                }
            }
            document.getElementById('resultSend').innerHTML = 'Envoi en cours';
            var tabConfig = document.getElementsByTagName('input');
            var json = '';
            var regexp = new RegExp("\\\\", "g");
            for (var i = 2; i < tabConfig.length; i++){
                if (tabConfig[i].type == 'text') json += ',"'+tabConfig[i].id+'":"'+escape(tabConfig[i].value.replace(regexp, "\\\\"))+'"';
            }
            json = '{' + json.substr(1) + '}';
            admin.ajaxWrite({timeout:120000, url:'manage_config.php', query_string:'action=write&ipclient='+ip+'&idclient='+idclient+'&typeconfig='+type, params:'config='+json, typeconfig:type, id:id});
        }
    }
}

admin.ajaxRead = function(p) {
    tout = (p.timeout) ? p.timeout : 10000;
    document.getElementById('infosNext').innerHTML = '';
    document.getElementById('contenu_config').innerHTML = '&nbsp;';
    document.getElementById('contenu_config').className = 'loading';
    var callback =
    {
        timeout: tout,
        success: function(transaction) {
            document.getElementById('contenu_config').innerHTML = '';
            document.getElementById('contenu_config2').innerHTML = '';
            document.getElementById('resultSend').innerHTML = '';
            var response = transaction.responseXML.documentElement;
            var result = response.getElementsByTagName('result').item(0).firstChild.nodeValue;
            if (result == 1) {
                document.getElementById('contenu_config').className = '';
                for (var i = 1; i < response.childNodes.length; i++){
                    var element = response.childNodes[i];
                    var fieldset = document.createElement('fieldset');
                    fieldset.setAttribute('id', 'fieldset_'+element.nodeName);
                    var fieldsetLegend = document.createElement('legend');
                    if (element.nodeName != 'config' && p.typeconfig == 'general') {
                        var fieldsetImg = document.createElement('img');
                        fieldsetImg.className = 'delBlocImg';
                        fieldsetImg.setAttribute('src', 'css/images/cancel.png');
                        fieldsetImg.setAttribute('alt', 'Supprimer ce bloc');
                        fieldsetImg.setAttribute('title', 'Supprimer ce bloc');
                        fieldsetImg.setAttribute('onclick', 'admin.delBloc(\'fieldset_'+element.nodeName+'\');');
                        fieldsetLegend.appendChild(fieldsetImg);
                    }
                    var fieldsetLegendText = document.createTextNode(element.nodeName);
                    fieldsetLegend.appendChild(fieldsetLegendText);
                    fieldset.appendChild(fieldsetLegend);
                    var fieldSetTable = document.createElement('table');
                    for (var j = 0; j < element.childNodes.length; j++){
                        var sselement = element.childNodes[j];
                        var trTable = document.createElement('tr');
                        var tdTable1 = document.createElement('td');
                        var tdTable2 = document.createElement('td');
                        tdTable1.appendChild(document.createTextNode(sselement.nodeName + ' : '));
                        var input = document.createElement('input');
                        var space = document.createTextNode(' ');
                        var span = document.createElement('span');
                        input.setAttribute('type', 'text');
                        input.setAttribute('name', element.nodeName + '_' + sselement.nodeName);
                        input.setAttribute('id', element.nodeName + '_' + sselement.nodeName);
                        input.setAttribute('size', '50');
                        //if (p.typeconfig == 'general' && element.nodeName == 'config' && sselement.nodeName == 'key') {
                            //input.setAttribute('value', document.getElementById('key_client').value);
                            //input.setAttribute('disabled', 'disabled');
                        //}
                        //else 
                            input.setAttribute('value', sselement.firstChild.nodeValue);
                        span.className = 'help';
                        span.setAttribute('onmousemove', 'admin.helpBalloon(event, admin.translate(\''+element.nodeName+'\', \''+sselement.nodeName+'\'));');
                        span.setAttribute('onmouseout', 'javascript:document.getElementById(\'helpBalloon\').style.display=\'none\';');
                        span.innerHTML = '&nbsp;';
                        tdTable2.appendChild(input);
                        tdTable2.appendChild(space);
                        tdTable2.appendChild(span);
                        trTable.appendChild(tdTable1);
                        trTable.appendChild(tdTable2);
                        fieldSetTable.appendChild(trTable);
                    }
                    fieldset.appendChild(fieldSetTable);
                    document.getElementById('contenu_config').appendChild(fieldset);
                }
                var majButton = document.createElement('input');
                majButton.setAttribute('type', 'button');
                majButton.setAttribute('name', 'maj');
                majButton.setAttribute('id', 'maj');
                majButton.setAttribute('value', 'Mettre à jour sur ' + document.getElementById('ip_client').value);
                majButton.setAttribute('onclick', 'admin.printConfig(\''+p.typeconfig+'\', \'write\', \'' + p.ip + '\', \'' + p.id + '\');');
                document.getElementById('contenu_config2').appendChild(majButton);
                if (p.typeconfig == 'general') document.getElementById('infosNext').innerHTML = '<p>&rarr; Ouvrir la fenêtre du checker (<a href="http://localhost/webservices/checker/test_config.php?idclient='+p.id+'" target="_blank">locale</a> / <a href="http://'+p.ip+'/webservices/checker/test_config.php?idclient='+p.id+'" target="_blank">à distance</a>) <span class="help" onmousemove="admin.helpBalloon(event, \'Se connecte chez le client et affiche la page locale du checker<ul><li>Locale : se connecte en localhost</li><li>A distance : se connecte sur l\\\'IP fournie</li></ul>\');" onmouseout="javascript:document.getElementById(\'helpBalloon\').style.display=\'none\';">&nbsp;</span></p>';
            }
            else {
                document.getElementById('contenu_config').className = 'error';
                document.getElementById('contenu_config').innerHTML = response.getElementsByTagName('errorMsg').item(0).firstChild.nodeValue;
            }
        },
        failure: function(transaction) {
            alert('Erreur Ajax');
        }
    };
    var transaction = YAHOO.util.Connect.asyncRequest('GET', p.url+'?'+p.query_string, callback, null);
};

admin.ajaxWrite = function(p) {
    tout = (p.timeout) ? p.timeout : 10000;
    var callback =
    {
        timeout: tout,
        success: function(transaction) {
            var response = transaction.responseXML.documentElement;
            var result = response.getElementsByTagName('result').item(0).firstChild.nodeValue;
            if (result == 1) {
                document.getElementById('resultSend').className = '';
                document.getElementById('resultSend').innerHTML = 'Fichier envoyé';
                if (p.typeconfig == 'general') document.getElementById('infosNext').innerHTML = '<p>&rarr; Ouvrir la fenêtre du checker (<a href="http://localhost/webservices/checker/test_config.php?idclient='+p.id+'" target="_blank">locale</a> / <a href="http://'+document.getElementById('ip_client').value+'/webservices/checker/test_config.php?idclient='+p.id+'" target="_blank">à distance</a>) <span class="help" onmousemove="admin.helpBalloon(event, \'Se connecte chez le client et affiche la page locale du checker<ul><li>Locale : se connecte en localhost</li><li>A distance : se connecte sur l\\\'IP fournie</li></ul>\');" onmouseout="javascript:document.getElementById(\'helpBalloon\').style.display=\'none\';">&nbsp;</span><br /><a href="#" onclick="admin.verifCommAgent(\''+p.id+'\');return false;">&rarr; Vérifier la communication de l\'agent</a>  <span class="help" onmousemove="admin.helpBalloon(event, \'Envoie la requête <strong>infos</strong> à l\\\'agent SIGB.<ul><li>Pour un SIGB Carthame, doit renvoyer <strong>ktm</strong></li><li>Pour un SIGB Karvi, doit renvoyer <strong>karvi</strong></li><li>Pour un SIGB Agate, doit renvoyer <strong>agate</strong></li><li>Pour un SIGB e-Paprika, doit renvoyer <strong>eppk</strong></li><li>Pour un SIGB Aloes, doit renvoyer <strong>aloes</strong></li><li>Pour un SIGB Koha, doit renvoyer <strong>koha</strong></li></ul>\');" onmouseout="javascript:document.getElementById(\'helpBalloon\').style.display=\'none\';">&nbsp;</span> <span id="resultComm">&nbsp;</span></p>';
            }
            else {
                var errorMsg = response.getElementsByTagName('errorMsg').item(0).firstChild.nodeValue;
                document.getElementById('resultSend').className = 'error';
                document.getElementById('resultSend').innerHTML = 'Fichier non envoyé : ' + errorMsg;
            }
        },
        failure: function(transaction) {
            document.getElementById('resultSend').innerHTML = 'Erreur Ajax : fichier non envoyé';
        }
    };
    var transaction = YAHOO.util.Connect.asyncRequest('POST', p.url + '?' + p.query_string, callback, p.params);
};

admin.majOpac = function (updatorPath) {
    if (updatorPath == '') alert('Chemin vide');
    else {
        if (confirm('Mettre à jour l\'OPAC 3D ?')) {
            document.getElementById('resultMaj').innerHTML = '&nbsp;';
            document.getElementById('infosMaj').innerHTML = '';
            document.getElementById('resultMaj').className = 'loading';
            document.getElementById('majButton').disabled = 'disabled';
            admin.launchMajOpac({timeout:300000, url:'launchMajOpac.php', query_string:'action=majglobal&updatorpath='+updatorPath});
        }
    }
};

admin.launchMajOpac = function (p) {
    tout = (p.timeout) ? p.timeout : 10000;
    var callback =
    {
        timeout: tout,
        success: function(transaction) {
            document.getElementById('majButton').disabled = '';
            var response = transaction.responseXML.documentElement;
            var result = response.getElementsByTagName('result').item(0).firstChild.nodeValue;
            if (result == 1) {
                var infosMsg = response.getElementsByTagName('infosMsg').item(0).firstChild.nodeValue;
                document.getElementById('resultMaj').className = '';
                document.getElementById('resultMaj').innerHTML = 'Mise à jour terminée';
                document.getElementById('infosMaj').innerHTML = infosMsg;
            }
            else {
                var errorMsg = response.getElementsByTagName('errorMsg').item(0).firstChild.nodeValue;
                document.getElementById('resultMaj').className = 'error';
                document.getElementById('resultMaj').innerHTML = 'Erreur de mise à jour : ' + errorMsg;
            }
        },
        failure: function(transaction) {
            document.getElementById('majButton').disabled = '';
            document.getElementById('resultMaj').innerHTML = 'Erreur Ajax';
        }
    };
    var transaction = YAHOO.util.Connect.asyncRequest('GET', p.url + '?' + p.query_string, callback, p.params);
};

admin.addClientOpac = function (idclient, keyclient, ipclient, ftpchecked, userFTP, passFTP, hostBDD, userBDD, passBDD, hostBDDCentral, userBDDCentral, passBDDCentral) {
    var reg = new RegExp("[^a-zA-Z0-9]+");
    if (document.getElementById('enableFTP').checked == true) {
        if (!admin.verifyInputEmpty('document', 'text')) {
            alert('Informations manquantes');
            return false;
        }
    }
    else {
        if (!admin.verifyInputEmpty('tableClient', 'text')) {
            alert('Informations manquantes');
            return false;
        }
    }
    if (document.getElementById('idclient').value.length > 25) {
        alert('L\'ID client doit être inférieur à 25 caractères');
        return false;
    }
    if (reg.test(document.getElementById('idclient').value)) {
        alert('L\'ID client contient des caractères non autorisés');
        return false;
    }
    document.getElementById('resultAdd').innerHTML = '&nbsp;';
    document.getElementById('resultAdd').className = 'loading';
    admin.launchAddClientOpac({timeout:120000, url:'launchAddClientOpac.php', query_string:'action=addclient&idclient='+idclient+'&keyclient='+keyclient+'&ipclient='+ipclient+(ftpchecked == true ? '&userFTP='+userFTP+'&passFTP='+passFTP+'&hostBDD='+hostBDD+'&userBDD='+userBDD+'&passBDD='+passBDD+'&hostBDDCentral='+hostBDDCentral+'&userBDDCentral='+userBDDCentral+'&passBDDCentral='+passBDDCentral : ''), idclient:idclient, passFTP:passFTP, ftpchecked:ftpchecked});
};

admin.launchAddClientOpac = function (p) {
    tout = (p.timeout) ? p.timeout : 10000;
    var callback =
    {
        timeout: tout,
        success: function(transaction) {
            var response = transaction.responseXML.documentElement;
            var result = response.getElementsByTagName('result').item(0).firstChild.nodeValue;
            if (result == 1) {
                document.getElementById('resultAdd').className = '';
                document.getElementById('resultAdd').innerHTML = 'Client ajouté';
                document.getElementById('infosAdd').innerHTML  = '<a href="configAgent.php?idclient='+p.idclient+(p.ftpchecked == true ? '&passftp='+p.passFTP : '')+'">&rarr; Configurer l\'agent maintenant</a>';
            }
            else {
                var errorMsg = response.getElementsByTagName('errorMsg').item(0).firstChild.nodeValue;
                document.getElementById('resultAdd').className = 'error';
                document.getElementById('resultAdd').innerHTML = 'Erreur : ' + errorMsg;
            }
        },
        failure: function(transaction) {
            document.getElementById('resultAdd').innerHTML = 'Erreur Ajax';
        }
    };
    var transaction = YAHOO.util.Connect.asyncRequest('GET', p.url + '?' + p.query_string, callback, p.params);
};

admin.verifCommAgent = function (idclient) {
    document.getElementById('resultComm').className = '';
    document.getElementById('resultComm').innerHTML = '';
    var tabFieldset = document.getElementsByTagName('fieldset');
    for (var i = 0; i < tabFieldset.length; i++) {
        var sigbFieldset = tabFieldset[i].id.split("_");
        if (sigbFieldset[1] != 'config' && sigbFieldset[1] != 'ftp' && sigbFieldset[1] != 'sftp') document.getElementById('lastSIGB').value = sigbFieldset[1];
    }
    var sigb = document.getElementById('lastSIGB').value;
    tout = 120000;
    var callback =
    {
        timeout: tout,
        success: function(transaction) {
            var response = transaction.responseText;
            if (response.length > 1 && response != '-1') {
                document.getElementById('resultComm').className = 'ok';
                document.getElementById('resultComm').innerHTML = response;
            }
            else {
                document.getElementById('resultComm').className = 'error';
                document.getElementById('resultComm').innerHTML = 'Aucune réponse';
            }
        },
        failure: function(transaction) {
            document.getElementById('resultComm').innerHTML = 'Erreur Ajax';
        }
    };
    var transaction = YAHOO.util.Connect.asyncRequest('GET', 'http://'+window.location.host+'/webservices/pub/gateway_server.php?destaddr='+window.location.host+'&idclient='+idclient+'&sigb='+sigb+'&action=infos', callback, '');
};

admin.generateMdpSuper = function () {
    document.getElementById('mdpsuper').className = 'loading';
    document.getElementById('mdpsuper').style.display = 'block';
    tout = 10000;
    var callback =
    {
        timeout: tout,
        success: function(transaction) {
            document.getElementById('mdpsuper').className = '';
            document.getElementById('mdpsuper').innerHTML = '<span title="Valable 1 semaine">'+transaction.responseText+'</span>';
        },
        failure: function(transaction) {
            document.getElementById('mdpsuper').className = 'error';
            document.getElementById('mdpsuper').innerHTML = 'Erreur Ajax';
        }
    };
    var transaction = YAHOO.util.Connect.asyncRequest('GET', 'generateMdpSuper.php', callback, '');
};

admin.showListClient = function() {
    tout = 10000;
    document.getElementById('selectClientsPass').className = 'loading';
    var callback =
    {
        timeout: tout,
        success: function(transaction) {
            document.getElementById('selectClientsPass').className = '';
            document.getElementById('selectClientsPass').innerHTML = transaction.responseText;
            document.getElementById('showPassClient').style.display = 'block';
        },
        failure: function(transaction) {
            document.getElementById('selectClientsPass').className = 'error';
            document.getElementById('selectClientsPass').innerHTML = 'Erreur Ajax';
        }
    };
    var transaction = YAHOO.util.Connect.asyncRequest('GET', 'listClients.php', callback, '');
};

admin.generateMdpClient = function () {
    document.getElementById('mdpclient').className = 'loading';
    document.getElementById('mdpclient').style.display = 'block';
    tout = 10000;
    var callback =
    {
        timeout: tout,
        success: function(transaction) {
            document.getElementById('mdpclient').className = '';
            document.getElementById('mdpclient').innerHTML = '<span title="A modifier par le client">'+transaction.responseText+'</span>';
        },
        failure: function(transaction) {
            document.getElementById('mdpclient').className = 'error';
            document.getElementById('mdpclient').innerHTML = 'Erreur Ajax';
        }
    };
    var transaction = YAHOO.util.Connect.asyncRequest('POST', 'generateMdpClient.php', callback, 'idClient='+document.getElementById('pass_id_client').value);
};

admin.randomString = function (nbcar) {
	var ListeCar = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9");
	var Chaine = '';
	for(i = 0; i < nbcar; i++)
	{
		Chaine = Chaine + ListeCar[Math.floor(Math.random()*ListeCar.length)];
	}
	return Chaine;
};

admin.helpBalloon = function (e, message) {
    if (!e) var e = window.event;
	var balloon = document.getElementById('helpBalloon');
    balloon.innerHTML = message;
	balloon.style.display = 'block';
	var x = e.clientX + document.documentElement.scrollLeft + 15 + 'px';
	var y = e.clientY + document.documentElement.scrollTop - (balloon.offsetHeight / 2) + 'px';
	balloon.style.top = y
	balloon.style.left = x;
};

admin.translate = function (cat, ssCat) {
    var tabTranslation = new Array();

    tabTranslation['config'] = new Array();
    tabTranslation['ktm'] = new Array();
    tabTranslation['karvi'] = new Array();
    tabTranslation['agate'] = new Array();
    tabTranslation['gabi'] = new Array();
    tabTranslation['aloes'] = new Array();
    tabTranslation['koha'] = new Array();
    tabTranslation['ftp'] = new Array();
    tabTranslation['sftp'] = new Array();
    tabTranslation['exports'] = new Array();
    tabTranslation['client'] = new Array();
    tabTranslation['server'] = new Array();
    tabTranslation['files'] = new Array();
    tabTranslation['mail'] = new Array();
    
    tabTranslation['config']['key'] = 'Clé du client (doit être la même que celle définie prédédemment lors de l\'ajout du client)';
    tabTranslation['config']['classPath'] = 'Chemin des classes clientes SIGB (la plupart du temps <strong>sigb_class/</strong>)';
    tabTranslation['config']['activateExport'] = 'Activer les exports ISO côté client <strong>(T)</strong> ou non <strong>(F)</strong>';
    tabTranslation['config']['methodSendExport'] = 'Méthode d\'envoi des exports ISO.<br />3 choix possibles : <strong>direct, ftp, sftp</strong>.<ul><li>Le mode <strong>direct</strong> est utilisé la plupart du temps pour une installation de l\'opac3d locale, l\'export est envoyé dans un dossier sur la même machine</li><li>Le mode <strong>ftp</strong> permet d\'envoyer les exports sur le serveur FTP de la plateforme (cas habituel d\'installation d\'agent client seul)</li><li>Le mode <strong>sftp</strong> est comme le ftp mais sécurisé</li></ul>';
    tabTranslation['config']['dirSendExport'] = 'Répertoire qui va accueillir les exports ISO.<br />Si le mode <strong>direct</strong> a été choisi, mettre le chemin absolu du dossier de la machine.<br />Si le mode <strong>ftp</strong> ou <strong>sftp</strong> a été choisi, mettre la plupart du temps <strong>"/"</strong> correspondant à la racine du FTP.'
    tabTranslation['config']['compressExport'] = 'Permet de compresser les exports ISO <strong>(T)</strong> ou non <strong>(F)</strong>.<br />Si activé, une archive ZIP sera envoyée contenant l\'ISO et le fichier XML.<br />Si non activé, les fichiers ISO et XML seront envoyés séparemment.<br />La plupart du temps, il est préférable de mettre ce paramètre à <strong>T</strong> sauf si côté client, la librairie ZIP n\'est pas disponible.';
    tabTranslation['ktm']['hostData'] = 'Chemin de la base de donnée Carthame (sous forme <strong>ip:chemin_local</strong>)';
    tabTranslation['ktm']['userData'] = 'Utilisateur Firebird (par défaut <strong>OPACW</strong>)';
    tabTranslation['ktm']['passData'] = 'Mot de passe Firebird (par défaut <strong>opac</strong>)';
    tabTranslation['ktm']['isoexportCall'] = 'Chemin du dossier client de l\'agent SIGB (la plupart du temps <strong>C:\\Decalog\\opac3d\\webservices\\client\\</strong>).<br />Ne pas oublier le dernier slash à la fin.';
    tabTranslation['ktm']['isoexportPath'] = 'Chemin du dossier d\'export (par défaut, le chemin isoexportCall suivi de exportISO, comme <strong>C:\\Decalog\\opac3d\\webservices\\client\\exportISO\\</strong>).<br />Ne pas oublier le dernier slash à la fin.';
    tabTranslation['ktm']['allowedExportTime'] = 'Horaires autorisées lors de gros exports.<br />Si la tâche planifiée d\'un gros export (+ de 5000 notices) se lance en dehors des tranches autorisées, rien ne sera exporté.<br /><strong>Utilisation :</strong><br />jours<strong>|</strong>heures, les chiffres séparés par des <strong>";"</strong> autorisent ces jours/heures, et les périodes se traduisent par chiffre<strong>-</strong>chiffre.<br ><strong>Exemples :</strong><br />*|* : pas de restrictions<br />0;1;5|* : le dimanche, lundi et vendredi à n\'importe quelle heure<br />*|10;20 : tous les jours de 10h00 à 10h59 et de 20h00 à 20h59<br />*|2-9;20-23 : tous les jours de 2h00 à 8h59 et de 20h00 à 22h59';
    tabTranslation['karvi']['databaseName'] = 'Nom de la base de donnée sans le "ab_" (ex : <strong>vesubie</strong>)';
    tabTranslation['karvi']['databaseID'] = 'Numéro de la base DATA (par exemple <strong>1</strong> pour la base ab_vesubiedata<strong>1</strong>)';
    tabTranslation['karvi']['hostData'] = 'Adresse du répertoire de la version à utiliser (ex : <strong>http://www2.cg06.decalog.net/sw/sigb/SW_trunk/</strong>)';
    tabTranslation['karvi']['isoexportCall'] = 'Adresse du connecteur permettant de lancer l\'export (ex : <strong>http://www2.cg06.decalog.net/sw/sigb/SW_trunk/portail/exportiso.php</strong>)';
    tabTranslation['karvi']['isoexportPath'] = 'Chemin du dossier d\'export (par défaut là où est installé l\'agent, ex : <strong>/var/www/html/webservices/client/exportISO/</strong>)';
    tabTranslation['agate']['databaseName'] = 'Par défaut <strong>agate</strong>';
    tabTranslation['agate']['hostData'] = 'Adresse IP ou domaine de la machine sur laquelle est la base Agate';
    tabTranslation['agate']['portData'] = 'Port sur lequel ouvrir les sockets pour interroger la base Agate';
    tabTranslation['agate']['isoexportCall'] = 'Chemin du dossier d\'export par défaut d\'Agate (la plupart du temps <strong>C:\\bases_clients\\nom_client\\export_opac2\\</strong>).<br />Ne pas oublier le dernier slash à la fin.';
    tabTranslation['agate']['isoexportPath'] = 'Chemin du dossier d\'export de l\'agent SIGB (la plupart du temps <strong>C:\\Decalog\\opac3d\\webservices\\client\\exportISO\\</strong>).<br />Ne pas oublier le dernier slash à la fin.';
    tabTranslation['gabi']['hostData'] = 'Adresse IP ou domaine de la base e-Paprika (ex : <strong>srveppk</strong>)';
    tabTranslation['gabi']['portData'] = 'Port sur lequel interroger la base e-Paprika (ex : <strong>8080</strong>)';
    tabTranslation['gabi']['userData'] = 'Nom d\'utilisateur requis pour l\'authentification e-Paprika (par défaut : <strong>user</strong>)';
    tabTranslation['gabi']['passData'] = 'Mot de passe requis pour l\'authentification e-Paprika (par défaut : <strong>user</strong>)';
    tabTranslation['ftp']['hostFTP'] = 'Adresse IP ou domaine du FTP recevant les exports ISO des clients (par défaut : <strong>upload.bibenligne.fr</strong>)';
    tabTranslation['ftp']['userFTP'] = 'Nom d\'utilisateur du client pour le FTP, défini précédemment lors de l\'ajout du client';
    tabTranslation['ftp']['passFTP'] = 'Mot de passe du client pour le FTP, défini précédemment lors de l\'ajout du client';
    tabTranslation['sftp']['hostSFTP'] = 'Adresse IP ou domaine du SFTP recevant les exports ISO des clients (par défaut : <strong>upload.bibenligne.fr</strong>)';
    tabTranslation['sftp']['userSFTP'] = 'Nom d\'utilisateur du client pour le SFTP, défini précédemment lors de l\'ajout du client';
    tabTranslation['sftp']['passSFTP'] = 'Mot de passe du client pour le SFTP, défini précédemment lors de l\'ajout du client';
    tabTranslation['exports']['path'] = 'Chemin du dossier d\'export de l\'agent SIGB (la plupart du temps <strong>C:\\Decalog\\opac3d\\webservices\\client\\</strong>).<br />Ne pas oublier le dernier slash à la fin.';
    tabTranslation['exports']['storage'] = 'Chemin du dossier où vont les exports (la plupart du temps <strong>C:\\Decalog\\opac3d\\storage\\</strong>).<br />Si il s\'agit d\'un client hébergé, donc qui n\'a pas de dossier storage, mettre <strong>F</strong>';
    tabTranslation['client']['path'] = 'Chemin du dossier de l\'agent SIGB (la plupart du temps <strong>C:\\Decalog\\opac3d\\webservices\\client\\</strong>)';
    tabTranslation['server']['active'] = 'Mettre <strong>T</strong> si il s\'agit d\'une installation complète de l\'opac3d locale chez le client, sinon <strong>F</strong>';
    tabTranslation['server']['path'] = 'Si le serveur est à T, mettre le chemin du dossier agent serveur (la plupart du temps <strong>C:\\Decalog\\opac3d\\webservices\\serveur\\</strong>), sinon mettre <strong>F</strong>';
    tabTranslation['files']['max_filesize'] = 'Taille maximale des fichiers de log.<br />Passé cette taille, de nouveaux logs sont créés (par défaut : 1048576, correspondant à ~ 1Mo)';
    tabTranslation['mail']['key'] = 'Clé publique utilisée pour le webservice du mail (par défaut : <strong>OPAC3D_DK</strong>)';
    tabTranslation['mail']['service'] = 'Adresse du webservice mail (par défaut : <strong>webservices.e-sezhame.fr</strong>)';
    tabTranslation['mail']['dest'] = 'Adresse mail sur laquelle recevoir les rapports de monitoring (par défaut : <strong>cloud.decalog@gmail.com</strong>';
    tabTranslation['aloes']['databaseName'] = 'Nom du serveur session\\Nom du poste client (ex : LORDGUINESS\\INTERNET)';
    tabTranslation['aloes']['databaseID'] = 'Identifiant de la base de donnée (ex : aloes)';
    tabTranslation['aloes']['hostData'] = 'URL du webservice Aloes (du type http://ip:port/WebSrvAloes/ServiceRecherche.asmx)';
    tabTranslation['aloes']['isoexportCall'] = 'Chemin du dossier d\'export par défaut d\'Aloes.<br />Ne pas oublier le dernier slash à la fin.';
    tabTranslation['aloes']['isoexportPath'] = 'Chemin du dossier d\'export (par défaut là où est installé l\'agent, ex : <strong>/var/www/html/webservices/client/exportISO/</strong>)';
    tabTranslation['koha']['hostData'] = 'URL du webservice Koha (du type http://opac.citebd.progilone.fr)';
    tabTranslation['koha']['isoexportCall'] = 'Chemin du dossier d\'export par défaut de Koha.<br />Ne pas oublier le dernier slash à la fin.';
    tabTranslation['koha']['isoexportPath'] = 'Chemin du dossier d\'export (par défaut là où est installé l\'agent, ex : <strong>/var/www/html/webservices/client/exportISO/</strong>)';

    return tabTranslation[cat][ssCat];
};