AbyssusHelper

Petit Script pour Abyssus

当前为 2018-11-25 提交的版本,查看 最新版本

// ==UserScript==
// @name AbyssusHelper
// @description Petit Script pour Abyssus
// @version  1.18.6
// @grant none
// @match https://s1.abyssus.games/*
// @include https://s1.abyssus.games/*
// @namespace https://gf.qytechs.cn/users/184736
// ==/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);





//------------------------------------------------------------
// restyling
//------------------------------------------------------------
if (getCookie("AbyssusHelper_restyle") != "") {
    //fenêtre AbyssusHelper plus basse
    document.getElementById("abyssusHelper").style.marginTop = '21px';
    document.getElementById("abyssusHelper").style.position = 'fixed';
    document.getElementById("abyssusHelper").style.zIndex = '75';
    //ressources sur le côté
    var divRessourcesSpans = document.getElementById("ressourcetel").getElementsByTagName("span");
    var divRessourcesLinks = document.getElementById("ressourcetel").getElementsByTagName("a");
    var tableReplace = "";
    for (var x=0; x<divRessourcesSpans.length; x++) {
        tableReplace += divRessourcesSpans[x].outerHTML + "<br/>";
    }
    for ( x=0; x<divRessourcesLinks.length; x++) {
        tableReplace += divRessourcesLinks[x].outerHTML + "<br/>";
    }
    document.getElementById("ressource").innerHTML = tableReplace;
    document.getElementById("ressource").style.marginRight = '0px';
    document.getElementById("ressource").style.width = '100px';
    document.getElementById("ressource").style.textAlign = 'right';
    //menu plus haut
    document.getElementById("haut").style.height = '0px';
    document.getElementById("bas").style.marginTop = '0px';
    document.getElementById("menu_bulle").style.top = '0px';
    document.getElementById("menu_alliance").style.top = '0px';
    document.getElementById("menu_communaute").style.top = '0px';
    document.getElementById("menu_cplus").style.top = '0px';
    document.getElementById("menu_aide").style.top = '0px';
    document.getElementById("menu_bulle").style.marginTop = '31px';
    document.getElementById("menu_alliance").style.marginTop = '31px';
    document.getElementById("menu_communaute").style.marginTop = '31px';
    document.getElementById("menu_cplus").style.marginTop = '31px';
    document.getElementById("menu_aide").style.marginTop = '31px';
    //fond corrigé
    //document.getElementById("bas").style.backgroundPosition = '0px -350px';
    //document.getElementById("bas").style.backgroundSize = '100% 100%';
    document.getElementById("bas").style.background = '#092869';
}

//------------------------------------------------------------
// Drag myDiv
//------------------------------------------------------------
window.onload = addListeners;

function addListeners(){
    document.getElementById('abyssusHelper').addEventListener('mousedown', mouseDown, false);
    window.addEventListener('mouseup', mouseUp, false);
}

function mouseUp() {
    window.removeEventListener('mousemove', divMove, true);
}

function mouseDown(e) {
    window.addEventListener('mousemove', divMove, true);
    console.log("yikes");
    if (document.URL.indexOf("page=chasse") == -1) {
        //désactive l'entrée de texte... donc ne pas faire ça sur les pages qui en ont besoin.
        e.preventDefault();
    }
}

function divMove(e) {
    if (document.URL.indexOf("page=chasse") == -1) {
        //désactive l'entrée de texte... donc ne pas faire ça sur les pages qui en ont besoin.
        e.preventDefault();
    }
    var div = document.getElementById('abyssusHelper');
    div.style.position = 'absolute';
    if (e.clientY < 50 && e.clientX < 200) {
        div.style.top = '10px';
        div.style.left = '0px';
    } else {
        div.style.top = e.clientY + 'px';
        div.style.left = e.clientX-(div.offsetWidth/2) + 'px';
    }
}

//------------------------------------------------------------
// Poste les floods en cours sur le fofo
//------------------------------------------------------------
function postFloodsEnCours() {
    $.post('ajax/forum_post.php', {idpost : 6619, page : 1}, function(data) {
        var contenuActuel = (data.split('<td align="left" valign="top" style="padding: 10px;" class="tdfofo">')[1].split('</td>')[0]);
        //console.log(contenuActuel);
        var contenuMod = contenuActuel.split("<br />");
        var contenuNouveau = "Floods en cours :\n";
        for (var i=1; i<contenuMod.length; i++) {
            //supprimer nos anciens floods (floods annulés par exemple)
            if (contenuMod[i].indexOf("[" + pseudo + " ->") == -1 && contenuMod[i].indexOf("->") != -1) {
                //supprimer les floods aboutis
                var an = parseInt(contenuMod[i].split("/")[2].split(" ")[0]);
                //les mois en javascript vont de 0 à 11
                var mois = parseInt(contenuMod[i].split("/")[1]) - 1;
                var jour = parseInt(contenuMod[i].split("/")[0].split("le ")[1]);
                var heure = parseInt(contenuMod[i].split(" à ")[1].split("h")[0]);
                //arrondi à la minute d'après vu que le rc arrive qu'en début de minute prochaine
                var minute = parseInt(contenuMod[i].split(" à ")[1].split("h")[1].split(" ")[0]) + 1;
                //console.log(an + " " + mois + " " + jour + " " + heure + " " + minute);
                var dateArrivee = new Date (an, mois, jour, heure, minute, 0, 0);
                if (dateArrivee > new Date()) {
                    contenuNouveau += contenuMod[i];
                }
            }
        }
        $.get('jeu.php?page=armee', {page: "armee"}, function (data) {
            if (data.indexOf("<h3>Mes attaques en cours</h3>") != -1) {
                var attaquesEnCoursBrut = data.split("<h3>Mes attaques en cours</h3>")[1].split("<script>")[0];
                attaquesEnCoursBrut = attaquesEnCoursBrut.split("Vous allez attaquer");
                contenuNouveau += "\n";
                for (var i=1; i<attaquesEnCoursBrut.length; i++) {
                    if (attaquesEnCoursBrut[i].indexOf("territoire marin") != -1) {
                        var cible = attaquesEnCoursBrut[i].split("jeu.php?page=joueur&pseudo=")[1].split('">')[0];
                        var arrivee = attaquesEnCoursBrut[i].split("<i> ( ")[1].split(" )")[0];
                        var troupes = attaquesEnCoursBrut[i].split("Troupes en attaque : ")[1].split("</i>")[0];
                        //console.log(pseudo + " -> " + cible + " | " + arrivee + " | " + troupes);
                        var message = "[" + pseudo + " -> " + cible + " | " + arrivee + " | " + troupes + "]\n";
                        contenuNouveau += message;
                    }
                }
            }
            $.post('ajax/editer_forum2.php', {idmessage	: 92824, idpost : 6619, message : contenuNouveau, page : 1}, function(data){
            });
        });
});
}

if (getCookie("AbyssusHelper_postFloodsOFF") == "") {
    postFloodsEnCours();
    setCookie("AbyssusHelper_postFloodsOFF", "off", 0.00347);
}


//------------------------------------------------------------
// Notif CA
//------------------------------------------------------------
function notifCA() {

    if (getCookie("AbyssusHelper_alerteCAOff") != "") return;

    var contenuCA = "";
    //jQuery.ajaxSetup({async:false});
    $.get("https://s1.abyssus.games/ajax/chatalliance.php", function(data) {
        contenuCA = data.split("<br/>");
        var stop = 0;

        for (var i=0; i<contenuCA.length; i++) {
            if (contenuCA[i].toLowerCase().indexOf("@" + pseudo.toLowerCase())!=-1 || contenuCA[i].toLowerCase().indexOf("@everyone")!=-1) {
                //alert("ping!");
                if (getCookie("AbyssusHelper_alerteCAStatus") == "" || getCookie("AbyssusHelper_alerteCAStatus") == "idle") {
                    var old = 0;
                    if (getCookie("AbyssusHelper_alerteCADate") == "") {
                    } else {
                        old = parseInt(getCookie("AbyssusHelper_alerteCADate"));
                    }
                    var date = contenuCA[i].split("<i><span style=\"font-size:11px;\">")[1].split("</span></i>")[0];
                    //console.log(date);
                    var month = parseInt(date.split("/")[1].split(" à")[0]);
                    var day = parseInt(date.split("/")[0]);
                    var hour = parseInt(date.split("à ")[1].split(":")[0]);
                    var minute = parseInt(date.split("à ")[1].split(":")[1]);
                    var second = parseInt(date.split("à ")[1].split(":")[2]);

                    var dateS = month*200000 + day*86400 + hour*3600 + minute*60 + second;
                    if (old < dateS) {
                        setCookie("AbyssusHelper_alerteCAStatus", "active", 7);
                        setCookie("AbyssusHelper_alerteCADate", dateS, 7);
                        var audio = new Audio('https://notificationsounds.com/notification-sounds/open-ended-563/download/mp3');
                        audio.play();
                    }
                }
                if (getCookie("AbyssusHelper_alerteCAStatus") == "active") {
                    if (document.location.href == "https://s1.abyssus.games/jeu.php?page=chatalliance") {
                        setCookie("AbyssusHelper_alerteCAStatus", "idle", 7);
                    } else {
                        var link = document.createElement('a');
                        var img = document.createElement('img');
                        img.src = "https://s1.abyssus.games/images/bulle.png";
                        img.height = 25;
                        link.appendChild(img);
                        link.appendChild(document.createTextNode("une mention non lue"));
                        link.href="https://s1.abyssus.games/jeu.php?page=chatalliance";
                        document.getElementById("abyssusHelper").innerHTML += '<br/>';
                        document.getElementById("abyssusHelper").appendChild(link);
                        stop = 1;
                    }
                }
                break;
            }
        }

    if (stop == 0) setTimeout(notifCA, 15000);
    });
    //jQuery.ajaxSetup({async:true});
}
setTimeout(notifCA, 1000);

var hideBool = false;

hide();
//------------------------------------------------------------
// Cacher le Div
//------------------------------------------------------------
function hide(){
    try {
    document.getElementById("abyssusHelper").children[0].children[0].addEventListener("click", function(){
        if (hideBool){
            for (var i = 1; i < document.getElementById("abyssusHelper").childElementCount; i++){
                document.getElementById("abyssusHelper").children[i].style.display = "";
            }
            hideBool = false;
        } else {
            for (i = 1; i < document.getElementById("abyssusHelper").childElementCount; i++){
                document.getElementById("abyssusHelper").children[i].style.display = "none";
            }
            hideBool = true;


        }
    });
    } catch (e) {
        setTimeout(hide, 1000);
    }
}

//------------------------------------------------------------
//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 (var 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){
	newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">Construction</font></span></center>';
    newDiv.innerHTML += '<hr color="blue">';
    var constructions = document.getElementById("contruction_en_cours").innerHTML.split("<p>-");
    if (constructions.length != 1) {
        newDiv.innerHTML += '<center><font color="red">ATTENTION : aucune <br/> constructions en cours,<br/>demandez un convoi <br/>si nécessaire !</font></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 += '<img src="images/coquillage.png" alt="coquillage" height="25" style="vertical-align:bottom; margin-left:10px;">';
    newDiv.innerHTML += '<img src="images/nourriture.png" height="25" alt="nourriture" style="vertical-align:bottom; margin-left:10px;">';

}

//----------------------------------------------------------------------------------------------------------
//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){

}

//----------------------------------------------------------------------------------------------------------
//PAGE ALLIANCE (ENNEMIE)
//----------------------------------------------------------------------------------------------------------
else if (document.URL.indexOf("page=alliance") != -1) {
    var tag = document.location.href.split("tag=")[1];
	newDiv.innerHTML = '<center><span style=" border:1.5px solid white; background:#06C;"><font color="white">' + tag + ' - page d&apos;alliance</font></span></center>';
    newDiv.innerHTML += '<br/><hr color="blue">';



    if (getCookie("AbyssusHelper_restyle") != "") {
        var tableauAlliance = document.querySelectorAll("table")[1];
    } else {
        tableauAlliance = document.querySelectorAll("table")[2];
    }
    var nb_Membre = (tableauAlliance.querySelectorAll("tr").length) - 1;
    var TM_MOI = tmJoueur;//parseInt(document.getElementById("ressource").querySelector("[title=\"Territoire Marin\"]").lastChild.textContent.replace(/ /g, ""));
    var limInf = liminf(TM_MOI);
    var limSup = limsup(TM_MOI);

    //traceur suite

    if (document.location.href.toLowerCase()==="https://s1.abyssus.games/jeu.php?page=alliance&tag=o0o" || document.location.href.toLowerCase()==="https://s1.abyssus.games/jeu.php?page=alliance&tag=tag") {
        //alert(getCookie("AbyssusHelper_Traceur"));
        //if (getCookie("AbyssusHelper_Traceur") == "auto" || getCookie("AbyssusHelper_Traceur") == "") {
        if (window.top != window.self) {
            console.log("trace");
                var trace ="";
                var pseudos = new Array();
                var tms = new Array();
                for (i=1; i<nb_Membre; i++) {
                    pseudos.push(tableauAlliance.querySelectorAll("tr")[i].children[0].textContent);
                    tms.push(parseInt(tableauAlliance.querySelectorAll("tr")[i].children[2].textContent.replace(/ /g, "")));
                }

                //Automatique
                function createURL(i) {
                    var addURL = "";
                    var a = 1;
                    while (i < TblPseudo.length && addURL.length <= 200) {
                        addURL += "&P" + (a) + "=" + TblPseudo[i];
                        addURL += "&T" + (a) + "=" + TblTM[i];
                        i++;
                        a++;
                    }
                    return [i, addURL, a];
                }



                var TblPseudo = pseudos;
                var TblTM = tms;
                var url = "";
                i = 0;
                while (i < TblPseudo.length) {
                    var tblRtn = createURL(i);
                    var iframecache = document.createElement('IFRAME');
                    iframecache.src = url + (tblRtn[0] - i) + tblRtn[1];
                    iframecache.style.display = "none";
                    document.getElementById('bas').appendChild(iframecache);
                    //window.open(url + (tblRtn[0] - i) + tblRtn[1]);
                    i = tblRtn[0];
                }

            //close tab
            if (getCookie("AbyssusHelper_Traceur") == "auto") {
                setCookie("AbyssusHelper_Traceur", "done", 0.008);
                //window.close();
            } else {
                setCookie("AbyssusHelper_Traceur", "done", 0.008);
            }
        }
    }


    for (i = 1; i < nb_Membre; i++){
        var caseTM = tableauAlliance.querySelectorAll("tr")[i].children[2];
        var TM = parseInt(caseTM.textContent.replace(/ /g, ""));
        if (TM > limInf && TM < limSup){
            var lienVersJoueur = caseTM.parentElement.children[0].firstChild.href;
            lienVersJoueur += "&AHLanchAttaque=1";
            var lienAttaque = document.createElement("a");
            lienAttaque.href = lienVersJoueur;
            lienAttaque.style.paddingLeft = "20px";
            lienAttaque.style.marginRight = "-10px";
            var ImageAttaque = document.createElement("img");
            ImageAttaque.src = "images/attaque.png";
            ImageAttaque.style.verticalAlign = "bottom";
            ImageAttaque.height = "20";
            lienAttaque.appendChild(ImageAttaque);
            caseTM.appendChild(lienAttaque);
        } else {
            var falseLink = document.createElement("a");
            falseLink.style.paddingLeft = "40px";
            falseLink.style.marginRight = "-10px";
            caseTM.appendChild(falseLink);
        }
        if (TM_MOI > liminf(TM) && TM_MOI < limsup(TM)){
            var lienDef = document.createElement("a");
            lienDef.style.paddingRight = "20px";
            lienDef.style.marginLeft = "-10px";
            var ImageDef = document.createElement("img");
            ImageDef.src = "images/defense.png";
            ImageDef.style.verticalAlign = "bottom";
            ImageDef.height = "20";
            lienDef.appendChild(ImageDef);
            caseTM.insertBefore(lienDef, caseTM.firstChild);
        } else {
            falseLink = document.createElement("a");
            falseLink.style.paddingRight = "40px";
            falseLink.style.marginLeft = "-10px";
            caseTM.insertBefore(falseLink, caseTM.firstChild);
        }
    }

    function insertFirst (parent, elt){ //Ajoute Elt en premier Child de Parent
        parent.insertBefore(elt, parent.firstChild);
    }

    //Cacher la description
    var h3Classement = document.querySelector("h3");
    var contentDesc = document.querySelector("#bloc center");
    var OK = true;
    i = contentDesc.children.length -1;
    var divContentTabl = document.createElement("center");
    while (OK){
        var eltActu = contentDesc.children[i];
        if (divContentTabl.children.length === 0){
            divContentTabl.appendChild(eltActu);
        } else {
            insertFirst(divContentTabl, eltActu);
        }
        if (eltActu === h3Classement){
            OK = false;
        }
        i --;
    }



    var center = document.createElement("center");
    var afficherDesc = document.createElement("a");
    afficherDesc.id = "afficherDesc";
    afficherDesc.textContent = "Afficher la description";
    afficherDesc.href = "javascript:void(0)";
    afficherDesc.addEventListener("click", function(e){
        if (contentDesc.style.display === "none"){
            contentDesc.style.display = "";
            insertFirst(contentDesc, divContentTabl.children[0]);
            e.target.textContent = "Cacher la description";
        } else {
            contentDesc.style.display = "none";
            insertFirst(divContentTabl, contentDesc.children[0]);
            e.target.textContent = "Afficher la description";
        }
    });

    center.appendChild(afficherDesc);
    insertFirst(contentDesc.parentElement, center);

    insertFirst(divContentTabl, document.createElement("br"));
    insertFirst(divContentTabl, contentDesc.children[0]);

    contentDesc.parentElement.appendChild(divContentTabl);
    contentDesc.style.display = "none";



} else if (document.URL.indexOf("page=joueur")!=-1){
    if (document.URL.indexOf("AHLanchAttaque=1")!= -1){
        window.location.href = document.querySelectorAll("tbody tr")[document.querySelectorAll("tbody tr").length -1].querySelectorAll("a")[2].href;
    }

}

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




    //Couleurs et rôles
    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);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址