Apec.fr sans spam SSII

Supprimme les annonces des SSII sur le site de l'Apec

  1. // ==UserScript==
  2. // @name Apec.fr sans spam SSII
  3. // @description Supprimme les annonces des SSII sur le site de l'Apec
  4. // @namespace http://userscripts.org/scripts/show/157778
  5. // @include http://*.apec.fr/*
  6. // @grant GM_setValue
  7. // @grant GM_getValue
  8. // @grant GM_deleteValue
  9. // @version 1.6
  10. // @require http://code.jquery.com/jquery-2.1.0.js
  11. // ==/UserScript==
  12.  
  13. var blockedBoites = new Array(
  14. /^MALTEM CONSULTING GROUP/i,
  15. /^PROSERVIA/i,
  16. /^6EME SENS TECHNOLOGY/i,
  17. /^KENT$/i,
  18. /^CLESYS/i,
  19. /^THALES SERVICES/i,
  20. /^INFORMATIS TECHNOLOGY SYSTEM/i,
  21. /^MATEN/i,
  22. /^INDETEC/i,
  23. /^SOPRA GROUP/i,
  24. /^ALTEN ITC/i,
  25. /^ALTEN( +|$)/i,
  26. /^GLOBAL TECHNOLOGIES/i,
  27. /^AGH CONSULTING/i,
  28. /^IBM/i,
  29. /^Capgemini/i,
  30. /^Atos Origin/i,
  31. /^Logica/i,
  32. /^HP$/i,
  33. /^Accenture/i,
  34. /^Sopra Group/i,
  35. /^Steria/i,
  36. /^CSC$/i,
  37. /^Thales CIS/i,
  38. /^GFI Informatique/i,
  39. /^Bull/i,
  40. /^Docapost/i,
  41. /^Altran/i,
  42. /^Alten/i,
  43. /^Akka Technologies/i,
  44. /^Neurones/i,
  45. /^Open$/i,
  46. /^Astek/i,
  47. /^Spie Communications/i,
  48. /^Devoteam/i,
  49. /^Osiatis/i,
  50. /^NextiraOne/i,
  51. /^T-Systems/i,
  52. /^SII$/i,
  53. /^SCC$/i,
  54. /^Dell/i,
  55. /^Tessi$/i,
  56. /^CS Communication & Systemes/i,
  57. /^Euriware/i,
  58. /^Assystem/i,
  59. /^Adecco/i,
  60. /^APX$/i,
  61. /^Xerox/i,
  62. /^Business & Decision/i,
  63. /^SQLI/i,
  64. /^Wipro/i,
  65. /^Econocom/i,
  66. /^Overlap Groupe/i,
  67. /^Solucom/i,
  68. /^Alti$/i,
  69. /^Kurt Salmon/i,
  70. /^Aubay/i,
  71. /^NCR$/i,
  72. /^Infotel/i,
  73. /^Apside/i,
  74. /^Beijaflore/i,
  75. /^Telindus/i,
  76. /^Tibco/i,
  77. /^Micropole-Univers/i,
  78. /^Ausy/i,
  79. /^Team Partners Group/i,
  80. /^Its Group/i,
  81. /^Keyrus/i,
  82. /^Unisys/i,
  83. /^Fujitsu/i,
  84. /^Consort NT/i,
  85. /^Computacenter/i,
  86. /^Aptus/i,
  87. /^Sodifrance/i,
  88. /^ESR$/i,
  89. /^Cognitis Group/i,
  90. /^Acti/i,
  91. /^TCS$/i,
  92. /^Wincor Nixdorf/i,
  93. /^Groupe Helice/i,
  94. /^Eurogiciel/i,
  95. /^Segula Technologies/i,
  96. /^SunGard Data Systems/i,
  97. /^Feel Europe Groupe/i,
  98. /^Ares$/i,
  99. /^Viseo/i,
  100. /^Proservia/i,
  101. /^Viveris/i,
  102. /^Solutions 30/i,
  103. /^Vision IT/i,
  104. /^Prodware/i,
  105. /^Umanis/i,
  106. /^Prosodie/i,
  107. /^Maltem Consulting/i,
  108. /^Aedian/i,
  109. /^EffiTIC/i,
  110. /^Safran Engineering Services/i,
  111. /^Northgate IS/i,
  112. /^Oresys/i,
  113. /^Logware/i,
  114. /^Oxya/i,
  115. /^Infosys/i,
  116. /^Degetel groupe/i,
  117. /^Hardis/i,
  118. /^Eryma/i,
  119. /^Airial Conseil/i,
  120. /^TRSB Groupe/i,
  121. /^Groupe Cella/i,
  122. /^Soft Computing/i,
  123. /^Valtech/i,
  124. /^AFD Technologies/i,
  125. /^Neo-Soft/i,
  126. /^Dimension Data/i,
  127. /^Adneom/i,
  128. /^EXPERT LINE/i,
  129. /^NETXP/i,
  130. /^ARTEMYS/i,
  131. /^GROUPE ESR/i,
  132. /^CYCLAD FRANCE/i,
  133. /^ITEM SERVICES/i,
  134. /^OBJECTWARE/i,
  135. /^EXTIA$/i,
  136. /^SIA PARTNERS$/i,
  137. /^LCC FRANCE S\.A\.R\.L\.$/i,
  138. /^IKOS$/i,
  139. /^GROUPE ON-X$/i,
  140. /^PANDA SERVICES$/i,
  141. /^STRATHOM$/i,
  142. /^INTITEK$/i,
  143. /^DAVIDSON CONSULTING$/i,
  144. /^ACTHOM CONSEIL ET INGENIERIE$/i,
  145. /^IENA CONSULTING$/i,
  146. /^SOGETI FRANCE$/i,
  147. /^KAORI SAS$/i,
  148. /^GENIOUS SYSTEMES$/i,
  149. /^YSANCE$/i,
  150. /^ABAKUS$/i,
  151. /^HR TEAM$/i,
  152. /^SAPIENS CONSULTING$/i,
  153. /^SEXTANT SOLUTIONS INFORMATIQUES$/i,
  154. /^INTRINSEC$/i,
  155. /^AKKA I & S$/i,
  156. /^METANEXT$/i,
  157. /^THANIS$/i,
  158. /^TO B SERVICES$/i,
  159. /^SYNCHRONE$/i,
  160. /^PROGELOG$/i,
  161. /^OSIRES$/i,
  162. /^BLUTE@MS TECHNOLOGY$/i,
  163. /^ANSON MCCADE$/i,
  164. /^PEARL IT CONSULTING$/i,
  165. /^ANTARES IT$/i,
  166. /^MGI CONSULTANTS$/i,
  167. /^SAS EOLEN$/i,
  168. /^OPEN WIDE$/i,
  169. /^CHALLENGE2MEDIA \(C2M\)$/i,
  170. /^GROUPAGORA$/i,
  171. /^AVANGUARD$/i,
  172. /^SILICOM$/i,
  173. /^ALYOTECH ENGINEERING$/i,
  174. /^LYBELIS$/i,
  175. /^NEWRUN$/i,
  176. /^ACCELITE$/i,
  177. /^3S INFORMATIQUE$/i,
  178. /^MATIS SI$/i,
  179. /^FEDUCIA$/i,
  180. /^QUICK SOURCE$/i,
  181. /^TAIX SAS$/i,
  182. /^INGCOM$/i,
  183. /^SUNAPSIS$/i,
  184. /^CLARITEAM SA$/i,
  185. /^I-TRACING$/i,
  186. /^SYNOPSIA INGENIERIE$/i,
  187. /^INTEGRALE IP$/i,
  188. /^ARISMORE$/i,
  189. /^NEXTON CONSULTING$/i,
  190. /^T-T CONSULTING$/i,
  191. /^IDNA$/i,
  192. /^HELPLINE$/i,
  193. /^SGUI$/i,
  194. /^FISH EYE TECHNOLOGIES$/i,
  195. /^FHM SOLUTIONS FRANCE$/i,
  196. /^AXONES$/i,
  197. /^R2E CONSEIL$/i,
  198. /^FINAXYS$/i,
  199. /^ID2 GROUPE$/i,
  200. /^DCS EASYWARE$/i,
  201. /^SBP$/i,
  202. /^CAT AMANIA$/i,
  203. /^AMARIS$/i,
  204. /^AFERSYS$/i,
  205. /^SQUAD$/i,
  206. /^MF CONSULTING$/i,
  207. /^SAS MCNEXT$/i,
  208. /^OPENBRIDGE$/i,
  209. /^AVISTO$/i,
  210. /^MODIS FRANCE$/i,
  211. /^QUARTZ-INGENIERIE$/i,
  212. /^PROTECTIC$/i,
  213. /^INATIS$/i,
  214. /^TREFLE INGENIERIE$/i,
  215. /^AKKA I & S$/i,
  216. /^QUANTIC ETUDES$/i,
  217. /^SIPROJ$/i,
  218. /^PARTENOR$/i,
  219. /^ATOS INTEGRATION SAS$/i,
  220. /^OMNILOG$/i,
  221. /^TALEA$/i,
  222. /^CELLA INFORMATIQUE$/i,
  223. /^L' INFORMATIQUE COMMUNICANTE$/i,
  224. /^DEGETEL GROUP$/i,
  225. /^GREEN CONSEIL$/i,
  226. /^NOUVELI$/i,
  227. /^ADENIUM SAS$/i,
  228. /^MATIS TECHNOLOGIES$/i,
  229. /^ERES TECHNOLOGIE$/i,
  230. /^COMTIS$/i,
  231. /^IMPROVEUS$/i,
  232. /^ABS TECHNOLOGIES$/i,
  233. /^OZITEM$/i,
  234. /^CORAUD$/i,
  235. /^ALYOTECH$/i,
  236. /^ON-X$/i,
  237. /^GROUPE SOFT COMPANY$/i,
  238. /^AXILEO$/i,
  239. /^CTS$/i,
  240. /^ATOS A2B/i,
  241. /^INFOSPEC$/,
  242. /^SPIE$/,
  243. /^M PLANET$/,
  244. /^AKEBIA$/,
  245. /^PARITEL TELECOM$/,
  246. /^CELAD$/,
  247. /^ALYOTECH CONSULTING$/,
  248. /^KP2I$/,
  249. /^PHINEO$/,
  250. /^ACIAL$/,
  251. /^INVIVOO$/,
  252. /^IBSI$/,
  253. /^SAVANE$/,
  254. /^ALTER SOLUTIONS$/,
  255. /^FORSITEC$/,
  256. /^STEEPCONSULT SA$/,
  257. /^GALLAN CONSULTING$/,
  258. /^AXEL IT$/,
  259. /^SNAISO$/,
  260. /^LEXSI$/,
  261. /^FREE EXPERT$/,
  262. /^UNIWARE GLOBAL SERVICES$/,
  263. /^4ICOM$/,
  264. /^ABASE SAS$/,
  265. /^AMD CONSULTING$/,
  266. /^CASTELIS$/,
  267. /^ATHEOS$/,
  268. /^GROUPE ELCIMAI$/,
  269. /^AMD CONSEIL$/,
  270. /^LOGFI$/,
  271. /^EXPERIS IT$/,
  272. /^DRIMS$/,
  273. /^SIBIO$/,
  274. /^CNS COMMUNICATIONS$/,
  275. /^AKKA I & S$/,
  276. /^FRAMEIP$/,
  277. /^SMILE$/,
  278. /^EXPECTRA$/,
  279. /^INCKA$/,
  280. /^INFACT FRANCE$/,
  281. /^ODESYS$/,
  282. /^CGI$/,
  283. /^LINCOLN SA$/,
  284. /^CONSULTAKE$/,
  285. /^AVANISTA$/,
  286. /^VITAM$/,
  287. /^AMESYS$/,
  288. /^NEOVITY$/,
  289. /^TECHNO 5$/,
  290. /^KEREVAL$/,
  291. /^ELSYS DESIGN$/,
  292. /^SOGETI HIGH TECH$/,
  293. /^ALTER DEFENSE$/,
  294. /^ORNESS$/,
  295. /^IN SITU$/,
  296. /^EXL GROUP$/,
  297. /^SELESCOPE$/,
  298. /^MALLYANCE$/,
  299. /^CISIF$/,
  300. /^LOGAXONE$/,
  301. /^PRIME IT$/,
  302. /^DIADEMYS$/,
  303. /^STUDEC$/,
  304. /^CLARANS CONSULTING$/,
  305. /^DATA BASE FACTORY$/,
  306. /^DGE INTERIM$/,
  307. /^ETRALI$/,
  308. /^QUANTIC$/,
  309. /^DELETEC$/,
  310. /^S'TEAM MANAGEMENT$/,
  311. /^SOGETREL$/,
  312. /^CONSORT FRANCE$/,
  313. /^EVA GROUP$/,
  314. /^COMPUTER FUTURES SOLUTIONS$/,
  315. /^INTERDATA$/,
  316. /^MANAGEMENT CONSEIL INGENIERIE$/,
  317. /^KEY CONSULTING$/,
  318. /^ATLANTIC INGENIERIE$/,
  319. /^NETAPSYS CONSEIL$/,
  320. /^GESER-BEST$/,
  321. /^IT LINK SYSTEM$/,
  322. /^IT LINK$/,
  323. /^KACILEO$/,
  324. /^NTT CORPORATE$/,
  325. /^PRO IT CONSEIL$/,
  326. /^TALEND S\.A\.$/,
  327. /^ACT'M ADVISORS$/,
  328. /^EPI ETUDES & PROJETS INDUSTRIELS$/,
  329. /^BT SERVICES$/,
  330. /^D-FI SERVICES$/,
  331. /^NEO SOFT SERVICES$/,
  332. /^SEA TPI$/,
  333. /^VENEDIM$/,
  334. /^SAFARI TECHNOLOGIES$/,
  335. /^EUROPARTNER FRANCE$/,
  336. /^HN SERVICES$/,
  337. /^MANAGEMENT AND BUSINESS ASSOCIATES$/,
  338. /^ESR - GROUPE OSIATIS$/,
  339. /^KLEE$/,
  340. /^SAVANE CONSULTING$/,
  341. /^ARROW ECS$/,
  342. /^DG CONSEILS$/,
  343. /^CRISTAL SOLUTIONS$/,
  344. /^2SB$/,
  345. /^CONSEILS ET SYSTEMES INFORMATIQUES$/,
  346. /^F. INICIATIVAS$/,
  347. /^AMESYS CONSEIL$/,
  348. /^ACCESS ETOILE$/,
  349. /^INGIMA$/,
  350. /^ACENSI SAS$/,
  351. /^ABSYS CYBORG$/,
  352. /^COGITEAM$/,
  353. /^INFOG$/,
  354. /^AKKA INGENIERIE PRODUIT$/,
  355. /^MEILLEURE GESTION$/,
  356. /^ELANZ$/,
  357. /^CS SYSTEMES D'INFORMATION$/,
  358. /^BAW$/,
  359. /^SAS SOLLAN FRANCE$/
  360. );
  361.  
  362. var blockedDesc = new Array(
  363. /\bConseil en Technologies\b/i,
  364. /\bconseil et l'ingénierie\b/i,
  365. /\bConseil en informatique\b/i,
  366. /\bcabinets? de conseil\b/i,
  367. /\bcabinets? indépendant de conseil\b/i,
  368. /\bSociétés? d'Ingénierie\b/i,
  369. /\bsociétés? de services?\b/i,
  370. /\bSociétés? de conseil\b/i,
  371. //\bsociété de Conseil en informatique\b/i,
  372. //\bsociété de conseil et d'ingénierie informatique\b/i,
  373. //\bSociété de Conseil et de Service en Ingénierie Informatique\b/i,
  374. //\bSociété de Services? en Ingénierie Informatique\b/i,
  375. /\bEntreprises? de Services? du Numérique\b/i,
  376. /\bESN\b/i,
  377. //\bintégrateur de solutions\b/i,
  378. /\bintégrateur d'infrastructure\b/i,
  379. /\bintegrateur Grands Comptes\b/i,
  380. //\best un integrateur\b/i,
  381. /\bSSII\b/i,
  382. /[ée]diteurs? (français )?(de )?logiciels?\b/i,
  383. /[ée]diteurs? (de )?progiciels et \b/i,
  384. /[ée]diteurs? (de )?solutions\b/i,
  385. /\bintégrateurs? de solutions applicatives\b/i,
  386. /\bintégrateur spécialisé\b/i,
  387. /\bintégrateur de solutions\b/i,
  388. /\bspécialisée? dans l'intégration\b/i,
  389. /\bfournisseur de services managés\b/i,
  390. /\b[ée]ntreprise de Services du Numérique\b/i,
  391. /\b[ée]ntreprise Intégrateur\b/i,
  392. /\b[ée]diteur de solutions\b/i,
  393. /\bde services numériques\b/i,
  394. /\bdéploie pour ses clients\b/i,
  395. /\bleaders français sur le marché des télécoms\b/i,
  396. /\bFort de ses [0-9]+ consultant\b/i,
  397. //\ben tant qu'équipementier et intégrateur\b/i,
  398. /\bdes? grandes entreprises\b/i,
  399. /\bnous délivrons des projets\b/i,
  400. /\bdéploie pour ses clients des solutions d'optimisation IT\b/i,
  401. /\bpartenaire incontournable [^.]+ systèmes d'informations\b/i,
  402. /\bSolutions de Sécurité Informatique\b/i,
  403. /\baccompagnons nos clients dans la gestion de leurs systèmes d informations\b/i,
  404. /\bleaders incontestés dans les services en informatique\b/i,
  405. /\bConseil en Technologies\b/i,
  406. /\bNos équipes accompagnent les acteurs des secteurs\b/i,
  407. /\baccompagne un client\b/i,
  408. /\bmode projet auprès de nos clients\b/i,
  409. /\bprestation de service\b/i,
  410. /\baccompagner? les grands comptes\b/i,
  411. /\baccompagner? les grandes entreprises\b/i,
  412. /\baccompagner? nos clients\b/i
  413. );
  414.  
  415.  
  416. var whiteDesc = new Array(
  417. /\brecrutement\b/,
  418. /\bDirection des systèmes\b/,
  419. /\bDSI\b/,
  420. /\brecrute pour son client\b/
  421. );
  422.  
  423.  
  424.  
  425. var blockedTitle = new Array(
  426. /\bconsultant\b/i
  427. );
  428.  
  429. // Variables de titre
  430.  
  431. var theParent = document.getElementById('content');
  432. var theKids = theParent.children;
  433. var initTitle = theKids[0].innerHTML;
  434.  
  435. //var a = [];
  436. //GM_setValue("customBoites", JSON.stringify(a));
  437.  
  438. // manage cookie
  439. // GM_deleteValue("customBoites");
  440.  
  441. if(GM_getValue("customBoites")) {
  442. var customBoites = JSON.parse(GM_getValue("customBoites"));
  443. } else {
  444. var customBoites = new Array();
  445. }
  446. //blockedBoites=blockedBoites.concat(customBoites);
  447.  
  448.  
  449. function addtoGM(e) {
  450. console.log(e);
  451. var boitez=e.target.innerHTML;
  452. if(confirm("Ne plus afficher les annonces de "+boitez+" ?")) {
  453.  
  454. customBoites.push(boitez);
  455. GM_setValue("customBoites", JSON.stringify(customBoites));
  456. console.log(GM_getValue("customBoites"));
  457. //var up=e.target.parentNode.parentNode.parentNode;
  458. // up.parentNode.removeChild(up);
  459. ReplaceContentInContainer(".boxContent.offre");
  460. var rightBoite = document.createElement('div');
  461. rightBoite.innerHTML = boitez;
  462. rightBoite.addEventListener("click", removefromGM, false);
  463. rightPan.appendChild(rightBoite);
  464. }
  465. }
  466.  
  467. function removefromGM(e) {
  468. console.log(e);
  469. var boitez=e.target.innerHTML;
  470. if(confirm("Réafficher les annonces de "+boitez+" ?\n(effet après rafraichissement de la page)")) {
  471.  
  472. var idx = customBoites.indexOf(boitez); // Find the index
  473. if(idx!=-1) customBoites.splice(idx, 1); // Remove from array
  474. GM_setValue("customBoites", JSON.stringify(customBoites));
  475. console.log(GM_getValue("customBoites"));
  476. var up=e.target;
  477. up.parentNode.removeChild(up);
  478. }
  479. }
  480.  
  481. function ReplaceContentInContainer(selector) {
  482. var count_replaced=0;
  483. var nodeList = document.querySelectorAll(selector);
  484. $(selector).each(function(){ // Boite loop
  485. var jboite_h4 = $(this).find("h4").first();
  486. var boite_h4 = jboite_h4[0];
  487. if(boite_h4 && boite_h4.tagName == "H4") { // Get boite name (this = announce block, boite_h4 = company name & location, boite[1] = company name)
  488. var boite=stripTags(boite_h4.innerHTML).replace(/\s+/g," ").replace(/^ /,"").match(/^(.+) \- (.+)$/);
  489. if(boite === null && boite_h4.children[0]) {
  490. boite=new Array();
  491. boite[1]=boite_h4.children[0].innerHTML;
  492.  
  493. } else { // Make boite clickable
  494. var logtxt = boite[1];
  495. boite_h4.innerHTML=boite_h4.innerHTML.replace(/<\/?([^>]+)>/ig,""); // strip tags
  496. var btn = document.createElement('h4');
  497. var btns1 = document.createElement('span');
  498. var btns2 = document.createElement('span');
  499. btns1.addEventListener("click", addtoGM, false);
  500. var tmp =boite;
  501. var tmp2=boite[2];
  502. btns1.innerHTML=tmp[1];
  503. btns2.innerHTML=" - "+tmp2;
  504. btn.appendChild(btns1);
  505. btn.appendChild(btns2);
  506. $(btn).insertBefore(jboite_h4);
  507. jboite_h4.remove();
  508. }
  509.  
  510. // Check & disable boite based on HARD-CODED company name
  511. var broken=false;
  512. for (var j=0, len=blockedBoites.length;j<len;j++) {
  513. if(boite[1].match(blockedBoites[j])) {
  514. logtxt += " ... removed! (cause: hard-coded company blacklist)";
  515. $(this).remove();
  516. count_replaced++;
  517. broken = true;
  518. break;
  519. }
  520. }
  521. // Check & disable boite based on USER-DEFINED company name
  522. if(!broken)
  523. for (var j=0, len=customBoites.length;j<len;j++) {
  524. if(boite[1] == customBoites[j]) {
  525. logtxt += " ... removed! (cause: user-defined company blacklist)";
  526. $(this).remove();
  527. count_replaced++;
  528. broken = true;
  529. break;
  530. }
  531. }
  532.  
  533. // Check & disable boite based on HARD-CODED description
  534. if(!broken) {
  535. var annDesc = $(this).find("div.intituleForHighlight").text();
  536. for (var j=0, len=blockedDesc.length;j<len;j++) {
  537. if(annDesc.match(blockedDesc[j])) {
  538. var whitelisted = false;
  539. for (var j=0, len=whiteDesc.length;j<len;j++) {
  540. if(annDesc.match(whiteDesc[j])) {
  541. whitelisted = true;
  542. }
  543. }
  544. if(!whitelisted) {
  545. logtxt += " ... removed! (cause: suspicious sentence in description)";
  546. //$(this).remove();
  547. $(this).css("opacity", 0.25);
  548. count_replaced++;
  549. broken = true;
  550. }
  551. break;
  552. }
  553. }
  554. }
  555.  
  556. // Check & disable boite based on HARD-CODED description
  557. if(!broken) {
  558. var annTitle = $(this).find("h3").text();
  559. for (var j=0, len=blockedTitle.length;j<len;j++) {
  560. if(annTitle.match(blockedTitle[j])) {
  561. logtxt += " ... removed! (cause: suspicious sentence in title)";
  562. $(this).remove();
  563. count_replaced++;
  564. broken = true;
  565. break;
  566. }
  567. }
  568. }
  569.  
  570. console.log(logtxt);
  571.  
  572. }
  573. });
  574.  
  575. // Afficher le nombre de résultats supprimés dans le titre de page
  576.  
  577. var deletednb = count_replaced;
  578.  
  579. theKids[0].innerHTML=initTitle.replace(" correspondent à votre recherche",", "+deletednb+" supprimée"+((deletednb>1)?"s":"")+" sur cette page");
  580. return count_replaced;
  581. }
  582.  
  583. function stripTags(stringz) {
  584. return stringz.replace(/<\/?[^>]+>/g, '');
  585. }
  586.  
  587. // Lancer la suppression des annonces
  588.  
  589. ReplaceContentInContainer(".boxContent.offre");
  590.  
  591.  
  592. // Afficher la liste des entreprises bloquées par l'utilisteur
  593.  
  594. var rightPan = document.querySelectorAll(".box2Benday")[0];
  595. var rightTitle = document.createElement('div');
  596. rightTitle.innerHTML = "<b>Entreprises perso. exclues:</b><br>"
  597. rightPan.appendChild(rightTitle);
  598.  
  599. for (var i=0, len=customBoites.length;i<len;i++) {
  600. var rightBoite = document.createElement('div');
  601. rightBoite.innerHTML = customBoites[i];
  602. rightBoite.addEventListener("click", removefromGM, false);
  603. rightPan.appendChild(rightBoite);
  604. }