Aquaofkaos / Fix-Celestus-Interface

// ==UserScript==
// @name           Fix-Celestus-Interface
// @namespace   	2c7e63c68903f0a8b6
// @description    Corriger problemes interface Celestus
// @version        1.7.7
// @author         Aqua
// @license MIT
// @copyright 2020, Aquaofkaos (https://openuserjs.org/users/Aquaofkaos)

// @include     	*horizon.celestus.fr*

// @exclude				*forum.celestus.fr*

// @run-at document-body
// @noframes
// @connect gagn-associates.com
// @grant GM_setValue
// @grant GM_getValue

// @updateURL https://openuserjs.org/meta/Aquaofkaos/Fix-Celestus-Interface.meta.js
// @downloadURL https://openuserjs.org/install/Aquaofkaos/Fix-Celestus-Interface.user.js

// ==/UserScript==

console.log("Début de chargementdu script.");

var pageJeu = document;

//GM_setValue("Planetes","");
function chargerModifications() {
  /*if (window.top === window.self)
  {
    pageJeu = frames[0].document;
  }
  else
  {
    pageJeu = document;
  }*/


  //Trouve les infobulles et met leur hauteur pour qu'elle soit toujours de la bonne taille.
  var infoBulles = pageJeu.getElementsByClassName("InfoBot");
  for (var i = 0; i < infoBulles.length; i++) {
    if ((infoBulles.item(i).getElementsByTagName("div").length > 0)) { infoBulles.item(i).getElementsByTagName("div").item(0).style.height = "100%"; }
  }

  //On recule un peu la navigation en hauteur
  if (pageJeu.getElementsByClassName("TopNav")[0]) { pageJeu.getElementsByClassName("TopNav")[0].style["z-index"] = 10; }
  // pageJeu.getElementById('BarreDialogue').onclick=function () {this.style.display='none'};

  var Slide1 = pageJeu.getElementById("CSlide1");
  if (Slide1)
  {
  var commerce = Slide1.getElementsByClassName("ContenuCommerce");
  if (commerce.length > 0)
  {
    commerce.item(0).style.overflow="scroll";
    commerce.item(0).style.height="90%";
    if (Slide1.getElementsByClassName("ListeT").length > 0)
    {
      Slide1.getElementsByClassName("ListeT").item(0).remove();
    }
  }
}

  console.log("Modifications effectuées.");
}



/*if (window.top === window.self)
{
  pageJeu = document;
  chargerModifications();
}
else
{*/

var fenetre;
var dansIframe;
//Détermine si on est dans un frame (jeu) ou dans la page courante (radar, RC, etc.)
if (window.top === window.self && (frames[0] || document.getElementsByTagName("frameset").length > 0)) {
  /*console.log("Pas dans un iframe");
  fenetre = frames[0].window;
  pageJeu = frames[0].document;*/
  dansIframe = false;
}
else {
  /*console.log("dans un iframe");
  fenetre = window;
  pageJeu = document;*/
  dansIframe = true;
}
/*if (window.top === window.self)
{
}
else
{
}*/


function chargerFonctions(fenetre) {
  fenetre.copyToClipboard = str => {
    console.log("Copie des données vers le presse-papiers.");
    const el = pageJeu.createElement("textarea");
    el.value = str;
    el.setAttribute("readonly", "");
    el.style.position = "absolute";
    el.style.left = "-9999px";
    pageJeu.body.appendChild(el);
    const selected = pageJeu.getSelection().rangeCount > 0 ? pageJeu.getSelection().getRangeAt(0) : false;
    el.select();
    pageJeu.execCommand("copy");
    pageJeu.body.removeChild(el);
    if (selected) {
      pageJeu.getSelection().removeAllRanges();
      pageJeu.getSelection().addRange(selected);
    }
  };

  fenetre.Planetes = new Object();

  fenetre.exportColonies = function () {
    console.log("Exportation colonies en cours");
    var texte = "";
    var dateJour = new Date();

    Object.keys(frames[0].Colonies).forEach(function (item, index) {
      if (item != 0) {
        var colo = frames[0].Colonies[item];
        texte += `${frames[0].Amas[colo["AG"]]}\t\
    ${colo["Adresse"]}\t\
    ${colo["Nom"]}\t\
    ${dateJour.getDate()}/${dateJour.getMonth() + 1}/${dateJour.getFullYear()}\t`;
        if (frames[0].Planetes[colo["ID"]]) {
          if (frames[0].Planetes[colo["ID"]]["FactionBase"] != frames[0].Joueur["Faction"])
          {
            texte += "Sauvage";
          }
          else
          {
          switch (frames[0].Planetes[colo["ID"]].BonusSeg) {
            case "1.4":
              {
                texte += "AVP";
                break;
              }
            case "1.25":
              {
                texte += "TDF";
                break;
              }
            case "0.9":
              {
                texte += "Sauvage";
                break;
              }
            default:
              {
                texte += "Sauvage"
              }
          }
        }
          texte += "\t" + frames[0].Planetes[colo["ID"]].BonusSeg + "\t";
        }
        else {
          texte += "\t\t";
        }
        texte += ((colo['M7'])?colo['M7']:"") + "\t";
        if (frames[0].Planetes[colo["ID"]]) {

          if (frames[0].Planetes[colo["ID"]].Objets) {
            if (frames[0].Planetes[colo["ID"]].Objets.Metal) {
              texte += (frames[0].Planetes[colo["ID"]].Objets.Metal.Nb) ? frames[0].Planetes[colo["ID"]].Objets.Metal.Nb : "0";
              texte += "\t";
            }
            else {
              texte += "\t";
            }
            if (frames[0].Planetes[colo["ID"]].Objets.Tritium) {
              texte += (frames[0].Planetes[colo["ID"]].Objets.Tritium.Nb) ? frames[0].Planetes[colo["ID"]].Objets.Tritium.Nb : "0";
              texte += "\t";
            }
            else {
              texte += "\t";
            }
            if (frames[0].Planetes[colo["ID"]].Objets.Photo) {
              texte += (frames[0].Planetes[colo["ID"]].Objets.Photo.Nb) ? frames[0].Planetes[colo["ID"]].Objets.Photo.Nb : "0";
              texte += "\t";
            }
            else {
              texte += "\t";
            }
          }
          else {
            texte += "\t\t\t";
          }
          if (frames[0].Planetes[colo["ID"]].Labos) {
            texte += (frames[0].Planetes[colo["ID"]].Labos.CS) ? "1" : "0";
            texte += "\t";
          }
          else {
            texte += "\t";
          }
          if (frames[0].Planetes[colo["ID"]].Structures) {
            texte += (frames[0].Planetes[colo["ID"]].Structures.AR) ? frames[0].Planetes[colo["ID"]].Structures.AR : "0";
            texte += "\t";
          }
          else {
            texte += "\t";
          }
        }
        else {
          texte += "\t\t\t\t\t";
        }
        texte += `${colo["PL"]}\t\
      ${(colo["RO"])?colo["RO"]:0}\t\
      ${(colo["G5"])?colo["G5"]:0}\t`;
      if (frames[0].Planetes[colo["ID"]])
      {
        texte += (frames[0].Planetes[colo["ID"]].Filon) ? frames[0].Planetes[colo["ID"]].Filon : "";
     texte += "\t";
      }
      else
      {
        texte += "\t";
      }
        if (frames[0].Planetes[colo["ID"]] && frames[0].Planetes[colo["ID"]].Coeffs) {
          texte += `${frames[0].Planetes[colo["ID"]].Coeffs["CoefM"]}\t\
${frames[0].Planetes[colo["ID"]].Coeffs["CoefT"]}\t\
${frames[0].Planetes[colo["ID"]].Coeffs["CoefST"]}\t\
${frames[0].Planetes[colo["ID"]].Coeffs["CoefSE"]}\t`;
        }
        else {
          texte += "\t\t\t\t";
        }
        texte += `${colo["PlaceT"]}\t\
      ${colo["TC"]}\t\
      ${colo["ResHT"]}\t\
      ${colo["BatM"]}\t\
      ${colo["BatT"]}\t\
      ${colo["BatH"]}\t\
      ${colo["BatP"]}\t\
      ${colo["BatE"]}\t\
      ${colo["BatMC"]}\t\
      ${colo["BatGF"]}\t\
      ${colo["BatME"]}\t\
      ${colo["BatTE"]}\t\
      ${colo["SDD"]}\t\
      ${colo["SPO"]}\t\
      ${colo["SBL"]}\t\
      ${colo["BatCO"]}\t\
      ${colo["BatCI"]}\t\
      ${colo["BatUC"]}\t\
      ${colo["BatTech"]}\t\
      ${colo["BatCa"]}\t\
      ${colo["BatCS"]}\t\
      ${colo["BatSP"]}\t\
      ${colo["BatCR"]}\t\
      ${colo["BatAS"]}\t\
      ${colo["BatPM"]}\t\
      ${colo["BatAc"]}\t\
      ${colo["BatRa"]}\t\
      ${colo["SOC"]}\t\
      ${colo["SAT"]}\t\
      ${colo["SBO"]}\t\
      ${colo["SSa"]}\t\
      ${colo["SGH"]}\t\
      \t\
      \t\
      \t\
      \t\
      \t\
      \t\
      \t\
      \t\
      \t\
      \t\
      ${colo["X"]}\t\
      ${colo["Y"]}\t\
    \n`;
      }
    });

    fenetre.copyToClipboard(texte.replace(/\./g,","));
  }

  fenetre.exportTechnologies = function () {
    console.log("Exportation technologies en cours");
    fenetre.copyToClipboard(`${frames[0].Joueur["TechSt"]}
  ${frames[0].Joueur["TechAC"]}
  ${frames[0].Joueur["TechPC"]}
  ${frames[0].Joueur["TechLa"]}
  ${frames[0].Joueur["TechIEM"]}
  ${frames[0].Joueur["TechPl"]}
  ${frames[0].Joueur["TechPH"]}
  ${frames[0].Joueur["TechEn"]}
  ${frames[0].Joueur["TechSe"]}
  ${frames[0].Joueur["TechEs"]}
  ${frames[0].Joueur["TechIn"]}
  ${frames[0].Joueur["TechOQ"]}
  ${frames[0].Joueur["TechCo"]}
  ${frames[0].Joueur["TechS"]}
  ${frames[0].Joueur["TechSu"]}
  ${frames[0].Joueur["TechEx"]}
  ${frames[0].Joueur["TechTe"]}
  ${frames[0].Joueur["TechME"]}
  ${frames[0].Joueur["TechMT"]}
  ${frames[0].Joueur["TechMM"]}`);
  }

  fenetre.exportEntretien = function () {
    console.log("Exportation production en cours");
    fenetre.copyToClipboard(`${frames[0].Joueur["Conso"]}
  ${frames[0].Joueur["ConsoD"]}
  ${frames[0].Joueur["ConsoI"]}
  ${frames[0].Joueur["ConsoZ"]}
  /j
  ${(frames[0].MEmpire["ProdM"])?frames[0].MEmpire["ProdM"]:"Passe sur la page Empire"}
  ${(frames[0].MEmpire["ProdT"])?frames[0].MEmpire["ProdT"]:"Passe sur la page Empire"}
  ${(frames[0].MEmpire["ProdP"])?frames[0].MEmpire["ProdP"].replace(".", ","):"Passe sur la page Empire"}
  ${(frames[0].MEmpire["ProdPrestige"])?frames[0].MEmpire["ProdPrestige"]:"Passe sur la page Empire"}
  ${frames[0].Joueur["ZRCInfra"]}
  ${frames[0].Joueur["ZRCDom"]}
  ${frames[0].Joueur["ZRCConso"]}
  ${frames[0].Joueur["ZRCBonus"]}
  ${frames[0].Joueur["ZRCJours"]}
  `);
  }


  fenetre.exportSpecs = function () {
    var listeGuildes = ["Aucune", "Commerce", "Transport", "Flotte de Faction", "Bâtisseur", "Explorateur", "Protecteur", "Technologiste"]
    console.log("Exportation spécialisations en cours");
    var texte = `${listeGuildes[(frames[0].Joueur["Guilde"])]}
  ${(frames[0].MEmpire["FAC"])?frames[0].MEmpire["FAC"]:"Passe sur la page Empire"}
  ${frames[0].Joueur["BA1"]}
  ${frames[0].Joueur["BA2"]}
  ${frames[0].Joueur["BM1"]}
  ${frames[0].Joueur["BM2"]}
  ${frames[0].Joueur["BT1"]}
  ${frames[0].Joueur["BT2"]}
  `;

    for (i = 1; i <= 29; i++) {
      if (frames[0].Joueur["Competences"][i]) {
        texte += `TRUE
      `;
      }
      else {
        texte += `FALSE
      `;
      }

    }
    fenetre.copyToClipboard(texte);
  }

  fenetre.exportPontons = function () {
    console.log("Exportation pontons en cours");
    var texte = "";
    if (frames[0].Flottes && frames[0].Flottes.JF)
    {
    Object.keys(frames[0].Flottes.JF).forEach(function (item, index) {
      //console.log(item);
        var flotte = frames[0].Flottes.JF[item];
        if (flotte.Ordre == "commercer" && flotte.Com == 1)
        {
          texte += `${(frames[0].Planetes[flotte.Depart])?frames[0].Amas[frames[0].Planetes[flotte.Depart].AG]:""}\t\
          ${flotte.AdresseDepart}\t\
          ${frames[0].Amas[flotte.AG]}\t\
          ${flotte.AdresseArrivee}\
          \n`;
      }
    });
    }

    fenetre.copyToClipboard(texte);
  }

  fenetre.exportVaisseauxEmpire = function () {
    console.log("Exportation vaisseaux page empire");
    var texte = "";
    if (frames[0].MEmpire)
    {
    Object.keys(frames[0].MEmpire).forEach(function (item, index) {
      //console.log(item);
        var vaisseau = frames[0].MEmpire[item];
        if (frames[0].Vaisseaux[item] && frames[0].Vaisseaux[item]["Chassis"])
        {
          texte += `${(frames[0].Vaisseaux[item]["Nom"])?frames[0].Vaisseaux[item]["Nom"]:""}\t\
          ${(frames[0].Vaisseaux[item]["Type"])?frames[0].Vaisseaux[item]["Type"]:""}\t\
          ${(frames[0].Vaisseaux[item]["Chassis"])?frames[0].Vaisseaux[item]["Chassis"]:""}\t\
          ${(frames[0].MEmpire[item])?frames[0].MEmpire[item]:""}\t\
          ${(frames[0].Vaisseaux[item]["CoutM"])?frames[0].Vaisseaux[item]["CoutM"]:""}\t\
          ${(frames[0].Vaisseaux[item]["CoutT"])?frames[0].Vaisseaux[item]["CoutT"]:""}\t\
          ${(frames[0].Vaisseaux[item]["CoutP"])?frames[0].Vaisseaux[item]["CopuP"]:""}\t\
          ${(frames[0].Vaisseaux[item]["ZRC"])?frames[0].Vaisseaux[item]["ZRC"]:""}\t\
          ${(frames[0].Vaisseaux[item]["ConsoMult"])?frames[0].Vaisseaux[item]["ConsoMult"]:""}\n`;
      }
    });
    }

    fenetre.copyToClipboard(texte.replace(/\./g,","));
  }

  fenetre.exportSecteurs = function(){
    var NomsSecteurs = {Rien: 'Orbite libre ',Inter: 'Flotte',E1: 'Naine Jaune ',E2: 'Naine rouge ',E3: 'Géante bleue ',E4: 'Etoile à neutrons ',TN: 'Trou noir ',LC: 'Lumière Céleste ',PH: 'Planète habitable ',PT: 'Planète tellurique ',PG: 'Géante de gaz ',PC: 'Colonie ',PM: 'Planète mère ',CM: 'Ceinture d\'astéroïdes ',CT: 'Nuage gazeux ',PDC: 'Poste de Contrôle ',GP: 'Brèche d\'Eope',CB: 'Centre Boursier'};
    console.log("Exportation secteurs en cours");
    var texte = "";
    var dateJour = new Date();

    Object.keys(frames[0].Secteurs).forEach(function (item, index) {
      if (item != 0) {
        var secteur = frames[0].Secteurs[item];
        texte += `${frames[0].Amas[secteur["AG"]]}\t\
    ${secteur["Adresse"]}\t\
    ${NomsSecteurs[secteur["Type"]]}\t\
    ${dateJour.getDate()}/${dateJour.getMonth() + 1}/${dateJour.getFullYear()}\t`;
        if (frames[0].Planetes[secteur["ID"]]) {
          if (frames[0].Planetes[secteur["ID"]]["FactionBase"] != frames[0].Joueur["Faction"])
          {
            texte += "Sauvage";
          }
          else
          {
          switch (frames[0].Planetes[secteur["ID"]].BonusSeg) {
            case "1.4":
              {
                texte += "AVP";
                break;
              }
            case "1.25":
              {
                texte += "TDF";
                break;
              }
            case "0.9":
              {
                texte += "Sauvage";
                break;
              }
            default:
              {
                texte += "Sauvage"
              }
          }
        }
          texte += "\t" + frames[0].Planetes[secteur["ID"]].BonusSeg + "\t";
        }
        else {
          texte += "\t\t";
        }
        if (frames[0].Planetes[secteur["ID"]]) {

          if (frames[0].Planetes[secteur["ID"]].Objets) {
            if (frames[0].Planetes[secteur["ID"]].Objets.Metal) {
              texte += (frames[0].Planetes[secteur["ID"]].Objets.Metal.Nb) ? frames[0].Planetes[secteur["ID"]].Objets.Metal.Nb : "0";
              texte += "\t";
            }
            else {
              texte += "\t";
            }
            if (frames[0].Planetes[secteur["ID"]].Objets.Tritium) {
              texte += (frames[0].Planetes[secteur["ID"]].Objets.Tritium.Nb) ? frames[0].Planetes[secteur["ID"]].Objets.Tritium.Nb : "0";
              texte += "\t";
            }
            else {
              texte += "\t";
            }
            if (frames[0].Planetes[secteur["ID"]].Objets.Photo) {
              texte += (frames[0].Planetes[secteur["ID"]].Objets.Photo.Nb) ? frames[0].Planetes[secteur["ID"]].Objets.Photo.Nb : "0";
              texte += "\t";
            }
            else {
              texte += "\t";
            }
          }
          else {
            texte += "\t\t\t";
          }
          if (frames[0].Planetes[secteur["ID"]].Labos) {
            texte += (frames[0].Planetes[secteur["ID"]].Labos.CS) ? "1" : "0";
            texte += "\t";
          }
          else {
            texte += "\t";
          }
          if (frames[0].Planetes[secteur["ID"]].Structures) {
            texte += (frames[0].Planetes[secteur["ID"]].Structures.AIA) ? frames[0].Planetes[secteur["ID"]].Structures.AIA: "0";
            texte += "\t";
            texte += (frames[0].Planetes[secteur["ID"]].Structures.GHL) ? frames[0].Planetes[secteur["ID"]].Structures.GHL: "0";
            texte += "\t";
            texte += (frames[0].Planetes[secteur["ID"]].Structures.AR) ? frames[0].Planetes[secteur["ID"]].Structures.AR: "0";
            texte += "\t";
            texte += (frames[0].Planetes[secteur["ID"]].Structures.PL) ? frames[0].Planetes[secteur["ID"]].Structures.PL: "0";
            texte += "\t";
            texte += (frames[0].Planetes[secteur["ID"]].Structures.PA) ? frames[0].Planetes[secteur["ID"]].Structures.PA: "0";
            texte += "\t";
            texte += (frames[0].Planetes[secteur["ID"]].Structures.RS) ? frames[0].Planetes[secteur["ID"]].Structures.RS: "0";
            texte += "\t";
            texte += (frames[0].Planetes[secteur["ID"]].Structures.SC) ? frames[0].Planetes[secteur["ID"]].Structures.SC: "0";
            texte += "\t";
            texte += (frames[0].Planetes[secteur["ID"]].Structures.IH) ? frames[0].Planetes[secteur["ID"]].Structures.IH: "0";
            texte += "\t";
          }
          else {
            texte += "\t\t\t\t\t\t\t\t";
          }
        }
        else {
          texte += "\t\t\t\t\t\t\t\t\t\t\t\t";
        }
        texte += `${(secteur["RO"])?secteur["RO"]:0}\t\
      ${(secteur["G5"])?secteur["G5"]:0}\t`;
      if (frames[0].Planetes[secteur["ID"]])
      {
        texte += (frames[0].Planetes[secteur["ID"]].Filon) ? frames[0].Planetes[secteur["ID"]].Filon : "";
     texte += "\t";
      }
      else
      {
        texte += "\t";
      }
        if (frames[0].Planetes[secteur["ID"]] && frames[0].Planetes[secteur["ID"]].Coeffs) {
          texte += `${frames[0].Planetes[secteur["ID"]].Coeffs["CoefM"]}\t\
${frames[0].Planetes[secteur["ID"]].Coeffs["CoefT"]}\t\
${frames[0].Planetes[secteur["ID"]].Coeffs["CoefST"]}\t\
${frames[0].Planetes[secteur["ID"]].Coeffs["CoefSE"]}\t`;
        }
        else {
          texte += "\t\t\t\t";
        }
        texte += `${secteur["TC"]}\t\
        ${secteur["ResHT"]}\t\
      ${(secteur["M5"])?secteur["M5"]:0}\t\
      ${(secteur["M7"])?secteur["M7"]:0}\t\
      ${(secteur["M1"])?secteur["M1"]:0}\t\
      ${(secteur["M4"])?secteur["M4"]:0}\t\
      ${(secteur["M1M"])?secteur["M1M"]:0}\t\
      ${(secteur["M1T"])?secteur["M1T"]:0}\t\
      ${(secteur["M1MH"])?secteur["M1MH"]:0}\t\
      ${(secteur["M1TH"])?secteur["M1TH"]:0}\t\
      ${(secteur["VX19"])?secteur["VX19"]:0}\t\
      ${(secteur["VA0"])?secteur["VA0"]:0}\t\
      ${secteur["X"]}\t\
      ${secteur["Y"]}\t\
    \n`;
      }
    });

    fenetre.copyToClipboard(texte.replace(/\./g,","));
  }
}



//On ajoute jQuery
/*var script = pageJeu.createElement('script');
script.src = 'https://code.jquery.com/jquery-3.4.1.min.js';
script.type = 'text/javascript';
pageJeu.getElementsByTagName('head')[0].appendChild(script);*/
//setTimeout(function(){},15000);
//this.$ = this.jQuery = this.jQuery.noConflict(true);
//}


const mutationObserver = new MutationObserver(function (mutations) {
  this.disconnect();
  //console.log("mutations");
  mutations.forEach(function (mutation) {
    //console.log(mutation);
    switch (mutation.target.id) {
      case 'contenu':
        console.log("Début modification contenu.");
        frames[0].Planetes[frames[0].Planete["ID"]] = mergePlanet(frames[0].Planete);
        GM_setValue("Planetes",JSON.stringify(frames[0].Planetes));
        //console.log(GM_getValue("Planetes"));
        chargerModifications();
        //startObserve();

        break;
      /* case 'BatListeC':
         //console.log(mutation.target);
         mutationObserver.disconnect();
       //setTimeout(function(){chargerBoutonsBats()},250);
       setTimeout(function(){startObserve()},1000);
 
       break;*/
       case 'CSlide1':
         console.log("Début modification slide");
         chargerModifications();
         break;
      case 'Menu':
        console.log("menu");
        //console.log(frames[0].Planete);
        frames[0].Planetes[frames[0].Planete["ID"]] = mergePlanet(frames[0].Planete);
        GM_setValue("Planetes",JSON.stringify(frames[0].Planetes));
        //console.log(GM_getValue("Planetes"));
        //console.log(frames[0].Planetes);
        ajouterMenuExports();
        break;
      default:

    }

  });
  startObserve();

});

function startObserve() {
  /*if (window.top === window.self && (frames[0] || document.getElementsByTagName("frameset").length > 0))
  {
    pageJeu = frames[0].document;
  }
  else
  {
    pageJeu = document;
  }*/
  //console.log(pageJeu);
  mutationObserver.observe(pageJeu.documentElement, {
    //attributes: true,
    //characterData: true,
    childList: true,
    subtree: true,
    //attributeOldValue: true,
    //characterDataOldValue: true
  });
  //console.log("Observateur general ajoute");
  /*if(pageJeu.getElementById("SurfaceCnv")){
    mutationObserver.observe(pageJeu.getElementById("SurfaceCnv"),{
      childList: true,
    subtree: false,
    });
    console.log("Observateur surfacecnv ajoute");
  }*/
  /*if (pageJeu.getElementById("Menu")) {
    mutationObserver.observe(pageJeu.getElementById("Menu"), {
      childList: true,
      subtree: true,
    });
    //console.log("Observateur menu ajoute");
  }*/

}

var convArrToObj = function(array){
  var thisEleObj = new Object();
  if(typeof array == "object"){
      for(var i in array){
          var thisEle = convArrToObj(array[i]);
          thisEleObj[i] = thisEle;
      }
  }else {
      thisEleObj = array;
  }
  return thisEleObj;
};

function mergePlanet(objPlanete)
{
  var mergedPlanet;
  if (frames[0].Planetes[objPlanete["ID"]] && Object.keys(frames[0].Planetes[objPlanete["ID"]]).length > 1)
  {
    mergedPlanet = convArrToObj(frames[0].Planetes[objPlanete["ID"]]);
    Object.keys(frames[0].Planetes[objPlanete["ID"]]).forEach(function (key, index) {
      mergedPlanet[key] = (objPlanete[key])?convArrToObj(objPlanete[key]):(mergedPlanet[key])?mergedPlanet[key]:"";
    });
    Object.keys(objPlanete).forEach(function (key, index) {
      mergedPlanet[key] = (objPlanete[key])?convArrToObj(objPlanete[key]):(mergedPlanet[key])?mergedPlanet[key]:"";
    });
  }
  else
  {
    mergedPlanet = convArrToObj(objPlanete);
  }
  //console.log(objPlanete);
  //console.log(mergedPlanet);
  return mergedPlanet; 
}

function chargerBoutonsBats() {
  mutationObserver.disconnect();
  if (pageJeu.getElementById("BatListeC")/* && pageJeu.getElementById("BatListeC").getElementsByClassName("BatBlock")[0].firstChild.innerText.match("Structures*").length > 0*/) {
    var tag = document.createElement("div");
    tag.className = "BatBlock";
    tag.id = "BtnExportBats";
    var html = "<div class='TitreO'>Exportations</div><div class='ObjetCreation info1' onclick='(function(){" +
      "const copyToClipboard = str => {" +
      "console.log(\"Copie des données\");" +
      "const el = document.createElement(\"textarea\");" +
      "el.value = str;" +
      "el.setAttribute(\"readonly\", \"\");" +
      "el.style.position = \"absolute\";" +
      "el.style.left = \"-9999px\";" +
      "document.body.appendChild(el);" +
      "const selected =" +
      "document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;" +
      "el.select();" +
      "document.execCommand(\"copy\");" +
      "document.body.removeChild(el);" +
      "if (selected) {" +
      "document.getSelection().removeAllRanges();" +
      "document.getSelection().addRange(selected);" +
      "}" +
      "};" +
      "planete = Planete;" +
      "copyToClipboard(planete.Nom + \"\\n\" + " +
      "planete.Gal + \":\" + " +
      "planete.Sys + \":\" + " +
      "planete.Pos + \":\" + " +
      "planete.Orbite + \"\\nLvl\\n\" + " +
      "planete.Batiments[\"BatM\"] + \"\\n\" + " +
      "planete.Batiments[\"BatT\"] + \"\\n\" + " +
      "planete.Batiments[\"BatH\"] + \"\\n\" + " +
      "planete.Batiments[\"BatP\"] + \"\\n\" + " +
      "planete.Batiments[\"BatE\"] + \"\\n\" + " +
      "planete.Batiments[\"BatMC\"] + \"\\n\" + " +
      "planete.Batiments[\"BatGF\"] + \"\\n\" + " +
      "planete.Batiments[\"BatME\"] + \"\\n\" + " +
      "planete.Batiments[\"BatTE\"] + \"\\n\" + " +
      "planete.Batiments[\"SDD\"] + \"\\n\" + " +
      "planete.Batiments[\"SPO\"] + \"\\n\" + " +
      "planete.Batiments[\"SBL\"] + \"\\n\" + " +
      "planete.Batiments[\"BatCO\"] + \"\\n\" + " +
      "planete.Batiments[\"BatCI\"] + \"\\n\" + " +
      "planete.Batiments[\"BatUC\"] + \"\\n\" + " +
      "planete.Batiments[\"BatTech\"] + \"\\n\" + " +
      "planete.Batiments[\"BatCa\"] + \"\\n\" + " +
      "planete.Batiments[\"BatCS\"] + \"\\n\" + " +
      "planete.Batiments[\"BatSP\"] + \"\\n\" + " +
      "planete.Batiments[\"BatCR\"] + \"\\n\" + " +
      "planete.Batiments[\"BatAS\"] + \"\\n\" + " +
      "planete.Batiments[\"BatPM\"] + \"\\n\" + " +
      "planete.Batiments[\"BatAc\"] + \"\\n\" + " +
      "planete.Batiments[\"BatRa\"] + \"\\n\" + " +
      "planete.Batiments[\"SOC\"] + \"\\n\" + " +
      "planete.Batiments[\"SAT\"] + \"\\n\" + " +
      "planete.Batiments[\"SBO\"] + \"\\n\" + " +
      "planete.Batiments[\"SSa\"] + \"\\n\" + " +
      "planete.Batiments[\"SGH\"]);})();'>Export bats</div>";

    tag.innerHTML = html;
    pageJeu.getElementById("BatListeC").appendChild(tag);

    console.log("Bouton export batiments ajouté.");
  }/*else if (pageJeu.getElementById("BtnExportBats"))
{
  pageJeu.getElementById("BtnExportBats").remove();
}*/

}
/*const copyToClipboard = str => {
  console.log(Copie des données);
  const el = document.createElement('textarea');
  el.value = str;
  el.setAttribute('readonly', '');
  el.style.position = 'absolute';
  el.style.left = '-9999px';
  document.body.appendChild(el);
  const selected =
    document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;
  el.select();
  document.execCommand('copy');
  document.body.removeChild(el);
  if (selected) {
    document.getSelection().removeAllRanges();
    document.getSelection().addRange(selected);
  }
};*/


function ajouterMenuExports() {
  mutationObserver.disconnect();
  if (pageJeu.getElementById("Menu")) {
    var tag = document.createElement("div");
    tag.className = "Menu";

    var html = `
    <img class='MenuIMG' src='https://celestus.gagn-associates.com/images/Export-onglet%20general.png' />
    <div class='MenuBulle2'>Exportations</div>
      <div class='MenuBulle'>
        <a onmousehover='MenuSound()' href='javascript:void(exportColonies());'>
          <div class='MenuListe'>
            <img class='MenuIMG2' src='https://celestus.gagn-associates.com/images/Colo%20export.png' />Export colonies
          </div>
        </a>

        <a onmousehover='MenuSound()' href='javascript:void(exportSecteurs());'>
          <div class='MenuListe'>
            <img class='MenuIMG2' src='https://celestus.gagn-associates.com/images/secteur%20export.png' />Export secteurs
          </div>
        </a>

        <a onmousehover='MenuSound()' href='javascript:void(exportTechnologies());'>
          <div class='MenuListe'>
            <img class='MenuIMG2' src='https://celestus.gagn-associates.com/images/tech%20export.png' />Export technologies
          </div>
        </a>

        <a onmousehover='MenuSound()' href='javascript:void(exportSpecs());'>
          <div class='MenuListe'>
            <img class='MenuIMG2' src='https://celestus.gagn-associates.com/images/specialisation%20export.png' />Export spécialisations
          </div>
        </a>

        <a onmousehover='MenuSound()' href='javascript:void(exportEntretien());'>
          <div class='MenuListe'>
            <img class='MenuIMG2' src='https://celestus.gagn-associates.com/images/entretien%20export.png' />Export production
          </div>
        </a>

        <a onmousehover='MenuSound()' href='javascript:void(exportPontons());'>
          <div class='MenuListe'>
            <img class='MenuIMG2' src='https://celestus.gagn-associates.com/images/ponton%20export.png' />Export pontons
          </div>
        </a>
      

        <a onmousehover='MenuSound()' href='javascript:void(exportVaisseauxEmpire());'>
          <div class='MenuListe'>
            <img class='MenuIMG2' src='https://celestus.gagn-associates.com/images/vaisseaux%20export.png' />Export vaisseaux
          </div>
        </a>


      </div>
    </div>`;

    tag.innerHTML = html;
    pageJeu.getElementById("Menu").appendChild(tag);

    console.log("Boutons d'exportation ajoutés.");
  }

}

if (dansIframe) {
  console.log("Page secondaire détectée.");
  fenetre = window;
  pageJeu = document;
  chargerFonctions(fenetre);
  fenetre.Planetes = (GM_getValue("Planetes")) ? JSON.parse(GM_getValue("Planetes")) : [];
  ajouterMenuExports();
  chargerModifications();

  startObserve();
}
else {
  console.log("Page jeu principal détectée.");
  //fenetre = frames[0].window;
  //pageJeu = frames[0].document;
  //startObserve();
  setTimeout(function () {
    fenetre = frames[0].window;
    pageJeu = frames[0].document;
    chargerFonctions(fenetre);
    fenetre.Planetes = (GM_getValue("Planetes")) ? JSON.parse(GM_getValue("Planetes")) : [];
    //console.log(fenetre.Planetes);
    ajouterMenuExports();
    chargerModifications();
    startObserve();



  }, 10000);
}






//}





//frames[0].$("#contenu").bind("DOMSubtreeModified",function(){console.log("test")});

//delegate