AbyssusHelper

Petit Script pour Abyssus

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name AbyssusHelper
// @description Petit Script pour Abyssus
// @version  1.0.1
// @grant none
// @match https://s1.abyssus.games/*
// @include https://s1.abyssus.games/*
// @namespace https://greasyfork.org/users/184933
// ==/UserScript==


// --------------------------------------------------------------------------
// Var
// --------------------------------------------------------------------------
//setCookie("AbyssusHelper_version", "1.1.0", 1);

var pseudo = document.getElementById("marqueur_pseudo_joueur").textContent;
var idjoueur = document.getElementById("marqueur_ID_joueur").textContent;
var tmJoueur = parseInt($("span[title='Territoire Marin']").text().replace(/ /g,""));
var pack_premium1 = document.getElementById("marqueur_pack_premium_1").textContent;
var pack_premium2 = document.getElementById("marqueur_pack_premium_2").textContent;
var delay = 0;
var changelog = "";
changelog += "<br/><strong>v1.18.6</strong><ul><li>Correction d'un bug dans l'enregistrement de la taille des sondes auto</li></ul><hr color=\"blue\"><br/>";
changelog += "<strong>v1.18.5</strong><ul><li>Modification des cibles outils guerre</li></ul><strong>v1.18.4</strong><ul><li>Modification des cibles outils guerre</li></ul><strong>v1.18.3</strong><ul><li>Modification des cibles outils guerre</li></ul><strong>v1.18.2</strong><ul><li>Modification des cibles outils guerre</li></ul><strong>v1.18.1</strong><ul><li>MAJ du traceur</li></ul><strong>v1.18.0</strong><ul><li>Ajout outils guerre</li></ul><strong>v1.17.1</strong><ul><li>Correction du formatage des floods en cours</li></ul><strong>v1.17.0</strong><ul><li>Ajout de la fonction post automatique des floods en cours</li></ul><strong>v1.16.8</strong><ul><li>Modification de la fonction réduction de la fenêtre AbyssusHelper</li><li>Modification de la fonction recherche de cibles à portée des lanceurs de flood</li><li>Correction d'un bug qui empêchait le Flood Optimisé de fonctionner dans certaines situations</li></ul><strong>v1.16.7</strong><ul><li>Correction d'un bug qui causait le CA de s'agrandir chaque seconde</li></ul><strong>v1.16.6</strong><ul><li>Correction d'une erreur qui causait le traceur d'être désactivé</li></ul><strong>v1.16.5</strong><ul><li>Correction du fonctionnement de la suggestion de chasses, ne force plus un certain nombre de vagues</li></ul><strong>v1.16.4</strong><ul><li>Correction d'un bug qui causait la suggestion de chasse d'être fausse</li></ul><strong>v1.16.3</strong><ul><li>Correction d'un bug qui empéchait l'affichage des cibles à portées sur les pages alliances dans la vue compacte</li></ul><strong>v1.16.2</strong><ul><li>Ajout d\'un petit espace entre la fin d\'un message et l\'icone vidéo</li></ul><strong>v1.16.1</strong><ul><li>Correction d\'un bug qui causait certaines vidéos de ne pas êtres lues</li></ul><strong>v1.16.0</strong><ul><li>Ajout du démineur ;)</li><li>Ajout de l\'intégration de vidéos youtube dans le Chat Alliance</li><li>Correction d\'un bug qui causait le texte de la page d\'être séléctionné lorsque la fenêtre AbyssusHelper était déplacée</li></ul><strong>v1.15.1</strong><ul><li>Le fond  de la version Compacte du site a été remplacé par une couleur unie</li></ul><strong>v1.15.0</strong><ul><li>Ajout d\'une option pour utiliser une version compacte du site</li><li>La fenêtre AbyssusHelper est désormais déplaçable</li><li>Modification du titre de la fenêtre AbyssusHelper sur les pages Classement Alliance, Classement Joueurs et Chat Général</li><li>Ajout d\'une suggestion de chasse</li><li>Correction des valeurs de FDF, FDD et Vie avec bonus sur la page production d\'unités</li><li>Ajout d\'une option pour forcer le MF à ignorer les paliers TM</li><li>Désactivation des outils guerre</li><li>Élargissement de la page paramètres</li><li>Ajout d\'outils sur la page paramètres</li><li>Correction du formatage du changelog</li></ul><strong>v1.14.5</strong><ul><li>Correction d\'un bug qui causait les murènes éléctriques d\'être ignorées par le Multiflood</li></ul><strong>v1.14.4</strong><ul><li>Mise à jour des cibles outils guerre à cause d\'un hébergement</li></ul><strong>v1.14.3</strong><ul><li>Mise à jour des cibles outils guerre à cause d\'un hébergement</li></ul><strong>v1.14.2</strong><ul><li>Ajout d\'un court délai avant l\'execution du traceur afin d\'essayer d\'empêcher l\'interruption de l\'enregistrement dans certains cas</li></ul><strong>v1.14.1</strong><ul><li>Augmentation de la fréquence d\'enregistrement du traceur</li></ul><strong>v1.14.0</strong><br/><ul><li>Correction d'un bug qui causait certains caractères d'être ignorés lors de l'écriture de texte dans les Chats</li><li>Ajout des outils guerre</li><li>Ajout de la coloration des joueurs sur le CG</li><li>Ajout de la coloration des alliances sur le classement alliances</li></ul><strong>v1.13.1</strong><br/><ul><li>Supression temporaire du tableau don de quêtes à cause d'un bug</li></ul><strong>v1.13.0</strong><br/><ul><li>Ajout d'un cadre news o0o sur la page accueil</li><li>Ajout du tableau log don des quêtes sur la page quête alliance</li><li>Correction d'une erreur de formatage dans le changelog</li><li>Ajout d'un bouton pour afficher le changelog dans la page paramètres</li><li>Ajout d'une option pour désactiver le respect des paliers de TM par le multiflood chaîne</li><li>Modification du multiflood chaîne afin qu'il respecte les paliers de TM</li></ul><strong>v1.12.0</strong><br/><ul><li>Modification du traceur. Celui-ci devrait maintenant être invisible</li><li>Ajout du sytème de convoi sur la page commerce</li><li>Ajout d'une alerte sur la page construction si moins de deux constructions sont en cours</li></ul><strong>v1.11.0</strong><br/><ul><li>Ajout du tag @everyone pour le Chat Alliance</li></ul><strong>v1.10.1</strong><br/><ul><li>Correction d'un bug qui empêchait le rafraichissement des préférences de TM par vague du lanceur de chasse</li></ul>v1.10.0</strong><br/><ul><li>Ajout d'une option pour désactiver le système de notification Chat Alliance</li><li>Ajout d'un système de notification Chat Alliance</li></ul><strong>v1.9.0</strong><br/><ul><li>Ajout de l'outil lanceur de chasses simultanées</li><li>Correction du format du changelog pour certaines entrées</li><li>Correction d'un bug qui enpêchait l'enregistrement des paramètres si l'option d'antisonde automatique n'était pas active</li><li>Ajout d'une liste de liens utiles sur la page Accueil</li><li>Correction d'un bug dans l'enregistrement des paramètres pour l'option des stats avancées sur la page production</li><li>Correction d'un bug dans l'enregistrement des paramètres pour l'outil de sondes automatiques</li><li>Nettoyage d'une partie du code</li></ul><strong>v1.8.6</strong><br/><ul><li>Correction d'un bug du traceur</li></ul><strong>v1.8.5</strong><br/><ul><li>Supression des outils de guerre</li><li>Modification du fonctionnement du traceur : si vous n'avez pas effectué d'enregistrement dans la dernière heure, un enregistrement est effectué</li></ul><strong>v1.8.4</strong><br/><ul><li>Le traceur ne confirme plus l'enregistrement</li></ul><strong>v1.8.3</strong><br/><ul><li>L'utilisation du traceur a été simplifiée d'avantage; une simple visite de la page alliance suffit</li></ul><strong>v1.8.2</strong><br/><ul><li>L'utilisation du traceur a été simplifiée</li></ul><strong>v1.8.1</strong><br/><ul><li>Le traceur s'ouvre dans un nouvel onglet maintenant</li></ul><strong>v1.8.0</strong><br/><ul><li>Ajout du traceur manuel de TM</li></ul><strong>v1.7.9</strong><br/><ul><li>Mise à jour de la liste des cibles des outils de guerre</li></ul><strong>v1.7.8</strong><br/><ul><li>Mise à jour de la liste des cibles des outils de guerre</li></ul><strong>v1.7.7</strong><br/><ul><li>Mise à jour de la liste des cibles des outils de guerre</li></ul><strong>v1.7.6</strong><br/><ul><li>Ajout de l'option taille sonde</li></ul><strong>v1.7.5</strong><br/><ul><li>Correction du bug des sondes infinies</li></ul><strong>v1.7.4</strong><br/><ul><li>Ajout des outils guerre</li></ul><strong>v1.7.3</strong><br/><ul><li>Petit changement pour essayer de corriger un bug dans la page paramètres</li></ul><strong>v1.7.2</strong><br/><ul><li>Petit changement temporaire pour essayer de corriger un bug dans le multiflood</li></ul><strong>v1.7.1</strong><br/><ul><li>Suppression des aides pour la guerre</li></ul><strong>v1.7.0</strong><br/><ul><li>Les descriptions d'alliances sont maintenant automatiquement masquées</li></ul><strong>v1.6.1</strong><br/><ul><li>Modification de l'apparence des marqueurs page alliance</li></ul><strong>v1.6.0</strong><br/><ul><li>Ajout de marqueurs bleu sur les pages alliance</li><li>Correction d'une erreur dans le changelog</li></ul><strong>v1.5.0</strong><br/><ul><li>Ajout de la possibilité de cliquer le titre de la fenêtre du script pour la réduire</li></ul><strong>v1.4.0</strong><br/><ul><li>Ajout d'un lien vers l'apo sur la page accueil</li></ul><strong>v1.3.1</strong><br/><ul><li>Correction d'un bug dans le lanceur de sonde</li></ul><strong>v1.3.0</strong><br/><ul><li>Supression du lien vers l'apo qui faisait tout bugger</li><li>Ajout d'un bouton sonde sur apo</li><li>Ajout de paramètres pour régler la taille de la sonde</li><li>Ajout de fonctionnalités sur la page alliance apo</li><li>Correction d'une erreur dans le changelog</li></ul><strong>v1.2.3</strong><br/><ul><li>Ajout d'un lien vers l'apo</li></ul><strong>v1.2.2</strong><br/><ul><li>Ajout du multiflood sur apo</li></ul><strong>v1.2.1</strong><br/><ul><li>Correction d'un bug qui empêchait le multiflood / flood opti de fonctionner correctement sur les cibles trop lointaines</li></ul><strong>v1.2.0</strong><br/><ul><li>Ajout d'une option pour montrer les stats des unités avec prise en compte des niveaux de Morsure et Ecaille sur la page production d\'unités</li></ul><strong>v1.1.6</strong><br/><ul><li>Ajout de l'enregistrement des niveaux Morsure et Ecaille</li></ul><strong>v1.1.5</strong><br/><ul><li>Changement de l'ordre d'utilisation des unités pour l'antisonde auto</li></ul><strong>v1.1.4</strong><br/><ul><li>Suppression du délai avant l'affichage de l'horloge</li><li>Correction d'un bug qui empêchait les préférences concernant l'horloge d'être sauvegardées</li><li>Changement de l'ordre d'utilisation des unités pour l'antisonde auto</li></ul><strong>v1.1.3</strong><br/><ul><li>L'horloge fait tic et toc mais n'est pas forcément à l'heure du serveur...</li></ul><strong>v1.1.2</strong><br/><ul><li>Ajout du cadre pour l'horloge. NB : L'horloge ne fonctionne pas encore</li></ul><strong>v1.1.1</strong><br/><ul><li>Amélioration de l'apparence du changelog</li></ul><strong>v1.1.0</strong><br/><ul><li>Ajout de l'antisonde automatique</li><li>Ajout des paramètres de l'antisonde automatique</li></ul><strong>v1.0.23</strong><br/><ul><li>Ajout du changelog</li></ul>";
var version = "1.18.6";

// --------------------------------------------------------------------------
// Bloc Div  : Différent en fonction des pages
// --------------------------------------------------------------------------
var newDiv = document.createElement("div");
newDiv.id= "abyssusHelper";
newDiv.style ="z-index: 100; position:fixed; top:2%; margin-left: auto; margin-right: auto;margin-top: -10px; border: 1px #FFFFFF solid;background:#092869;padding:1%;";
document.getElementById('bas').appendChild(newDiv);





//------------------------------------------------------------
//Traceur
//------------------------------------------------------------
///*
function traceurTM() {
    if (getCookie("AbyssusHelper_Traceur") == "") {
        setCookie("AbyssusHelper_Traceur", "auto", 0.0416);
        var frame1 = document.createElement('IFRAME');
        frame1.src = "https://s1.abyssus.games/jeu.php?page=alliance&tag=o0o";
        frame1.style.display = "none";
        //alliance ennemie

        var frame2 = document.createElement('IFRAME');
        frame2.src = "https://s1.abyssus.games/jeu.php?page=alliance&tag=TAG";
        frame2.style.display = "none";

        document.getElementById('bas').appendChild(frame1);
        document.getElementById('bas').appendChild(frame2);

        //window.open("https://s1.abyssus.games/jeu.php?page=alliance&tag=o0o");
    }
}
setTimeout(traceurTM, 500);
//*/
//setCookie("AbyssusHelper_Traceur", "", -1);

//calculer portée TM d'attaque
function liminf(tm) {
    return parseInt(tm/ (2 * ((1 +( parseInt(getCookie("AbyssusHelper_bonusCDF")) / 10)))));
}

function limsup(tm) {
    return parseInt(tm * (3 * ((1 +( parseInt(getCookie("AbyssusHelper_bonusCDF")) / 10)))));
}

//page 2 à mettre autre part à l'occasion
function getPage(page) {
    //force la requete ajax à être synchronisée
    jQuery.ajaxSetup({async:false});
    var mintdc = liminf(tmJoueur);
    var maxtdc = limsup(tmJoueur);
    var out = document.createElement('table');
    $.post('ajax/ennemies.php', {mintdc:mintdc, maxtdc:maxtdc, page:page, tri:'distance', sens:'asc', guerre:0, paix:0, ally:0}, function(data){
        out.innerHTML = data;
    });
    //rétablit l'async pour les requetes ajax
    jQuery.ajaxSetup({async:true});
    return out.getElementsByTagName('tr');

}

//----------------------------------------------------------------------------------------------------------
//FONCTIONS COOKIES
//----------------------------------------------------------------------------------------------------------

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}


//supprimer notif TM manquant
if(document.URL.indexOf("supprNotif")!=-1){
    setCookie("AbyssusHelper_tmAlly", parseInt(document.location.href.split("Notif")[1]), 7);
    document.location.href="https://s1.abyssus.games/jeu.php?page=listemembre";
}


//----------------------------------------------------------------------------------------------------------
//MULTIFLOOD CHAINE - CALCULER PROCHAINE VAGUE
//----------------------------------------------------------------------------------------------------------
function multiflood_CalculVague(tmMoi, tmLui) {
    var bonus = parseInt(getCookie("AbyssusHelper_bonusCDF"));
    var prise_max = Math.floor(0.2 * tmLui);

    if (tmLui < Math.ceil(tmMoi / (2*(1+bonus/10))) || tmLui > Math.floor(tmMoi * (3*(1+bonus/10)))) {
        //cible déjà HDP, ne pas lancer de nouvelle vague
        return -1;
    } else if (tmLui - prise_max < Math.ceil((tmMoi + prise_max) / (2*(1+bonus/10)))) {
        //cible va être HDP après l'attaque, lance attaque réduite
        var prise_init = prise_max;
        var reduction = 2;
        while (Math.floor(prise_init/reduction) > 0) {
            if (tmLui - prise_max < Math.ceil((tmMoi + prise_max) / (2*(1+bonus/10)))) {
                prise_max -= Math.ceil(prise_init/reduction);
            } else {
                prise_max += Math.floor(prise_init/reduction);
            }
            reduction *= 2;
        }
        prise_max -= 2;
        if (prise_max < 10) {
            //si prise réduite trop petite, lance juste vague normale, car probablement dernière vague ou alors vague réduite (presque) inutile
            return prise_init;
        } else {
            return prise_max;
        }
    } else {
        return prise_max;
    }
}


//----------------------------------------------------------------------------------------------------------
//MULTIFLOOD CHAINE - TROUVER CIBLES POTENTIELLES
//----------------------------------------------------------------------------------------------------------
function multiflood_Chaine() {
    //Cherche cibles
    var cibles = new Array();
    var paliers = new Array();
    var nouvelle_cible;
    var contenu_tableau = document.getElementById('tableaumembre').getElementsByTagName('tr');


    //Calcule nombre de membres... à mettre dans une fonction à part à l'occasion
    var str = document.getElementById('bloc').getElementsByTagName('center')[0].innerHTML;
    var strSub;
    strSub = str.split("Nombre de membre : ")[1];
    strSub = strSub.split("<")[0];
    var nbMembre = parseInt(strSub);

    //crée la liste de toutes les cibles.
    for (var i=1; i< nbMembre +1; i++) {
        var temp = contenu_tableau[i].cells[3].style.backgroundColor;
        var palier;
        if (temp == "#66329a" || temp == "rgb(102, 50, 154)" || temp == "rgb(77, 25, 25)" || temp == "#4d1919") {
            var contenu = contenu_tableau[i].cells[3].innerHTML;
            try {
            palier = parseInt(contenu.split('palier="')[1].split('"')[0]);
            } catch (exc) {}
            nouvelle_cible = (contenu.split('id=')[1]).split('"')[0];
            cibles.push(parseInt(nouvelle_cible));
            paliers.push(palier);
        }
    }

    setCookie("AbyssusHelper_CiblesMF", cibles, 1);
    setCookie("AbyssusHelper_PaliersMF", paliers, 1);
    setCookie("AbyssusHelper_LigneTableauMF", 1, 1);
    document.location.href="https://s1.abyssus.games/jeu.php?page=ennemies";
}

function test() {



//----------------------------------------------------------------------------------------------------------
//MULTIFLOOD CHAINE - TOUVER CIBLES LES PLUS PROCHES ET A PORTEE
//----------------------------------------------------------------------------------------------------------
if(document.URL.indexOf("ennemies")!=-1){
    var cibles = getCookie("AbyssusHelper_CiblesMF").split(",");
    var tmMoi;
    var ciblesAPortee = new Array();
    var tmciblesAPortee = new Array();
    var cible;
    var tableau;
    var paliers = getCookie("AbyssusHelper_PaliersMF").split(",");
    var paliersCiblesAPortee = new Array();

    if (cibles == "") {
        newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">AbyssusHelper  v' + version + '</font></span></center>';

        newDiv.innerHTML += '<br/><center><div class="K" style=""><button id="K", class="K ui-button ui-corner-all ui-widget">Mutliflood sur TAG</button><br><br></div></center>';
        //boutons pour guerre
        newDiv.innerHTML += '<br/><center><div class="sondes" style=""><button id="sondes", class="sondes ui-button ui-corner-all ui-widget">Sondes sur TAG</button><br><br></div></center>';

        document.getElementById("K").addEventListener(
            "click", function() {
                console.log("AHHHHHHHHHHHhhhhhhhhhhhhhhhhhh");
                //cibles alliance en guerre
                cibles = [0, 174, 687, 708, 735, 749, 762,792, 800, 823,835,1062, 1064, 1261, 1304];
                setCookie("AbyssusHelper_CiblesMF", cibles, 1);
                setCookie("AbyssusHelper_LigneTableauMF", 1, 1);
                document.location.href="https://s1.abyssus.games/jeu.php?page=ennemies";
            }, false
        );

        document.getElementById("sondes").addEventListener(
            "click", function() {
                //cibles alliance en guerre
                cibles = [0, 174, 687, 708, 735, 749, 762,792, 800, 823,835,1062, 1064, 1261, 1304];
                setCookie("AbyssusHelper_CiblesMF", cibles, 1);
                setCookie("AbyssusHelper_Sondes", true, 1);
                setCookie("AbyssusHelper_LigneTableauMF", 1, 1);
                document.location.href="https://s1.abyssus.games/jeu.php?page=ennemies";
            }, false
        );

    } else {
        newDiv.innerHTML += '<font color="white">Multiflood en cours...</font>';

        /*
        try{
            tableau = Array.from(document.getElementById("table").getElementsByTagName("tr"));
        } catch (e){
            setTimeout(test, 200);
        }
        */
        var tmCible = 0;


        tableau = Array.from(getPage(1));
        var contenuPage2 = Array.from(getPage(2));
        contenuPage2.shift();

        tableau.push.apply(tableau, contenuPage2);
        console.log(tableau);
        //enregistre notre TM de départ
        tmMoi = tmJoueur;

        //enregistre cibles à portée ainsi que leur TM de départ
        for (var ligne = 1; ligne < tableau.length; ligne++) {
            if (tableau[ligne].cells[5].innerHTML.indexOf("attaque") != -1) {
                cible = (tableau[ligne].cells[5].innerHTML.split('id=')[1]).split('"')[0];
                if (cibles.indexOf(cible) != -1) {
                    //cible trouvée
                    ciblesAPortee.push(cible);
                    tmciblesAPortee.push(parseInt(tableau[ligne].cells[4].innerHTML.replace(/\s/g, '')));
                    //enregistrer le palier de la cible
                    for (var k=0; k<cibles.length; k++) {
                        if (cibles[k] == cible) {
                            paliersCiblesAPortee.push(paliers[k]);
                            break;
                        }
                    }
                }
            }
        }

        setCookie("AbyssusHelper_tmMoiMF", tmMoi, 1);
        setCookie("AbyssusHelper_tmcibleAPorteeMF", tmciblesAPortee, 1);
        setCookie("AbyssusHelper_cibleAPorteeMF", ciblesAPortee, 1);
        setCookie("AbyssusHelper_paliersAPorteeMF", paliersCiblesAPortee, 1);
        setCookie("AbyssusHelper_CiblesMF", "", -1);
        setCookie("AbyssusHelper_PaliersMF", "", -1);

        //alert(ciblesAPortee);
        if (ciblesAPortee == "") {
            alert("Pas de cibles à portée...");
            alert(cibles);
            document.location.href=("https://s1.abyssus.games/jeu.php?page=listemembre");
        } else if (getCookie("AbyssusHelper_Sondes") == "true") {
            document.location.href=("https://s1.abyssus.games/jeu.php?page=attaque&lieu=3&id=" + ciblesAPortee[0]);
        } else {
            document.location.href=("https://s1.abyssus.games/jeu.php?page=attaque&id=" + ciblesAPortee[0]);
        }
    }
}

//----------------------------------------------------------------------------------------------------------
//MULTIFLOOD CHAINE - LANCER ATTAQUE
//----------------------------------------------------------------------------------------------------------

else if(document.URL.indexOf("attaque") != -1) {
    ciblesAPortee= getCookie("AbyssusHelper_cibleAPorteeMF");
    tmciblesAPortee = getCookie("AbyssusHelper_tmcibleAPorteeMF");
    paliersCiblesAPortee = getCookie("AbyssusHelper_paliersAPorteeMF");
    tmMoi = parseInt(getCookie("AbyssusHelper_tmMoiMF"));

    if (ciblesAPortee != "") {
        //DO STUFF
        newDiv.innerHTML += '<font color="white">Multiflood en cours...</font>';

        var ciblesAPortee_attaque = ciblesAPortee.split(",");
        var tmciblesAPortee_attaque = tmciblesAPortee.split(",");
        var paliersCiblesAPortee_attaque = paliersCiblesAPortee.split(",");

        var prise = multiflood_CalculVague(tmMoi, parseInt(tmciblesAPortee_attaque[0]));
        //Faire en sorte que la verification du respect du palier ne soit activé que lorsque le paramètre n'est pas désactivé
        if (getCookie("AbyssusHelper_paliersPARAM") != "off") {
            if (parseInt(tmciblesAPortee_attaque[0]) - prise < parseInt(paliersCiblesAPortee_attaque[0])) {
                prise = parseInt(tmciblesAPortee_attaque[0]) - parseInt(paliersCiblesAPortee_attaque[0]);
            }
        }

        var priseInit = prise;
        if (prise > 0) {

            //copié-collé de deeper - lancer l'attaque
            var token = $( "input[name='token']").val();
            var lieu = $( "select[name='lieu'] option:selected").val();
            var urlsend = $(location).attr('href');
            //distribue sur d'autres unités que REM si pas assez de REM:
            var sj = $( "input[name='SJ']").val();
            var s = $( "input[name='S']").val();
            var sc = $( "input[name='SC']").val();
            var r = $( "input[name='R']").val();
            var rb = $( "input[name='RB']").val();
            var m = $( "input[name='M']").val();
            var pp = $( "input[name='PP']").val();
            var b = $( "input[name='B']").val();
            var bc = $( "input[name='BC']").val();
            var grb = $( "input[name='GRB']").val();
            var oq = $( "input[name='OQ']").val();
            var oqc = $( "input[name='OQC']").val();
            var k = $( "input[name='K']").val();
            var l = $( "input[name='L']").val();

            var uL = [sj, s, sc, r, rb, m, pp, b, bc, grb, oq, oqc, k, l];
            var fill = false;
            for (var jter=0; jter < uL.length; jter++) {
                var uniteMessy = "";
                if (typeof uL[jter] == 'undefined') {
                    uniteMessy = "0";
                } else {
                    uniteMessy = uL[jter];
                }
                var uniteCleanedUp = parseInt(uniteMessy.replace(/ /g,""));
                if (fill == true) {
                    uL[jter] = 0;
                } else if (uniteCleanedUp >= prise) {
                    fill = true;
                    uL[jter] = prise;
                } else {
                    prise -= uniteCleanedUp;
                }
            }
            if (lieu != 3) {
                $.ajax({
                    dataType: "html",
                    type: 'POST',
                    async:false,
                    url: urlsend,
                    data : {token : token ,lieu : lieu, SJ: uL[0],S : uL[1] , SC : uL[2], R : uL[3], RB : uL[4], M : uL[5], PP : uL[6], B : uL[7], BC : uL[8], GRB : uL[9], OQ : uL[10], OQC : uL[11], K : uL[12], L : uL[13]},
                    contentType: "application/x-www-form-urlencoded; charset=utf-8",
                    success: function(data) {}
                });
                tmciblesAPortee_attaque[0] -= priseInit;
                tmMoi += priseInit;
            } else {
                if (getCookie("AbyssusHelper_tailleSonde") != "") {
                    var tailleSondeatk = parseInt(getCookie("AbyssusHelper_tailleSonde"));
                } else {
                    tailleSondeatk = 323;
                }
                $.ajax({
                    dataType: "html",
                    type: 'POST',
                    async:false,
                    url: urlsend,
                    data : {token : token ,lieu : lieu, SJ: 0, S : tailleSondeatk, SC : 0, R : 0, RB : 0, M : 0, PP : 0, B : 0, BC : 0, GRB : 0, OQ : 0, OQC : 0, K : 0, L : 0},
                    contentType: "application/x-www-form-urlencoded; charset=utf-8",
                    success: function(data) {}
                });
                //passer à la prochaine cible
                ciblesAPortee_attaque.shift();
                tmciblesAPortee_attaque.shift();
                paliersCiblesAPortee_attaque.shift();
            }

        } else {
            //passer à la prochaine cible
            ciblesAPortee_attaque.shift();
            tmciblesAPortee_attaque.shift();
            paliersCiblesAPortee_attaque.shift();
        }
        setCookie("AbyssusHelper_tmMoiMF", tmMoi, 1);
        setCookie("AbyssusHelper_tmcibleAPorteeMF", tmciblesAPortee_attaque, 1);
        setCookie("AbyssusHelper_cibleAPorteeMF", ciblesAPortee_attaque, 1);
        setCookie("AbyssusHelper_paliersAPorteeMF", paliersCiblesAPortee_attaque, 1);

        //continuer l'attaque. Si sonde, continuer à sonder, sinon flood
        if (ciblesAPortee_attaque.length > 0) {
            if (getCookie("AbyssusHelper_Sondes") != "true") {
                document.location.href=("https://s1.abyssus.games/jeu.php?page=attaque&id=" + ciblesAPortee_attaque[0]);
            } else {
                document.location.href=("https://s1.abyssus.games/jeu.php?page=attaque&lieu=3&id=" + ciblesAPortee_attaque[0]);
            }
        } else {
            //Si voulu, lance reste de l'armée en ghost
            if (getCookie("AbyssusHelper_ghostAuto") == "true") {
                //ghostdejalance == true;
                token = $( "input[name='token']").val();
                lieu = $( "select[name='lieu'] option:selected").val();
                urlsend = $(location).attr('href');
                sj = $( "input[name='SJ']").val();
                s = $( "input[name='S']").val();
                sc = $( "input[name='SC']").val();
                r = $( "input[name='R']").val();
                rb = $( "input[name='RB']").val();
                m = $( "input[name='M']").val();
                pp = $( "input[name='PP']").val();
                b = $( "input[name='B']").val();
                bc = $( "input[name='BC']").val();
                grb = $( "input[name='GRB']").val();
                oq = $( "input[name='OQ']").val();
                oqc = $( "input[name='OQC']").val();
                k = $( "input[name='K']").val();
                l = $( "input[name='L']").val();

                $.ajax({
                    dataType: "html",
                    type: 'POST',
                    async:false,
                    url: urlsend,
                    data : {token : token ,lieu : lieu, SJ: sj, S : s, SC : sc, R : r, RB : rb, M : m, PP : pp, B : b, BC : bc, GRB : grb, OQ : oq, OQC : oqc, K : k, L : l},
                    contentType: "application/x-www-form-urlencoded; charset=utf-8",
                    success: function(data) {}
                });
            }
            //FINI, Cleanup
            setCookie("AbyssusHelper_tmMoiMF", "", -1);
            setCookie("AbyssusHelper_tmcibleAPorteeMF", "", -1);
            setCookie("AbyssusHelper_cibleAPorteeMF", "", -1);
            setCookie("AbyssusHelper_Sondes", "", -1);
            setCookie("AbyssusHelper_paliersAPorteeMF", "", -1);
            if (getCookie("AbyssusHelper_postFloodsOFF") != "forcedoff") {
                postFloodsEnCours();
                setCookie("AbyssusHelper_postFloodsOFF", "off", 0.00347);
            }
            document.location.href="https://s1.abyssus.games/jeu.php?page=armee";
        }

    } else {
        newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">AbyssusHelper  v' + version + '</font></span></center>';
        newDiv.innerHTML += '<br/><center><div class="divmf" style=""><button id="floodOpti", class="envoi_mf ui-button ui-corner-all ui-widget">Flood optimisé</button><br><br></div></center>';

        document.getElementById ("floodOpti").addEventListener(
        "click", function() {
            var idCible = document.location.href.split("id=")[1].split("&")[0];
            var idCibleArr = [idCible];
            setCookie("AbyssusHelper_CiblesMF", idCibleArr, 1);
            document.location.href="https://s1.abyssus.games/jeu.php?page=ennemies";
        }, false
        );
    }
}
//----------------------------------------------------------------------------------------------------------
//PAGE ACCUEIL - RAFRAICHIT COOKIES ET INDIQUE TROUPES A QUAI - AFFICHE PARAMETRES - CHANGELOG
//----------------------------------------------------------------------------------------------------------

else if(document.URL.indexOf("?")==-1){
    var couveuse = 0;
    var nurserie = 0;
    var techniquedf = 0;
    var tdpHB = 0;
    var bonusTDP = 0;
    var bonusFDF = 0;
    var bonusCDF = 0;
    var tdp = 0;
    var niveauRR = 0;
    var niveauEcaille = 0;
    var morsure = 0;
    var morsureHB = 0;
    var instinctChasse = 0;
    var lastVersion = getCookie("AbyssusHelper_version").split(".");
    var currentVersion = version.split(".");

    //News customisées
    var news = '<img src="images/news.png" style="float: left; height: 50px;"><img src="images/news.png" style="float: right; height: 50px;">';
    news += '<h2 style="margin: 0px; margin-top: 10px; padding: 0px; font-size: 22px;">DERNIERES NEWS o0o</h2>';
    news += '<br/><br/>';
    news += '<br/><br/>';


    document.getElementById("news").innerHTML = news + document.getElementById("news").innerHTML;




    //Page paramètres
    //alert(getCookie("AbyssusHelper_param"));
    if (getCookie("AbyssusHelper_param") == "true") {
        var contenu = "";
        var ghostAuto = getCookie("AbyssusHelper_ghostAuto");
        var antisondeAuto = getCookie("AbyssusHelper_antisondeAuto");
        var antisondeAutoTaille = getCookie("AbyssusHelper_antisondeAutoTaille");
        var prodInfo = getCookie("AbyssusHelper_prodInfo");
        var horloge = getCookie("AbyssusHelper_horloge");
        var tailleSonde = getCookie("AbyssusHelper_tailleSonde");
        var alerteCA = getCookie("AbyssusHelper_alerteCAOff");
        var paliersPARAM = getCookie("AbyssusHelper_paliersPARAM");
        var compacte = getCookie("AbyssusHelper_restyle");
        var postFloods = getCookie("AbyssusHelper_postFloodsOFF");
        setCookie("AbyssusHelper_param", false, 1);


        newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">Accueil - AbyssusHelperPB - v' + version + '</font></span></center>';
        newDiv.innerHTML += '<br/><hr color="blue">';
        newDiv.innerHTML += '<font color="white">Paramètres \& Outils</font>';
        contenu +='<center><h2>OUTILS : </h2></center>';
        //log TM
        contenu += '<input type="button" name="log TM" id="log" class="ui-button ui-corner-all ui-widget" value="Log TM">';
        //log dons de quete
        contenu += '&nbsp;&nbsp;<input type="button" name="quete" id="quete" class="ui-button ui-corner-all ui-widget" value="Log Quêtes">';
        //Modifier la chaîne
        contenu += '&nbsp;&nbsp;<input type="button" name="modifChaine" id="modifChaine" class="ui-button ui-corner-all ui-widget" value="Modifier Chaîne">';
        //Guide d'utilisation du script
        contenu += '&nbsp;&nbsp;<input type="button" name="manuel" id="manuel" class="ui-button ui-corner-all ui-widget" value="Manuel d\'utilisation">';
        //Démineur !
        contenu += '&nbsp;&nbsp;<input type="button" name="demineur" id="demineur" class="ui-button ui-corner-all ui-widget" value="Démineur">';
        //afficher changelog
        contenu += '&nbsp;&nbsp;<input type="button" name="changelog" id="changelog" class="ui-button ui-corner-all ui-widget" value="Changelog">';


        contenu +='<br/><br/><center><h2>VOS PARAMÈTRES : </h2></center>';
        contenu +='<form>';
        //ghost auto
        contenu +='<input type="checkbox" name="ghost" id="ghost"';
        if (ghostAuto == "true") contenu += 'checked';
        contenu += '/>Ghost automatique en fin de (multi)flood';
        contenu += '<br/>';
        //antisondeAuto
        contenu +='<br/><input type="checkbox" name="antisonde" id="antisonde"';
        if (antisondeAuto == "true") contenu += 'checked';
        contenu += '/>Antisonde automatique à chaque visite de la page armée';
        //PV AntisondeAuto
        if (antisondeAuto == "true") {
            contenu +='<br/><input type="number" name="antisondeTaille" id="antisondeTaille" ';
            if (antisondeAutoTaille != "") {
                contenu += 'value="' + antisondeAutoTaille + '"';
            }
            contenu += '/> Points de vie de l\'antisonde';
        }
        contenu += '<br/>';
        //taille sonde

        contenu +='<br/><input type="number" name="sondeTaille" id="sondeTaille" ';
            if (tailleSonde != "") {
                contenu += 'value="' + tailleSonde + '"';
            }
            contenu += '/> Nombre de petites Roussettes par sonde';
        contenu += '<br/>';

        //détails prod
        contenu +='<br/><input type="checkbox" name="prod" id="prod"';
        if (prodInfo == "true") contenu += 'checked';
        contenu += '/>Stats des unités avec prise en compte des niveaux de Morsure et Ecaille sur la page production d\'unités';
        contenu += '<br/>';
        //horloge
        contenu +='<br/><input type="checkbox" name="horlogeAH" id="horlogeAH"';
        if (horloge == "true") contenu += 'checked';
        contenu += '/>Horloge';
        contenu += '<br/>';
        //alerteCA
        contenu +='<br/><input type="checkbox" name="alerteCA" id="alerteCA"';
        if (alerteCA == "off") contenu += 'checked';
        contenu += '/>Désactiver les notifications Chat Alliance';
        contenu += '<br/>';
        //paliers
        contenu +='<br/><input type="checkbox" name="paliers" id="paliers"';
        if (paliersPARAM == "off") contenu += 'checked';
        contenu += '/>Désactiver le respect des paliers TM par le MF (uniquement pour des situations EXCEPTIONNELLES)';
        contenu += '<br/>';
        //post floods
        contenu +='<br/><input type="checkbox" name="postfloods" id="postfloods"';
        if (postFloods == "forcedoff") contenu += 'checked';
        contenu += '/>Désactiver le post automatique de floods sur le forum (ATTENTION : Cette préférence n\'est pas raffraîchie automatiquement, elle expire tous les 7 jours)';
        contenu += '<br/>';
        //version compacte
        contenu +='<br/><input type="checkbox" name="compacte" id="compacte"';
        if (compacte == "on") contenu += 'checked';
        contenu += '/>Afficher le jeu de manière compacte (EXPERIMENTAL)';
        contenu += '<br/>';
        contenu += '</form>';

        for (var i = 0; i < document.getElementById("bloc").children.length; i++){
            document.getElementById("bloc").children[i].style.display = "none";
        };


        document.getElementById("bloc").innerHTML += contenu;

        //active inputs
/*
        document.getElementById('changelog').addEventListener('click', (event) => {
            document.getElementById("bloc").innerHTML = changelog;
        });
        document.getElementById('log').addEventListener('click', (event) => {
            document.getElementById("bloc").innerHTML = '<iframe src="http://askigame.000webhostapp.com/Abyssus/LogTMWar/AffTM.php" style="border:0; height:1500px; width:100%">></iframe>';
        });
        document.getElementById('quete').addEventListener('click', (event) => {
            document.getElementById("bloc").innerHTML = '<iframe src="https://askigame.000webhostapp.com/Abyssus/QueteAlly/" style="border:0; height:1500px; width:100%">></iframe>';
        });
        document.getElementById('modifChaine').addEventListener('click', (event) => {
            document.getElementById("bloc").innerHTML = '<iframe src="https://askigame.000webhostapp.com/Abyssus/ModifierChaine/" style="border:0; height:1500px; width:100%">></iframe>';
        });
        document.getElementById('manuel').addEventListener('click', (event) => {
            document.getElementById("bloc").innerHTML = '<iframe src="https://askigame.000webhostapp.com/Abyssus/AbyssusHelper/" style="border:0; height:1500px; width:100%">></iframe>';
        });
        document.getElementById('demineur').addEventListener('click', (event) => {
            document.getElementById("bloc").innerHTML = '<iframe src="https://askigame.000webhostapp.com/Demineur/index.php" style="border:0; height:1500px; width:100%">></iframe>';
        });
*/
        document.getElementById('ghost').addEventListener('change', (event) => {
            if (event.target.checked) {
                setCookie("AbyssusHelper_ghostAuto", true, 7);
            } else {
                setCookie("AbyssusHelper_ghostAuto", false, 7);
            }
        });
        document.getElementById('antisonde').addEventListener('change', (event) => {
            if (event.target.checked) {
                setCookie("AbyssusHelper_antisondeAuto", true, 7);
                setCookie("AbyssusHelper_param", true, 1);
                document.location.href="https://s1.abyssus.games/jeu.php";
            } else {
                setCookie("AbyssusHelper_antisondeAuto", false, 7);
                setCookie("AbyssusHelper_param", true, 1);
                document.location.href="https://s1.abyssus.games/jeu.php";
            }
        });
        try {
        document.getElementById('antisondeTaille').addEventListener('change', (event) => {
            setCookie("AbyssusHelper_antisondeAutoTaille", event.target.value, 7);
        });
        } catch (exception) {}

        document.getElementById('sondeTaille').addEventListener('change', (event) => {
            setCookie("AbyssusHelper_tailleSonde", event.target.value, 7);
        });

        document.getElementById('prod').addEventListener('change', (event) => {
            if (event.target.checked) {
                setCookie("AbyssusHelper_prodInfo", true, 7);
            } else {
                setCookie("AbyssusHelper_prodInfo", false, 7);
            }
        });
        document.getElementById('horlogeAH').addEventListener('change', (event) => {
            if (event.target.checked) {
                setCookie("AbyssusHelper_horloge", true, 7);
            } else {
                setCookie("AbyssusHelper_horloge", false, 7);
            }
        });
        document.getElementById('alerteCA').addEventListener('change', (event) => {
            if (event.target.checked) {
                setCookie("AbyssusHelper_alerteCAOff", "off", 7);
            } else {
                setCookie("AbyssusHelper_alerteCAOff", "", 7);
            }
        });
        document.getElementById('paliers').addEventListener('change', (event) => {
            if (event.target.checked) {
                setCookie("AbyssusHelper_paliersPARAM", "off", 7);
            } else {
                setCookie("AbyssusHelper_paliersPARAM", "", 7);
            }
        });
        document.getElementById('postfloods').addEventListener('change', (event) => {
            if (event.target.checked) {
                setCookie("AbyssusHelper_postFloodsOFF", "forcedoff", 7);
            } else {
                setCookie("AbyssusHelper_postFloodsOFF", "", 7);
            }
        });
        document.getElementById('compacte').addEventListener('change', (event) => {
            if (event.target.checked) {
                setCookie("AbyssusHelper_restyle", "on", 7);
            } else {
                setCookie("AbyssusHelper_restyle", "", 7);
            }
        });

    } else if (parseInt(lastVersion[0]) < parseInt(currentVersion[0]) || parseInt(lastVersion[1]) < parseInt(currentVersion[1]) || parseInt(lastVersion[2]) < parseInt(currentVersion[2])) {
        //changelog
        setCookie("AbyssusHelper_version", version, 7);
        newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">Accueil - AbyssusHelperPB - v' + version + '</font></span></center>';
        newDiv.innerHTML += '<br/><hr color="blue">';
        newDiv.innerHTML += '<font color="white">Changelog - liste des nouveautés</font>';

        contenu ='<center><h2>AbyssusHelper a été mis à jour... Quoi de neuf ?</h2></center>';
        contenu += changelog;
        document.getElementById("recapitulatif").innerHTML = contenu;

    } else {
        //Rafraichit les cookies de paramètres et préférences
        if (getCookie("AbyssusHelper_ghostAuto") != "") {
            setCookie("AbyssusHelper_ghostAuto", getCookie("AbyssusHelper_ghostAuto"), 7);
        }
        if (getCookie("AbyssusHelper_antisondeAuto") != "") {
            setCookie("AbyssusHelper_antisondeAuto", getCookie("AbyssusHelper_antisondeAuto"), 7);
        }
        if (getCookie("AbyssusHelper_antisondeAutoTaille") != "") {
            setCookie("AbyssusHelper_antisondeAutoTaille", getCookie("AbyssusHelper_antisondeAutoTaille"), 7);
        }
        if (getCookie("AbyssusHelper_horloge") != "") {
            setCookie("AbyssusHelper_horloge", getCookie("AbyssusHelper_horloge"), 7);
        }
        if (getCookie("AbyssusHelper_tailleSonde") != "") {
            setCookie("AbyssusHelper_tailleSonde", getCookie("AbyssusHelper_tailleSonde"), 7);
        }
        if (getCookie("AbyssusHelper_prodInfo") != "") {
            setCookie("AbyssusHelper_prodInfo", getCookie("AbyssusHelper_prodInfo"), 7);
        }
        if (getCookie("AbyssusHelper_nbVague") != "") {
            setCookie("AbyssusHelper_nbVague", getCookie("AbyssusHelper_nbVague"), 7);
        }
        if (getCookie("AbyssusHelper_tmVague") != "") {
            setCookie("AbyssusHelper_tmVague", getCookie("AbyssusHelper_tmVague"), 7);
        }
        if (getCookie("AbyssusHelper_alerteCAOff" != "")) {
            setCookie("AbyssusHelper_alerteCAOff", getCookie("AbyssusHelper_alerteCAOff"), 7);
        }
        if (getCookie("AbyssusHelper_paliersPARAM" != "")) {
            setCookie("AbyssusHelper_paliersPARAM", getCookie("AbyssusHelper_paliersPARAM"), 7);
        }
        if (getCookie("AbyssusHelper_restyle" != "")) {
            setCookie("AbyssusHelper_restyle", getCookie("AbyssusHelper_restyle"), 7);
        }
        var statsDiv = document.getElementById("recapitulatif");

        var bonus = statsDiv.getElementsByTagName('center')[1].innerHTML;
        bonusTDP = parseInt(bonus.split("+")[1].split(" ")[0]);
        bonusFDF = parseInt(bonus.split("+")[2].split(" ")[0]);
        bonusCDF = parseInt(bonus.split("+")[3].split(" ")[0]);

        //enregistrement des niveaux.
        for (let i=0; i<12; i++) {
            if (statsDiv.getElementsByTagName('tr')[i].cells[0].innerHTML.indexOf("Couveuse") != -1) {
                if (statsDiv.getElementsByTagName('tr')[i].cells[1].innerHTML.indexOf("+") != -1) {
                    var temp = statsDiv.getElementsByTagName('tr')[i].cells[1].innerHTML.split("+");
                    couveuse = parseInt(temp[0]);

                } else {
                    couveuse = parseInt(statsDiv.getElementsByTagName('tr')[i].cells[1].innerHTML);
                }
            }
            if (statsDiv.getElementsByTagName('tr')[i].cells[2].innerHTML.indexOf("Instinct de chasse") != -1) {
                if (statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML.indexOf("+") != -1) {
                    temp = statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML.split("+");
                    instinctChasse = parseInt(temp[0]);

                } else {
                    instinctChasse = parseInt(statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML);
                }
            }
            if (statsDiv.getElementsByTagName('tr')[i].cells[0].innerHTML.indexOf("Nurserie") != -1) {
                if (statsDiv.getElementsByTagName('tr')[i].cells[1].innerHTML.indexOf("+") != -1) {
                    temp = statsDiv.getElementsByTagName('tr')[i].cells[1].innerHTML.split("+");
                    nurserie = parseInt(temp[0]);

                } else {
                    nurserie = parseInt(statsDiv.getElementsByTagName('tr')[i].cells[1].innerHTML);
                }
            }
            if (statsDiv.getElementsByTagName('tr')[i].cells[2].innerHTML.indexOf("Technique") != -1) {
                if (statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML.indexOf("+") != -1) {
                    temp = statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML.split("+");
                    techniquedf = parseInt(temp[0]);

                } else {
                    techniquedf = parseInt(statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML);
                }
            }
            if (statsDiv.getElementsByTagName('tr')[i].cells[2].innerHTML.indexOf("caille") != -1) {
                if (statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML.indexOf("+") != -1) {
                    temp = statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML.split("+");
                    niveauEcaille = parseInt(temp[0]);

                } else {
                    niveauEcaille = parseInt(statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML);
                }
            }
            if (statsDiv.getElementsByTagName('tr')[i].cells[2].innerHTML.indexOf("Morsure") != -1) {
                if (statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML.indexOf("+") != -1) {
                    temp = statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML.split("+");
                    morsureHB = parseInt(temp[0]);

                } else {
                    morsureHB = parseInt(statsDiv.getElementsByTagName('tr')[i].cells[3].innerHTML);
                }
            }
            if (statsDiv.getElementsByTagName('tr')[i].cells[0].innerHTML.indexOf("rocheux") != -1) {
                if (statsDiv.getElementsByTagName('tr')[i].cells[1].innerHTML.indexOf("+") != -1) {
                    temp = statsDiv.getElementsByTagName('tr')[i].cells[1].innerHTML.split("+");
                    niveauRR = parseInt(temp[0]);

                } else {
                    niveauRR = parseInt(statsDiv.getElementsByTagName('tr')[i].cells[1].innerHTML);
                }
            }
        }

        tdpHB = couveuse + nurserie + techniquedf;
        tdp = tdpHB + bonusTDP;
        morsure = morsureHB + bonusFDF;

        setCookie("AbyssusHelper_morsureHB", morsureHB, 7);
        setCookie("AbyssusHelper_morsure", morsure, 7);
        setCookie("AbyssusHelper_bonusCDF", bonusCDF, 7);
        setCookie("AbyssusHelper_tdpHB", tdpHB, 7);
        setCookie("AbyssusHelper_tdp", tdp, 7);
        setCookie("AbyssusHelper_niveauRR", niveauRR, 7);
        setCookie("AbyssusHelper_niveauEcaille", niveauEcaille, 7);
        setCookie("AbyssusHelper_instinctChasse", instinctChasse, 7);
        setCookie("AbyssusHelper_version", version, 7);

    //Troupes qui dorment
    function analyseTexte(texte) { //Analyse le texte "Troupes en attaque..."
        var CDFreturn = 0;
        texte = texte.replace(/\n/g, " ");
        texte = texte.replace(/,/g, "");
        texte = texte.replace(/[\D?\d?]Troupes en attaque :\s/, "");

        //Troupe
        texte = texte.replace(/Remora/, "Rem");
        texte = texte.replace(/Petite Roussette/, "PR");
        texte = texte.replace(/Roussette/, "R");
        texte = texte.replace(/Grande Roussette/, "GR");
        texte = texte.replace(/Requin P[ée]lerin/, "RP");
        texte = texte.replace(/Mur[èe]ne/, "M");
        texte = texte.replace(/Mur[èe]ne Electrique/, "ME");
        texte = texte.replace(/Requin Marteau/, "RM");
        texte = texte.replace(/Requin L[ée]zard/, "RL");
        texte = texte.replace(/Requin L[ée]zard V[ée]t[ée]ran/, "RLV");
        texte = texte.replace(/Requin Blanc/, "RB");
        texte = texte.replace(/Grand Requin Blanc/, "GRB");
        texte = texte.replace(/Kraken/, "K");
        texte = texte.replace(/Kraken Immortel/, "KI");



        var ArrayTexte = texte.split(/\s+/);


        getNbparUnite("Rem");
        getNbparUnite("PR");
        getNbparUnite("R");
        getNbparUnite("GR");
        getNbparUnite("RP");
        getNbparUnite("M");
        getNbparUnite("ME");
        getNbparUnite("RM");
        getNbparUnite("RL");
        getNbparUnite("RLV");
        getNbparUnite("RB");
        getNbparUnite("GRB");
        getNbparUnite("K");
        getNbparUnite("KI");

    function getNbparUnite(Unite) { //Récupère le nombre associé à l'unité (en paramètre)
            var plc = ArrayTexte.indexOf(Unite);
            var NbTroupe = "";
            if (plc != -1) {
                var OK = true;
                while (OK) {
                    plc--;
                    if (/\d{1,3}/.test(ArrayTexte[plc])) {
                        NbTroupe = ArrayTexte[plc] + NbTroupe;
                    } else {
                        OK = false;
                    }
                }
                CDFreturn += parseInt(NbTroupe);
            }
    }
        return CDFreturn;
    }


    //Nombre de troupe au total
    var CDF = 0;
    for(var a=0; a<14; a++){
        CDF += parseInt(statsDiv.querySelectorAll("table")[1].children[0].children[a].children[1].textContent.replace(/ /g,""));

    };
    //Nombre de troupe en mouvement (dans des attaques)
    var CDFenMVT = 0;
    for (var z=0; z< document.querySelectorAll("font i").length; z++){
        if (document.querySelectorAll("font i")[z].childNodes[2].textContent != ""){ //Si il n'y a pas le mot "Annuler"
        CDFenMVT += analyseTexte(document.querySelectorAll("font i")[z].childNodes[2].textContent);
        } else { //Si il y a le mot "Annuler"
            CDFenMVT += analyseTexte(document.querySelectorAll("font i")[z].childNodes[3].textContent);
        }
    }

    var CDFdif = CDF - CDFenMVT; // Nombre de troupes stationnées.

    //Ajout du texte sur la page.
    var nombreTroupes = '<br><strong>Nombre de troupes stationnées chez vous: <a href="https://s1.abyssus.games/jeu.php?page=armee">' + CDFdif.toLocaleString(undefined,{ maximumFractionDigits: 0 }) + '</a></strong>';


    statsDiv.getElementsByTagName('center')[1].innerHTML = nombreTroupes + '<br><br>' + liensUtiles + '<br><br>' + statsDiv.getElementsByTagName('center')[1].innerHTML;


    //DEBUG
    //alert(tdpHB);
    //alert(tdp);
    //alert(bonusFDF);
    //alert(bonusCDF);
	newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">Accueil - AbyssusHelperPB - v' + version + '</font></span></center>';
    newDiv.innerHTML += '<br/><hr color="blue">';
    newDiv.innerHTML += '<font color="white"> Les cookies ont bien été mis à jour</font>';
    newDiv.innerHTML += '<br/><hr color="blue">';
    newDiv.innerHTML += '<br/><center><div class="divmf" style=""><button id="parametresAH", class="envoi_mf ui-button ui-corner-all ui-widget">Paramètres & Outils</button><br><br></div></center>';



    //activer le bouton
    document.getElementById ("parametresAH").addEventListener(
        "click", function() {
            setCookie("AbyssusHelper_param", true, 1);
            document.location.href="https://s1.abyssus.games/jeu.php";
        }, false
    );
    }
}



//----------------------------------------------------------------------------------------------------------
//Classement Alliances
//----------------------------------------------------------------------------------------------------------
else if (document.URL.indexOf("classementalliance") != -1) {

}
//----------------------------------------------------------------------------------------------------------
//Classement Joueurs
//----------------------------------------------------------------------------------------------------------
else if ( document.URL.indexOf("classementjoueur") != -1 ){

}
//----------------------------------------------------------------------------------------------------------
//Chat Général
//----------------------------------------------------------------------------------------------------------
else if (document.URL.indexOf("cgnew") != -1){

}


//----------------------------------------------------------------------------------------------------------
//Chat Alliance
//----------------------------------------------------------------------------------------------------------
else if (document.URL.indexOf("page=chatalliance") != -1){


}

//----------------------------------------------------------------------------------------------------------
//ARMEE
//----------------------------------------------------------------------------------------------------------
else if(document.URL.indexOf("armee")!=-1) {
	newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">Armée</font></span></center>';
    newDiv.innerHTML += '<br/><hr color="blue">';
    if (getCookie("AbyssusHelper_antisondeAuto") == "true") {
        var indicateur = 'activée</font>';
    } else {
        indicateur = 'désactivée</font>';
    }

    newDiv.innerHTML += '<br/><font color="white">Antisonde automatique : <strong>' + indicateur + '</strong></font>';
    if (getCookie("AbyssusHelper_antisondeAuto") == "true") {
        //place l'antisonde !

        var taille_antisonde = parseInt(getCookie("AbyssusHelper_antisondeAutoTaille").replace(/ /g,""));
        niveauRR = parseInt(getCookie("AbyssusHelper_niveauRR"));
        niveauEcaille = parseInt(getCookie("AbyssusHelper_niveauEcaille"));
        var unitésEnTM = parseInt(document.getElementById("bloc").getElementsByTagName("table")[0].getElementsByTagName("tr")[15].cells[1].innerHTML.replace(/ /g,""));
        var vieEnRR = parseInt(document.getElementById("bloc").getElementsByTagName("table")[0].getElementsByTagName("tr")[15].cells[2].innerHTML.replace(/ /g,""));

        var sj_bdc = parseInt(document.getElementById("bloc").getElementsByTagName("table")[0].innerHTML.split('data-type="SJ_loge" data-nb="')[1].split('" id="SJ"')[0]);
        var s_bdc = parseInt(document.getElementById("bloc").getElementsByTagName("table")[0].innerHTML.split('data-type="S_loge" data-nb="')[1].split('" id="S"')[0]);
        var rb_bdc = parseInt(document.getElementById("bloc").getElementsByTagName("table")[0].innerHTML.split('data-type="RB_loge" data-nb="')[1].split('" id="RB"')[0]);
        var m_bdc = parseInt(document.getElementById("bloc").getElementsByTagName("table")[0].innerHTML.split('data-type="M_loge" data-nb="')[1].split('" id="M"')[0]);

        var token_bdc = document.getElementById("bloc").innerHTML.split('href="jeu.php?page=armee&amp;action=barriere&amp;token=')[1].split('"')[0];

        if(getCookie("AbyssusHelper_antisondeAutoStage") == "") {
            setCookie("AbyssusHelper_antisondeAutoStage", 0, 1);
            document.location.href="https://s1.abyssus.games/jeu.php?page=armee&action=barriere&token=" + token_bdc;
        } else if (unitésEnTM == 0) {
            if (sj_bdc != 0) {
                $.post('ajax/deplacement_armee.php', {type:"SJ", nb:1}, function(data){
                    document.location.href='jeu.php?page=armee';
                });
            } else if (s_bdc != 0) {
                $.post('ajax/deplacement_armee.php', {type:"S", nb:1}, function(data){
                    document.location.href='jeu.php?page=armee';
                });
            } else if (rb_bdc != 0) {
                $.post('ajax/deplacement_armee.php', {type:"SC", nb:1}, function(data){
                    document.location.href='jeu.php?page=armee';
                });
            } else if (m_bdc != 0) {
                $.post('ajax/deplacement_armee.php', {type:"R", nb:1}, function(data){
                    document.location.href='jeu.php?page=armee';
                });
            }
        } else if (vieEnRR < taille_antisonde && getCookie("AbyssusHelper_antisondeAutoStage") != "-1") {
                //il reste de l'antisonde à placer
            if (s_bdc != 0 && parseInt(getCookie("AbyssusHelper_antisondeAutoStage")) < 1) {
                var vie_uniteHB = 70;
                var vie_necessaire = taille_antisonde;
                var troupes_necessaires = Math.ceil(vie_necessaire / (vie_uniteHB*(1+0.1+3*0.05+(niveauEcaille/10))));
                var troupes_bougees = Math.min(troupes_necessaires, s_bdc);
                $.post('ajax/deplacement_armee.php', {type:"S_dome", nb:troupes_bougees}, function(data){
                    setCookie("AbyssusHelper_antisondeAutoStage", 1, 1);
                    document.location.href='jeu.php?page=armee';
                });
            } else if (rb_bdc != 0 && parseInt(getCookie("AbyssusHelper_antisondeAutoStage")) < 2) {
                vie_uniteHB = 1250;
                vie_necessaire = taille_antisonde - vieEnRR;
                troupes_necessaires = Math.ceil(vie_necessaire / (vie_uniteHB*(1+0.1+3*0.05+(niveauEcaille/10))));
                troupes_bougees = Math.min(troupes_necessaires, rb_bdc);
                $.post('ajax/deplacement_armee.php', {type:"RB_dome", nb:troupes_bougees}, function(data){
                    setCookie("AbyssusHelper_antisondeAutoStage", 2, 1);
                    document.location.href='jeu.php?page=armee';
                });
            } else if (m_bdc != 0 && parseInt(getCookie("AbyssusHelper_antisondeAutoStage")) < 3) {
                vie_uniteHB = 20;
                vie_necessaire = taille_antisonde - vieEnRR;
                troupes_necessaires = Math.ceil(vie_necessaire / (vie_uniteHB*(1+0.1+3*0.05+(niveauEcaille/10))));
                troupes_bougees = Math.min(troupes_necessaires, m_bdc);
                $.post('ajax/deplacement_armee.php', {type:"M_dome", nb:troupes_bougees}, function(data){
                    setCookie("AbyssusHelper_antisondeAutoStage", 3, 1);
                    document.location.href='jeu.php?page=armee';
                });
            } else if (sj_bdc != 0 && parseInt(getCookie("AbyssusHelper_antisondeAutoStage")) < 4) {
                vie_uniteHB = 2;
                vie_necessaire = taille_antisonde - vieEnRR;
                troupes_necessaires = Math.ceil(vie_necessaire / (vie_uniteHB*(1+0.1+3*0.05+(niveauEcaille/10))));
                troupes_bougees = Math.min(troupes_necessaires, sj_bdc);
                $.post('ajax/deplacement_armee.php', {type:"SJ_dome", nb:troupes_bougees}, function(data){
                    setCookie("AbyssusHelper_antisondeAutoStage", 4, 1);
                    document.location.href='jeu.php?page=armee';
                });
            } else {
                setCookie("AbyssusHelper_antisondeAutoStage", -1, 1);
                location.reload();
            }
        } else {
            setCookie("AbyssusHelper_antisondeAutoStage", "", 1);
        }
    }
}


//----------------------------------------------------------------------------------------------------------
//Exploration
//----------------------------------------------------------------------------------------------------------
else if(document.URL.indexOf("page=chasse")!=-1) {
    newDiv.innerHTML = '<center><span style="border:1.5px solid white; background:#06C;"><font color="white">Exploration</font></span></center>';
    newDiv.innerHTML += '<hr color="blue">';
    var nbvague = 1;
    if (getCookie("AbyssusHelper_nbVague") != "") nbvague = parseInt(getCookie("AbyssusHelper_nbVague"));
    var tmvague = 1;
    if (getCookie("AbyssusHelper_tmVague") != "") tmvague = parseInt(getCookie("AbyssusHelper_tmVague"));
    newDiv.innerHTML += '<input type="button" class="button ui-button ui-corner-all ui-widget" id="suggestion" value="Suggérer chasse"><br/><br/>';
    newDiv.innerHTML += '<input type="number" id="vagues" value="' + nbvague + '"> <font color="white">vagues</font><br/>';
    newDiv.innerHTML += '<input type="number" id="tmvague" value="' + tmvague + '"> <font color="white">TM par vague</font><br/><br/>';
    newDiv.innerHTML += '<input type="button" class="button ui-button ui-corner-all ui-widget" id="chasseAuto" value="Lancer chasse automatique"><br/>';


    //suggérer chasse
    document.getElementById("suggestion").addEventListener(
        "click", function() {
            //max de vagues
            //document.getElementById("vagues").value = parseInt(getCookie("AbyssusHelper_instinctChasse"));
            var nbvague = parseInt(document.getElementById("vagues").value);
            //calculer FDF par vague
            var fdf = 0;
            var morsure = getCookie("AbyssusHelper_morsure");
            var rem = Math.floor($('#SJ').val().replace(/ /g,"")/nbvague);
            var pr = Math.floor($('#S').val().replace(/ /g,"")/nbvague);
            var r = Math.floor($('#SC').val().replace(/ /g,"")/nbvague);
            var gr = Math.floor($('#R').val().replace(/ /g,"")/nbvague);
            var rp = Math.floor($('#RB').val().replace(/ /g,"")/nbvague);
            var m = Math.floor($('#M').val().replace(/ /g,"")/nbvague);
            var me = Math.floor($('#PP').val().replace(/ /g,"")/nbvague);
            var rm = Math.floor($('#B').val().replace(/ /g,"")/nbvague);
            var rl = Math.floor($('#BC').val().replace(/ /g,"")/nbvague);
            var rlv = Math.floor($('#GRB').val().replace(/ /g,"")/nbvague);
            var rb = Math.floor($('#OQ').val().replace(/ /g,"")/nbvague);
            var grb = Math.floor($('#OQC').val().replace(/ /g,"")/nbvague);
            var k = Math.floor($('#K').val().replace(/ /g,"")/nbvague);
            var ki = Math.floor($('#L').val().replace(/ /g,"")/nbvague);
            fdf = (1+morsure/10)*(rem + pr*60 + r*100 + gr*150 + rp*150 + m*2 + me*12 + rm*2000 + rl*100 + rlv*200 + rb*1100 + grb*2500 + k*100000 + ki*1);
            //alert(fdf);
            //alert(tmJoueur);
            document.getElementById("tmvague").value = Math.floor((fdf/(10.959*Math.pow(tmJoueur,0.1725))*(1-2/100))/10000)*10000;
        }, false
    );

    //activer le bouton
    document.getElementById("chasseAuto").addEventListener(
        "click", function() {
            var recap;
            var nbvague = parseInt(document.getElementById("vagues").value);
            setCookie("AbyssusHelper_nbVague", nbvague, 7);
            var tmvague = parseInt(document.getElementById("tmvague").value);
            setCookie("AbyssusHelper_tmVague", tmvague, 7);
            var rem = Math.floor($('#SJ').val().replace(/ /g,"")/nbvague);
            var pr = Math.floor($('#S').val().replace(/ /g,"")/nbvague);
            var r = Math.floor($('#SC').val().replace(/ /g,"")/nbvague);
            var gr = Math.floor($('#R').val().replace(/ /g,"")/nbvague);
            var rp = Math.floor($('#RB').val().replace(/ /g,"")/nbvague);
            var m = Math.floor($('#M').val().replace(/ /g,"")/nbvague);
            var me = Math.floor($('#PP').val().replace(/ /g,"")/nbvague);
            var rm = Math.floor($('#B').val().replace(/ /g,"")/nbvague);
            var rl = Math.floor($('#BC').val().replace(/ /g,"")/nbvague);
            var rlv = Math.floor($('#GRB').val().replace(/ /g,"")/nbvague);
            var rb = Math.floor($('#OQ').val().replace(/ /g,"")/nbvague);
            var grb = Math.floor($('#OQC').val().replace(/ /g,"")/nbvague);
            var k = Math.floor($('#K').val().replace(/ /g,"")/nbvague);
            var ki = Math.floor($('#L').val().replace(/ /g,"")/nbvague);
            var token = $( "input[name='token']").val();
            var urlsend = $(location).attr('href');

            for (var i=1; i<parseInt(nbvague)+1;i++) {
                $.ajax({
                    dataType: "html",
                    type: 'POST',
                    async:false,
                    url: urlsend,
                    data : {token:token,tm:tmvague,SJ:rem,S:pr,SC:r,R:gr,RB:rp,M:m,PP:me,B:rm,BC:rl,GRB:rlv,OQ:rb,OQC:grb,K:k,L:ki,explorer:"Explorer"},
                    contentType: "application/x-www-form-urlencoded; charset=utf-8",
                    success: function(data) {
                        recap = i;
                    }
                });
            }
            //alert(recap + ' vagues lancées, vérifiez bien leur contenu !');
            document.location.href="https://s1.abyssus.games/jeu.php?page=chasse";
        }, false
    );
}

//----------------------------------------------------------------------------------------------------------
//Construction
//----------------------------------------------------------------------------------------------------------
else if(document.URL.indexOf("construction")!=-1){
    let tableau_batiment = document.querySelectorAll(".petith2");

    function extraitNombre(str){
        return Number(str.replace(/[^\d]/g, ""))
    }

    function cherche_niv_Batiment(niv){
        let niveau = "";
        for(let i = 0; i<=niv;i++){
            niveau = tableau_batiment[i].childNodes[1].innerHTML;
        }
        niveau = extraitNombre(niveau)
        niveau = parseInt(niveau);
        return niveau;
    }

    //production ferme
    let production_ferme = 200;

    function calc_prod_ferme(niveau_ferme){
        for(let i = 1; i<=niveau_ferme;i++){
            production_ferme =production_ferme + production_ferme*(70/100);
        }
        return Math.ceil(production_ferme);
    }
    //prod coquillages et crustacés

     let production_crustace = 40;

     function calc_prod_crustace(niveau_crustace){
        for(let i = 1; i<=niveau_crustace;i++){
            production_crustace =production_crustace + production_crustace*(70/100);
        }
        return Math.ceil(production_crustace);
    }

        //production coraux

    let production_coraux = 80;

    function calc_prod_coraux(niveau_coraux){
        for(let i = 1; i<=niveau_coraux;i++){
            production_coraux =production_coraux + production_coraux*(70/100);
        }
        return Math.ceil(production_coraux);
    }
    let niv_ferme = cherche_niv_Batiment(2);
    let prod_ferme = calc_prod_ferme(niv_ferme);
    let prod_ferme_jour = prod_ferme*24;

    let niv_coraux = cherche_niv_Batiment(0);
    let prod_coraux = calc_prod_coraux(niv_coraux);
    let prod_coraux_jour = prod_coraux*24;

    let niv_crust = cherche_niv_Batiment(1);
    let prod_crust = calc_prod_crustace(niv_crust);
    let prod_crust_jour =prod_crust*24;
    var international=new Intl.NumberFormat();

	newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">Construction</font></span></center>';
    newDiv.innerHTML += '<hr color="blue">';
    newDiv.innerHTML += '<center><font color="white">Production Journalière : </font></center>';
    newDiv.innerHTML += '<img src="images/corail.png" width="25" style="vertical-align:bottom;" alt="coraux">';
    newDiv.innerHTML += '<font color="white">  '+international.format(prod_coraux_jour)+'</font></br>';
    newDiv.innerHTML += '<img src="images/coquillage.png" alt="coquillage" height="25" style="vertical-align:bottom;">';
    newDiv.innerHTML += '<font color="white">  '+international.format(prod_crust_jour)+'</font></br>';
    newDiv.innerHTML += '<img src="images/nourriture.png" height="25" alt="nourriture" style="vertical-align:bottom;">';
    newDiv.innerHTML += '<font color="white">  '+international.format(prod_ferme_jour)+'</font></br>';
}

//----------------------------------------------------------------------------------------------------------
//Production D'Unités
//----------------------------------------------------------------------------------------------------------
else if(document.URL.indexOf("productionunite")!=-1){
    var pu_tdpHB = getCookie("AbyssusHelper_tdpHB");
    var pu_tdp = getCookie("AbyssusHelper_tdp");
    var pu_morsureHB = getCookie("AbyssusHelper_morsureHB");
    var pu_morsure =getCookie("AbyssusHelper_morsure");
    var pu_ecaille = getCookie("AbyssusHelper_niveauEcaille")

	newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">Production d&apos;unités</font></span></center>';
    newDiv.innerHTML += '<br/><hr color="blue">';

/*    newDiv.innerHTML += '<font color="white">Votre TDP : </font><font color="white">' + pu_tdp + ' (' + pu_tdpHB + 'HB)</font><br/>';
    newDiv.innerHTML += '<font color="white">Morsure&ensp;&nbsp;&nbsp; : </font><font color="white">' + pu_morsure + ' (' + pu_morsureHB + 'HB)</font> </br>';
    newDiv.innerHTML += '<font color="white">Ecaille : </font><font color="white">' + pu_ecaille + '</font> </br>';*/
    newDiv.innerHTML += '<table><tbody><tr><td><font color="white">TDP</font></td><td><font color="white">' + pu_tdp + ' (' + pu_tdpHB + 'HB)</font></td></tr><tr><td><font color="white">Morsure</font></td><td><font color="white">' + pu_morsure + ' (' + pu_morsureHB + 'HB)</font></td></tr><tr><td><font color="white">Ecaille</font></td><td><font color="white">' + pu_ecaille + ' </font></td></tr></tbody></table>';

    if(getCookie("AbyssusHelper_prodInfo") == "true") {
        $('.nb').keyup(function(){

            var vie = parseInt($(this).parent().parent().parent().find('.petittexte:eq(1)').text().replace(/\s/g, ''));
            var fdf = parseInt($(this).parent().parent().parent().find('.petittexte:eq(2)').text().replace(/\s/g, ''));
            var fdd = parseInt($(this).parent().parent().parent().find('.petittexte:eq(3)').text().replace(/\s/g, ''));

            $(this).parent().parent().parent().find('.petittexte:eq(1)').text(vie.toLocaleString(undefined,{ maximumFractionDigits: 0 }) + ' (' + (vie*(1+pu_ecaille/10)).toLocaleString(undefined,{ maximumFractionDigits: 0 })+')');
            $(this).parent().parent().parent().find('.petittexte:eq(2)').text(fdf.toLocaleString(undefined,{ maximumFractionDigits: 0 }) + ' (' + (fdf*(1+pu_morsure/10)).toLocaleString(undefined,{ maximumFractionDigits: 0 })+')');
            $(this).parent().parent().parent().find('.petittexte:eq(3)').text(fdd.toLocaleString(undefined,{ maximumFractionDigits: 0 }) + ' (' + (fdd*(1+pu_morsure/10)).toLocaleString(undefined,{ maximumFractionDigits: 0 })+')');

        });
    }

}
//----------------------------------------------------------------------------------------------------------
//Laboratoire
//----------------------------------------------------------------------------------------------------------

else if(document.URL.indexOf("laboratoire")!=-1){

	newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">Laboratoire</font></span></center>';

}

//----------------------------------------------------------------------------------------------------------
//Quete
//----------------------------------------------------------------------------------------------------------

else if(document.URL.indexOf("quete")!=-1){

}


//----------------------------------------------------------------------------------------------------------
//ALLIANCE
//----------------------------------------------------------------------------------------------------------
else if(document.URL.indexOf("listemembre")!=-1){
 	var totalTM =0;




    //Couleurs et rôles
    let scriptElement = document.createElement('script');
    scriptElement.src ="https://abyssushelper.fr/js/Alliance.js";
    if (false) { //TODO : si le site est down, récupérer cookie
        scriptElement.src = getCookie("AbyssusHelper_Chaine");
    } else {
        setCookie("AbyssusHelper_Chaine", "", 7)
    }

    document.body.appendChild(scriptElement);



    newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">Alliance</font></span></center>';
	var str = document.getElementById('bloc').getElementsByTagName('center')[0].innerHTML;

    var strSub;
    strSub = str.split("Nombre de membre : ")[1];
    strSub = strSub.split("<")[0];

    var nbMembre = parseInt(strSub);

    //Nombre membres
    newDiv.innerHTML += '<br/><hr color="blue">';
    //newDiv.innerHTML += '<font color="white">Nombre de membre : </font>' + '<font color="white">' + nbMembre +'</font>';

    //Calcul total membres
    for (var iter=1; iter < nbMembre +1; iter++) {
        var stringTmMembre=(document.getElementById('tableaumembre').getElementsByTagName('tr')[iter].cells[5].innerHTML).replace(/ /g,"");
        var tmMembre = parseInt(stringTmMembre);
        totalTM = totalTM + tmMembre;
    }

    var tmMoyen = Math.floor(totalTM/nbMembre);

    //Format des nombres, en fonction de la localisation du client
    var totalTmStr = totalTM.toLocaleString(
        undefined,
        { maximumFractionDigits: 0 }
    );
    var tmMoyenStr = tmMoyen.toLocaleString(
        undefined,
        { maximumFractionDigits: 0 }
    );

    //calcule difference par rapport à la dernière fois.
    var tmAllyOld = getCookie("AbyssusHelper_tmAlly");
    if (tmAllyOld =="") {
        setCookie("AbyssusHelper_tmAlly", totalTM, 7);
    }

    var tmDiff = totalTM - tmAllyOld;

    if (tmDiff < 0) tmDiff = 0-tmDiff;

    var tmDiffStr = tmDiff.toLocaleString(
        undefined,
        { maximumFractionDigits: 0 }
    );

    newDiv.innerHTML += '<font color="white">Total TM : </font><font color="white">' + totalTmStr + ' <img src="images/eau.png" alt="terrain" style="vertical-align:center;" height="15"> </font>';
    if (tmAllyOld == ""){
    }else if (tmAllyOld < totalTM) {
        newDiv.innerHTML += '<br/><font color="chartreuse">+</font><font color="chartreuse">' + tmDiffStr + '</font>';
        setCookie("AbyssusHelper_tmAlly", totalTM, 7);
    } else if (tmAllyOld > totalTM) {
        newDiv.innerHTML += '<br/><font color="red"><strong>TM MANQUANT: ' + tmDiffStr + '</strong><a href="https://s1.abyssus.games/jeu.php#supprNotif' + totalTM + '"><img src="images/supprimer.png" alt="supprimer" style="vertical-align:center;" height="15"></a></font>';
        //rafraichit cookie avec la même valeur qu'avant: l'avertissement reste jusqua ce que le terrain soit récupéré
        setCookie("AbyssusHelper_tmAlly", tmAllyOld, 7);
    }
    newDiv.innerHTML += '<br/><font color="white">Moyenne TM : </font><font color="white">' + tmMoyenStr + ' <img src="images/eau.png" alt="terrain" style="vertical-align:center;" height="15"> </font>';
    newDiv.innerHTML += '<hr color="blue">';

    //newDiv.innerHTML += '<br/>' + '<center><span style="border:1.5px solid white; background:#06C;"><font color="white">Rôle dans la chaine</font></span></center>';

    //newDiv.innerHTML += '<br/>' + '<center><span style="border:1.5px solid white; background:#06C"><font color="white">Multiflood</font></span></center>';



    newDiv.innerHTML += '<br/><center><div class="divmf" style=""><button id="multifloodChaine", class="envoi_mf ui-button ui-corner-all ui-widget">Envoyer MultiFlood</button><br><br></div></center>';



    //activer le bouton
    document.getElementById ("multifloodChaine").addEventListener(
        "click", multiflood_Chaine, false
    );
}
//----------------------------------------------------------------------------------------------------------
else{
	newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">AbyssusHelper  v' + version + '</font></span></center>';

}

    //newDiv.innerHTML += '<a href="https://s1.abyssus.games/jeu.php?page=alliance&tag=apo">Lien vers apo</a>';
    //horloge
    if(getCookie("AbyssusHelper_horloge") == "true") {
        var horloge_active = document.createElement("TD");
        horloge_active.append(document.createTextNode("Horloge : active"));
        var horloge_valeur = document.createElement("TD");
        var d = new Date();
        var h = d.getHours();
        if(h<10) {
            h = "0"+h;
        }
        var minutes = d.getMinutes();
        if(minutes<10) {
            minutes = "0"+minutes;
        }
        var secondes = d.getSeconds();
        if(secondes<10) {
            secondes = "0"+secondes;
        }
        horloge_valeur.innerHTML = '<img src="images/chrono.png" height="22"> '+h+':'+minutes+':'+secondes;
        setInterval(function(){
        var d = new Date();
        var h = d.getHours();
        if(h<10) {
            h = "0"+h;
        }
        var minutes = d.getMinutes();
        if(minutes<10) {
            minutes = "0"+minutes;
        }
        var secondes = d.getSeconds();
        if(secondes<10) {
            secondes = "0"+secondes;
        }
        horloge_valeur.innerHTML = '<img src="images/chrono.png" height="22"> '+h+':'+minutes+':'+secondes;
        }, 1000);

        if (getCookie("AbyssusHelper_restyle") == "") {
            var row0 = document.getElementById("ressource").getElementsByTagName("tr")[0];
            row0.insertBefore(horloge_active, row0.childNodes[0]);
            var row1 = document.getElementById("ressource").getElementsByTagName("tr")[1];
            row1.insertBefore(horloge_valeur, row1.childNodes[0]);
        } else {
            row0 = document.getElementById("ressource");
            row0.insertBefore(horloge_valeur, row0.childNodes[0]);
        }

    }
}

setTimeout(test, delay);