dealabs css

dealabs css et filtres

// ==UserScript==
// @name        dealabs css
// @name:fr     dealabs css
// @version     0.26
// @author      ced
// @namespace   https://www.dealabs.com/
// @description	   dealabs css et filtres
// @description:fr dealabs css et filtres
// @icon        data:image/x-icon;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDwD4V+GX8X+P8ARNGFvJPbz3KfahGdpWAMDK2e2Ezz64qx8YfCbeCviDq2jpbywWaSF7PzG3F4G+427v6fUEdqq+ENX0vS45XvIblbwOGiubeRkdB7FSCKteO/FI8TxWrXeo6tqN1bjy45b+UOY4+SVBAySSc5PPFacnu810YKs+fk5H69D//Z
// @supportURL  https://github.com/cednieb/dealabs_css_2025
// @include     https://www.dealabs.com*
// @exclude     https://www.dealabs.com/submission*
// @grant       GM_addStyle
// @license     MIT
// @run-at document-end
// ==/UserScript==
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var vAddMyAdultFilter      = 1;
var vAddmyVideoGamesFilter = 0;
var vAddmyFurnitureFilter  = 0;
var vAddmySsdFilter        = 0;
var vAddmyComponentFilter  = 0;
/////////////////////////////////
// css en dur
//var vAddMyAdultFilterCss      = 1;
//var vAddmyVideoGamesFilterCss = 1;
//var vAddmyFurnitureFilterCss  = 1;
//var vAddmySsdFilterCss        = 1;
//var vAddmyComponentFilterCss  = 1;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const MyMenu = [ 
                "/nouveaux","Tous","/assets/img/ico_707ed.svg#plus"
            /* ,"/hot","Tendance","/assets/img/ico_707ed.svg#trending" // tendance = bons plans */
               ,"/top","Les + hot","/assets/img/ico_707ed.svg#flame"
               ,"/highlights","Pour vous","/assets/img/ico_707ed.svg#people" 
               ];  

const MyMenuDiscussions_Prefix_URL     = 'https://www.dealabs.com/groupe';
const MyMenuDiscussions_Prefix_URL_IMG = 'https://static-pepper.dealabs.com/thread_groups/raw/avatar';

const MyMenuDiscussions = [                                                                                                  
 "/offres-permanentes","/2204_2/re/38x38/qt/70/2204_2.jpg","Offres permanentes"
,"/les-demandes-de-deals","/22_1/re/38x38/qt/70/22_1.jpg","Les demandes de deals"
,"/blabla-parlez-de-tout-et-de-rien","/23_1/re/38x38/qt/70/23_1.jpg","Blabla"
,"/achats-ventes-echanges-estimations-dons","/28_1/re/38x38/qt/70/28_1.jpg","Achats / Ventes"

,"/le-laboratoire-high-tech-informatique","/33_1/re/38x38/qt/70/33_1.jpg","High-tech & informatique"
,"/le-laboratoire-des-gamers","/32_1/re/38x38/qt/70/32_1.jpg","Gaming"
,"/vos-avisdemandes-sur-les-marchands-et-leurs-offres","/27_1/re/38x38/qt/70/27_1.jpg","Les marchands et leurs offres"
,"/le-laboratoire-audiovisuel","/34_1/re/38x38/qt/70/34_1.jpg","Image, son, photo"

,"/vos-astuces-pour-faire-des-economies","/24_1/re/38x38/qt/70/24_1.jpg","Astuces pour économiser"  
,"/mieux-se-connaitre-presentez-vous","/18_1/re/38x38/qt/70/18_1.jpg","Présentez-vous !"
,"/le-laboratoire-des-voyages-loisirs","/31_1/re/38x38/qt/70/31_1.jpg","Voyages & loisirs"
,"/annonces-officielles","/54_1/re/38x38/qt/70/54_1.jpg","Annonces officielles"

,"/limport-sites-avis-questions-langues","/21_1/re/38x38/qt/70/21_1.jpg","Achats à l'étranger"
,"/concours","/30_1/re/38x38/qt/70/30_1.jpg","Concours"
,"/le-laboratoire-de-la-mode-beaute","/35_1/re/38x38/qt/70/35_1.jpg","Mode & beauté" 
];  
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// veiller à utiliser backticks (`) appelés guillemets inversés en français
/////////////////////////////////
var mycss1 =`
#main                                      { background-color:#707071; }                      

.listLayout                                { width:70%; max-width:unset; }  
.listLayout-main                           { width:100%; } 

div>div>#discussionHeaderPortal            { display:none; }   /* manque un menu discusssion -> cat */

div:has(> #threadListingDescriptionPortal) { display:none; }                          /* gros encart */

article                                    { border-radius:0%; } 
article.thread--expired                    { opacity:70%; }                           /* deals expirés */

.threadListCard                            { grid-template-areas : "i h b" "i h b" "i h f" ;  grid-template-columns:8.0rem 10.5rem ;  min-height:unset; } 

.threadListCard-image                      { padding = 0.2rem 1rem; background-color:var(--bgBaseSecondary); } 

.threadListCard-header                     { grid-column:unset; display:flex; flex-direction:column; padding:unset; justify-content: space-between; ; }  
.vote-box                                  { margin: 0.5rem 0.25rem 0      0.25rem; }
.chip                                      { margin: 0      0.25rem 0.5rem 0.25rem; }  
.chip--type-default                        { background-color:white; color:black; }  
.chip--type-warning                        { background-color:#ff000011; color:red; }  
.chip--type-expired                        { background-color:white; color:red; }  
.fadeOuterEdge--r                          { box-shadow:unset; z-index: 10; }
button.cept-vote-temp                      { width:2.5rem; text-align: center; } 

.threadListCard-body                       { margin:unset; margin-top:0.5rem; }  

.threadListCard-footer                     { grid-column:unset; display:flex:; align-items:center; padding:unset; gap:0.25rem; margin:0.5rem; }   

a.threadListCard-mainButton                { border-radius:0%; } 

.threadGrid-image                          { display:none; }                         /* image à gauche dans discussions */
.threadGrid                                { padding: 0.1em 1em;}                    /* le contneneur d'une discussion */

// article:not(.thread--expired):has( a[title~="ssd" i]:not( [title~="ram" i],[href*="ram-" i] )) { background-color:#ff000011; color:red; } 
`;
/////////////////////////////////
/*
// mode une ligne à faire
//.threadListCard                          { grid-template-areas : "i b h" "i b f" }  
//.threadListCard-header                   { grid-column:unset; display:flex; flex-direction:row; padding:unset; justify-content: space-between; ; }  
// .imgframe                               { display: block; margin: auto; height: auto; max-height: 100%; width: auto; max-width: 100%; } 
// .threadListCard-image                   { padding = 0.1rem 0.1rem; } 
// threadListCard-footer                   { grid-column:unset; display:flex:; align-items:center; padding:unset; gap:0.25rem;  margin-right:0.25rem; }       
//.threadListCard-header                   { grid-column:unset;  display:flex; flex-direction:row-reverse; align-items:center; gap:0.1rem; margin:0.1rem 0.1rem 0 0; padding:unset; }  
//.threadListCard-body                     { white-space: nowrap; overflow: hidden;  text-overflow: ellipsis; margin-right:2rem; }

.threadListCard                            { grid-template-areas : "i b f h";  grid-template-columns:5.0rem 40.0rem 5.0rem 5.0rem;    } 
.threadListCard-header                     { flex-direction:column; } 
.threadListCard-footer                     { flex-direction:row; } 
.threadListCard-body                       { white-space: nowrap; overflow: hidden;  ext-overflow: ellipsis; word-break: break-word; margin-right:2rem; }
*/
/////////////////////////////////
var mycss1_not_main_discussion =` div:has(>section):has(#tour-filter) { display:none; } `; 
// #discussionHeaderPortal  .thread--discussion  .threadGrid-headerMeta  .threadGrid-footerMeta
/////////////////////////////////
var mycss2 =` .listLayout-side  { width:0%; max-width:0em; min-width:0em; } `;
/////////////////////////////////
var mycss3 =` .userHtml  { display:none; } `;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Petits filtres perso
//
///////////////////////
//
// Afin de pouvoir comparer le retour de la fonction, j'ai écrit les filtres en dur. ( désactiver par défaut, mis en commentaires à la fin )
// Probléme avec les exclusions.
// Solution:
//
// !!! Attention à la mise en page pour faciliter la lecture
// Ne jamais insérer un espace ou un retour à la ligne avant le :not() 
// Ce n'est plus la même signification en CSS
// 
// Bon exemple:
//
// article:not(.thread--expired) 
//        :has(             
//            a[title*="ssd" i]:not( [title*="msi" i],   - 
           
// Mauvais exemples:  
//
// article:not(.thread--expired) 
//        :has(             
//            a[title*="ssd" i] :not( [title*="msi" i],   -
//            
// article:not(.thread--expired) 
//        :has(             
//            a[title*="ssd" i]
//            :not( [title*="msi" i],   
// 
// !!! Veiller à bien grouper avec is()
// 
// article:not(.thread--expired) 
//        :has(
//            :is(
//               a[href*="truc"      i]
//               ,[href*="bidule"    i]
//               ,[href*="chouette"  i]
//               ,[title*="truc"     i]
//               ,[title*="bidule"   i]
//               ,[title*="chouette" i]
//               ):not(
//                     [title*="machin" i]
//                    ,[href*="machin"  i]
//                    )
//            )           
//            {
//            background-color: ...             
//
/////////////////////////////////////////////////////////////////////////
//
// Quelques couleurs #5fcdf5 #55cd95 #9bc899 #ffa500 #9bc848 #9070aa  #cd853f; #ffddda ,""
//
/////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////
//
// Un petit filtre pour ceux que çà ennuye de voir des petites culottes ou du contenu pour adulte 
//
/////////////////////////////////
var myAdultFilterCss =`
article:has(
           a[href*="soutien" i]
           )
       :has(
           a[href*="gorge" i]
           )
,    
article:has(
           a[title*="soutien" i]
           )
       :has(
           a[title*="gorge" i]
           )
,
article:has(
           a[href*="brassiere"     i],
           a[href*="tanga"         i],
           a[href*="menstruel"     i],
           a[href*="jarretelle"    i],
           a[href*="lingerie"      i],
           a[href*="culotte"       i],
           a[href*="brassiere"     i],
           a[href*="string"        i],
           a[href*="shorty"        i],
           a[href*="shorties"      i],
           a[href*="bustier"       i],
           a[href*="nuisette"      i],
           a[href*="dentelle"      i],
           a[href*="corset"        i],           
           a[href*="vibromasseur"  i],
           a[href*="sextoy"        i],           
           a[href*="masturbateur"  i],  
           a[href*="clito"         i],          
           a[href*="anal-"         i],                    
           
           a[title*="brassiere"    i],
           a[title*="tanga"        i],
           a[title*="menstruel"    i],
           a[title*="jarretelle"   i],
           a[title*="lingerie"     i],
           a[title*="culotte"      i],
           a[title*="brassiere"    i],
           a[title*="string"       i],
           a[title*="shorty"       i],
           a[title*="shorties"     i],
           a[title*="bustier"      i],
           a[title*="nuisette"     i],
           a[title*="dentelle"     i],
           a[title*="corset"       i],
           a[title*="vibromasseur" i],
           a[title*="sextoy"       i],           
           a[title*="masturbateur" i],
           a[title*="clito"        i],           
           a[title~="anal"         i]            
           )
           {
           background-color:#ffddda;           
           & .threadListCard-image                        { opacity:0%; }  
           & .threadListCard-image:hover                  { opacity:100%; }             
           & .chip--type-default , & .chip--type-warning  { background-color:#ffddda;  border:0; box-shadow:unset; color:#000000; }
           & .vote-temp , & .vote-box                     { background-color:#ffffff; }
           & .threadListCard-footer-action                { background-color:#ffffff;  border:0; box-shadow:unset; color:#000000; }     
           } 
`;  
/////////////////////////////////
// Jeux vidéos
/////////////////////////////////
var myVideoGamesFilterCss =`
article:not(.thread--expired)  
       :has(           
           a[href$="merchant-id=9"    i],
           a[href$="merchant-id=28"   i],
           a[href$="merchant-id=32"   i],
           a[href$="merchant-id=61"   i],
           a[href$="merchant-id=215"  i],
           a[href$="merchant-id=217"  i],
           a[href$="merchant-id=304"  i],
           a[href$="merchant-id=306"  i],           
           a[href$="merchant-id=1207" i],
           a[href$="merchant-id=1586" i],
           a[href$="merchant-id=1588" i],
           a[href$="merchant-id=1590" i],
           a[href$="merchant-id=1591" i],           
           a[href$="merchant-id=2157" i], 
           a[href$="merchant-id=2193" i]
           )  
,
article:not(.thread--expired) 
       :has(  
           a[href$="merchant-id=38" i]
           )  
           
           {
           background-color: #9bc848;
           & .chip--type-default , & .chip--type-warning  { background-color:#9bc848; color:#ffffff; border:0;box-shadow:unset; }
           & .vote-temp , & .vote-box                     { background-color:#ffffff; }
           & .threadListCard-footer-action                { background-color:#ffffff; color:#9bc848; border:0;box-shadow:unset; }    
           }  
`; 
/////////////////////////////////
// Mobiliers 
/////////////////////////////////
var myFurnitureFilterCss =`
article:not(.thread--expired) 
       :has(  
           a[href$="merchant-id=2087" i]
           )  
,
article:not(.thread--expired) 
       :has(
        :is(
           a[href*="vasagle"   i],
            [href*="songmics"  i],
            [href*="meuble"    i],
            [href*="étagère"   i],
            [href*="bureau"    i],
            [href*="chaise"    i],
            [href*="chariot"   i],
            [href*="banc"      i],
            [href*="buffet"    i],
            [href*="fauteuil"  i],
            [href*="matelas"   i],
            [href*="-table"    i],
            [href~="lit-"      i],
           
            [title*="vasagle"  i],
            [title*="songmics" i],
            [title*="meuble"   i],
            [title*="étagère"  i],
            [title*="bureau"   i],
            [title*="chaise"   i],
            [title*="chariot"  i],
            [title*="banc"     i],
            [title*="buffet"   i],
            [title*="fauteuil" i],
            [title*="matelas"  i],
            [title~="table"    i],
            [title~="lit"      i]
           ):not(
                [title*="pc" i],
                [href*="pc" i]
                )
           )
           
           {
           background-color: #cd853f;
           & .chip--type-default , & .chip--type-warning { background-color:#cd853f; color:#ffffff; border:0;box-shadow:unset; }
           & .vote-temp , & .vote-box                    { background-color:#ffffff; } 
           & .threadListCard-footer-action               { background-color:#ffffff; color:#cd853f; border:0;box-shadow:unset; }
           }  
`; 
/////////////////////////////////
//
// Ssd 
// pas en nvme 
// pas dans un pc ...
//
/////////////////////////////////
var mySsdFilterCss =`
article:not(.thread--expired) 
       :has(  
        :is(a[href*="ssd"  i],[title~="ssd" i]):not(           
                                                   [title*="portable" i],
                                                   [title*="chromebook" i],
                                                   [title*="xbox" i],
                                                   [title*="playstation" i],
                                                   [title*="intel" i],
                                                   [title*="apple" i],
                                                   [title*="amd" i],
                                                   [title*="ryzen" i],
                                                   [title*="radeon" i],
                                                   [title*="nvidia" i],
                                                   [title*="gtx" i],
                                                   [title*="nvme" i],
                                                   [title*="ddr" i],
                                                   [title*="ram" i],
                                                   [title*="pci" i],
                                                   [title*="externe" i],
                                                   [title*="usb" i],
                                                   [href*="portable" i],
                                                   [href*="chromebook" i],
                                                   [href*="xbox" i],
                                                   [href*="playstation" i],
                                                   [href*="intel" i],
                                                   [href*="apple" i],
                                                   [href*="amd" i],
                                                   [href*="ryzen" i],
                                                   [href*="radeon" i],
                                                   [href*="nvidia" i],
                                                   [href*="gtx" i],
                                                   [href*="nvme" i],
                                                   [href*="ddr" i],
                                                   [href*="ram" i],
                                                   [href*="pci" i],
                                                   [href*="externe" i],
                                                   [href*="usb" i]
                                                   )
           )
           {
           background-color: #9bc899;
           & .chip--type-default , & .chip--type-warning { background-color:#9bc899; color:#ffffff; border:0;box-shadow:unset; }
           & .vote-temp , & .vote-box                    { background-color:#ffffff; }
           & .threadListCard-footer-action               { background-color:#ffffff; color:#9bc899; border:0;box-shadow:unset; }
           }             
`; 
/////////////////////////////////
//
// Materiel pc ...
//
// Attention au lien "sauvegarder" et au mot clé "vega"
//
/////////////////////////////////
var myComponentFilterCss =`
article:not(.thread--expired) 
       :has(  
           a[title*="2060"  i],
            [title*="3060"  i],
            [title*="4060"  i],
            [title*="3050"  i],
            [title*="4050"  i],
            [title*="ryzen" i],
            [title*="5600g" i],
            [title~="vega"  i],
            
            [href*="2060"   i],
            [href*="3060"   i],
            [href*="4060"   i],
            [href*="3050"   i],
            [href*="4050"   i],
            [href*="ryzen"  i],
            [href*="5600g"  i],
            [href*="vega"   i],
            
            [title~="ryzen" i][title~="ai" i],
            [href~="ryzen"  i][href~="ai"  i]
           )
           {
           background-color: #00aaff;
           & .chip--type-default , & .chip--type-warning { background-color:#00aaff; color:#ffffff; border:0;box-shadow:unset; }
           & .vote-temp , & .vote-box                    { background-color:#ffffff; } 
           & .threadListCard-footer-action               { background-color:#ffffff; color:#00aaff; border:0;box-shadow:unset; }
           }             
`; 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function myModifyMenu() 
{      
let chat_ul = '<ul style="margin:1rem;">';
    chat_ul += '<li style="margin-top:1rem;"><a href="https://www.dealabs.com/discussions">Discussions</a></li>';
 
for ( i=0; i<MyMenuDiscussions.length/3; i++)  
    {        
    chat_ul += '<li style="margin-top:1rem;"><img style="margin-right:1rem;" width="32px" src="'+ MyMenuDiscussions_Prefix_URL_IMG + MyMenuDiscussions[3*i+1] +'" alt="" style="vertical-align:middle;" />';
    chat_ul += '<a href="'+ MyMenuDiscussions_Prefix_URL + MyMenuDiscussions[3*i+0] +'">';
    chat_ul += MyMenuDiscussions[3*i+2] +'</a></li>';      
    }
  
    chat_ul += '<li  style="margin-top:1rem;"><img style="margin-right:1rem;" width="32px" src="'+ MyMenuDiscussions_Prefix_URL_IMG + MyMenuDiscussions[3*2+1] +'" alt="" style="vertical-align:middle;"/><a href="https://www.dealabs.com/feedback">Feedback</a></li>';  
    chat_ul += '<li  style="margin-top:1rem;"><img style="margin-right:1rem;" width="32px" src="'+ MyMenuDiscussions_Prefix_URL_IMG + MyMenuDiscussions[3*2+1] +'" alt="" style="vertical-align:middle;"/><a href="https://www.dealabs.com/discussions/httpsgreasyforkorgfrscripts526927-dealabs-css-3001223">--> Script discussion</a></li>';
    chat_ul += '<li  style="margin-top:1rem;"><img style="margin-right:1rem;" width="32px" src="https://greasyfork.org/vite/assets/blacklogo16-DftkYuVe.png" alt="" style="vertical-align:middle;"/><a href="https://greasyfork.org/fr/scripts/526927-dealabs-css">Greasyfork</a></li>';  
    chat_ul += '<li  style="margin-top:1rem;"><img style="margin-right:1rem;" width="32px" src="https://github.com/fluidicon.png" alt="" style="vertical-align:middle;"/><a href="https://github.com/cednieb/dealabs_css_2025">Github</a></li>';  
    chat_ul += '</ul>';  

var my_Div_Chat_Menu_Ul = document.createElement("div"); 
    my_Div_Chat_Menu_Ul.setAttribute('id', 'my_Div_Chat_Menu_Ul'); 
    my_Div_Chat_Menu_Ul.style.top        = "30";                                            
    my_Div_Chat_Menu_Ul.style.left       = "0";     
    my_Div_Chat_Menu_Ul.style.position   = "fixed"; 
    my_Div_Chat_Menu_Ul.style.zIndex     = "9999";
    my_Div_Chat_Menu_Ul.style.display    = "none"; 
    my_Div_Chat_Menu_Ul.style.background = "white";    
    my_Div_Chat_Menu_Ul.style.color      = "black";               
    my_Div_Chat_Menu_Ul.style.fontSize   = "18px";    
    my_Div_Chat_Menu_Ul.innerHTML = chat_ul;  
  
document.body.prepend(my_Div_Chat_Menu_Ul);   
 
var my_Div_Chat_Menu = document.createElement("div");   
    my_Div_Chat_Menu.setAttribute('id', 'my_Div_Chat_Menu');   

var zhtml  = '<a  id="chatMenu" class="space--mr-2 text--normal size--all-m space--h-2 button button--type-tag button--mode-flat">';
    zhtml += ' <span class="flex--inline boxAlign-ai--all-c">';
    zhtml += '  <svg width="16" height="16" class="space--mr-1 color--graphic-TranslucentSecondary icon icon--tag icon-d--1">';
    zhtml += '   <use xlink:href="/assets/img/ico_632f5.svg#comments"></use>';
    zhtml += '  </svg> + ';
    zhtml += ' </span>';   
    zhtml += '</a>';
    my_Div_Chat_Menu.innerHTML = zhtml;    
  
document.getElementsByClassName("subNav--light")[0].children[0].children[0].children[0].children[0].children[4].after(my_Div_Chat_Menu);   
document.getElementById("chatMenu").addEventListener('click', function() { 
                                                                         var myChatMenu = document.getElementById("my_Div_Chat_Menu_Ul");        
                                                                         if ( myChatMenu.style.display == "none" )
                                                                            myChatMenu.style.display = "block";
                                                                         else  
                                                                            myChatMenu.style.display = "none";
                                                                         });   
//////////// Incruster la seconde ligne de menu dans la premiere  
for ( i=0; i<MyMenu.length/3; i++)  
    {
    var mydiv = document.createElement("div");   
        mydiv.setAttribute('class', 'scrollBox-item flex--shrink-0');    
    let zhtml  = '<a href="'+MyMenu[3*i+0]+'" class="space--mr-2 text--normal size--all-m space--h-2 button button--type-tag button--mode-flat">';
        zhtml += ' <span class="flex--inline boxAlign-ai--all-c">';
        zhtml += '  <svg width="16" height="16" class="space--mr-1 color--graphic-TranslucentSecondary icon icon--tag icon-d--1">';
        zhtml += '   <use xlink:href="'+MyMenu[3*i+2]+'"></use>';
        zhtml += '  </svg> '+MyMenu[3*i+1];
        zhtml += ' </span>';
        zhtml += '</a>';
        mydiv.innerHTML = zhtml;  
      
    document.getElementsByClassName("subNav--light")[0].children[0].children[0].children[0].children[0].children[1].after(mydiv); 
    }   
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Le menu sur une ligne
// ! Verifier que le menu existe, ce n'est pas le cas sur toutes les pages
// id="threadListingDescriptionPortal" pour les deals , menu présent
// id="discussionHeaderPortal pour discussions , menu présent
// id="groupHeaderPortal" pour https://www.dealabs.com/groupe/high-tech https://www.dealabs.com/groupe/jeux-pc  , menu absent
// id="UserProfileHeader" page de profil, alertes ... , menu absent
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var nbLoop = 0; // Pour arreter le setInterval

if ( !document.getElementById("UserProfileHeader") )  //if(document.getElementById("threadListingDescriptionPortal")||document.getElementById("discussionHeaderPortal")) 
   {                                                             
   var existCondition = setInterval(function() {          
                                               nbLoop++;
                                               if (  nbLoop == 40 )  
                                                  clearInterval(existCondition);     
     
                                               if ( document.getElementsByClassName("subNav--light").length > 0 
                                                    && document.getElementsByClassName("subNav--light")[0].children[0].children[0].children[0].children[0]   
                                                  )
                                                  {     
                                                  clearInterval(existCondition);   
                                                  myModifyMenu();  
                                                  }   
                                               }, 250 );
   } 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function addMyCSS(mycss)
{  
     if ( typeof GM_addStyle  != "undefined" ) GM_addStyle(mycss);
else if ( typeof PRO_addStyle != "undefined" ) PRO_addStyle(mycss);
else if ( typeof addStyle     != "undefined" ) addStyle(mycss);
else 
   {
   var node = document.createElement("style");
   node.type = "text/css";
   node.appendChild(document.createTextNode(mycss));
   var heads = document.getElementsByTagName("head");     
   if ( heads.length > 0 ) heads[0].appendChild(node);      
   else document.documentElement.appendChild(node); // no head yet, stick it whereever   
   }
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var myAdultFilter = 
[  
 [   
  ["brassiere","tanga","menstruel","jarretelle","lingerie","culotte","string","shorty","shorties","bustier","nuisette","dentelle","corset","anal"
   ,"Vibromasseur","clito","masturbateur",["soutien","gorge"],"soutien-gorge"]              
  , 10 
  ,"adult"
 ] 
];
/////////////////////////////////
var myVideoGamesFilter = 
[   
 [   
  [9,28,32,61,215,217,304,306,1207,1586,1588,1590,1591,2157,2193] 
  ,"#ffa500"
  ,"merchant-id"
 ]   
  
,
  
 [   
  38 
  ,"#9bc848"
  ,"merchant-id"
 ]  

,
  
 [   
  ["xbox"] 
  ,"#9bc848"
  ,"keywords"
 ]   
];
/////////////////////////////////
var mySsdFilter = 
[ 
 [
  ["ssd"] 
  ,"#9bc899"
  ,"keywords-exclude1" 
  ,["portable","chromebook","xbox","playstation","intel","apple","amd","ryzen","radeon","nvidia","gtx","nvme"
              ,"ddr","ram","pci","externe","usb",["mini","pc"]]  
 ]    
];
/////////////////////////////////
var myComponentFilter = 
[ 
// [  ["3060","4060","3050","4050","4070","ryzen","5600",["ryzen","ai"],"vega",["mini","pc"]] ,"#00aaff","keywords"] 
 [  
  ["3060","4060","3050","4050","4070","ryzen","5600",["ryzen","ai"],"vega"] 
  ,"#00aaff"
  ,"keywords"
 ] 

,
 // Par exemple : (portable et apple) mais pas (pro et argent)   [["apple","portable"]]  ! =  ["apple","portable"] (portable ou apple)
 [   
  [["apple","portable"]]
  ,"#0033ff"
  ,"keywords-exclude"
  ,[["pro","argent"]]   
 ]   
];
/////////////////////////////////
var myFurnitureFilter = 
[ 
 [
 2087
 ,"#cd853f"
 ,"merchant-id"
 ] 
  
,
  
 [   
  ["vasagle","songmics","meuble","étagère","table","bureau","chaise","chariot","banc","buffet","fauteuil","matelas","lit"]
  ,"#cd853f"
  ,"keywords-exclude1"
  ,["pc","poubelle"]   
 ]   
];
/////////////////////////////////
var myFilters_test_exclude = 
[ 
 [   
  ["pc","portable"]
  ,"#cd853f"
  ,"keywords-exclude"
  ,[["pro","argent"]]   
 ]   
];
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function applyFilters(myWordListTemp)  
{
var myCssTemp = ''; 
if ( myWordListTemp.length > 0 )
   {
   for ( i=0; i<myWordListTemp.length; i++ )
       {    
       if ( myWordListTemp[i][2] == "adult" )
          myCssTemp += '\n'+'\n'+'article:has(';   
       else
          myCssTemp += '\n'+'\n'+'article:not(.thread--expired):has('; 
   
       //////////////////////////////// selector merchant-id ////////////////////////////////   : 
       if ( myWordListTemp[i][2] == "merchant-id" )
          if ( !(myWordListTemp[i][0] instanceof Array ))
             { 
             myCssTemp += 'a[href$="merchant-id=' +myWordListTemp[i][0]+'" i] \n';   
             }
          else
             {
             for ( j=0; j<myWordListTemp[i][0].length; j++ )
                 {                    
                 if ( j > 0 ) 
                    myCssTemp += ' , ';  
                
                 myCssTemp += 'a[href$="merchant-id=' +myWordListTemp[i][0][j]+'" i] \n'; 
                 }
             }        
       //////////////////////////////// selectors ///////////////////////////////////////////         
       if ( myWordListTemp[i][2] != "merchant-id" )
          {   
            
          if ( myWordListTemp[i][2] == "keywords-exclude1" || myWordListTemp[i][2] == "keywords-exclude" )   
             myCssTemp += '\n:is(';   // ajout de is() pour grouper         
            
          for ( j=0; j<myWordListTemp[i][0].length; j++ ) 
              { 
              if ( j == 0 )  
                 myCssTemp += 'a';
                    
              if ( j > 0 ) 
                 myCssTemp += '\n,';  
                   
              if ( myWordListTemp[i][0][j] instanceof Array === false )  
                 {  
                 myCssTemp += '[title~="'+myWordListTemp[i][0][j]+'" i]';
                 
                 if ( myWordListTemp[i][2] != "keywords-exclude1" && myWordListTemp[i][2] != "keywords-exclude" ) 
                    {
                    myCssTemp += ',';
                    myCssTemp += '[href*="'+myWordListTemp[i][0][j]+'-" i]';
                    }
                 }   
              else 
                 { 
                 if ( myWordListTemp[i][2] != "adult" && myWordListTemp[i][2] != "keywords" ) 
                    if ( j > 0 )
                       myCssTemp += '\n,'; 
                   
                 for ( k=0; k<myWordListTemp[i][0][j].length; k++ )
                     { 
                     myCssTemp += '[title~="' +myWordListTemp[i][0][j][k]+'" i]'; 
                     }  
                   
                 if ( myWordListTemp[i][2] != "keywords-exclude1" && myWordListTemp[i][2] != "keywords-exclude" ) 
                    { 
                    myCssTemp += ',';
                      
                    for ( k=0; k<myWordListTemp[i][0][j].length; k++ )
                        { 
                        myCssTemp += '[href*="' +myWordListTemp[i][0][j][k]+'-" i]'; 
                        }  
                    }
                 }  
              }     
          ///////////////////////////// partie exclude  ////////////////////////////////   
          if ( myWordListTemp[i][2] == "keywords-exclude1" || myWordListTemp[i][2] == "keywords-exclude" )  
             {               
             myCssTemp += '):not(\n';   //myCssTemp += ':not(\n'; !!!! pas  myCssTemp += '\n:not(';  
               
             for ( j=0; j<myWordListTemp[i][3].length; j++ ) 
                 { 
                 if ( myWordListTemp[i][2] == "keywords-exclude1" ) // rajout if
                    if ( j > 0 )
                       myCssTemp += '\n,';   
                   
                 if ( myWordListTemp[i][3][j] instanceof Array === false )  
                    { 
                    if ( myWordListTemp[i][2] == "keywords-exclude") console.log( myWordListTemp[i][2]+" array pas trouvé");  // rajout if
                      
                    myCssTemp += '[title~="'+myWordListTemp[i][3][j]+'" i]'; 
                      
                    if ( myWordListTemp[i][2] == "keywords-exclude1" ) // rajout if
                       myCssTemp += '\n,'; 
                      
                    myCssTemp += '[href*="'+myWordListTemp[i][3][j]+'-" i]';  
                    }
                 else
                    {
                    if ( myWordListTemp[i][2] == "keywords-exclude") console.log( myWordListTemp[i][2]+" array trouvé");  // rajout if
                      
                    for ( k=0; k<myWordListTemp[i][3][j].length; k++ )
                        {      
                        myCssTemp += '[title~="' +myWordListTemp[i][3][j][k]+'" i]'; 
                        } 
  
                    myCssTemp += '\n,';
                      
                    for ( k=0; k<myWordListTemp[i][3][j].length; k++ )
                        {      
                        myCssTemp += '[href*="' +myWordListTemp[i][3][j][k]+'-" i]'; 
                        } 
                    }
                 }
              myCssTemp += ')'; 
             }      
          }    
       //////////////////////////////// Ajout du css ////////////////////////////////  
       if ( myWordListTemp[i][2] != "adult" )
          {
          // myCssTemp += '\n){\nbackground-color:'+myWordListTemp[i][1]+';\n}'; // short version  
          myCssTemp += '\n){\nbackground-color:'+myWordListTemp[i][1]+';';             
          myCssTemp += '\n& .chip--type-default , & .chip--type-warning  {background-color:'+myWordListTemp[i][1]+';  border:0;box-shadow:unset;}'; 
          myCssTemp += '\n& .vote-temp , & .vote-box {background-color:#ffffff;}'; 
          
          //////////////////////////////// Ultilisation de(s) couleur(s) supplémentaire(s) 
          if ( myWordListTemp[i].length  >= 4 && myWordListTemp[i][2] != "keywords-exclude1" && myWordListTemp[i][2] != "keywords-exclude" )  
             {
             myCssTemp += '\n& .threadListCard-footer-action {background-color:#ffffff; color:'+myWordListTemp[i][3]+'; border:0;box-shadow:unset;}'; 
             myCssTemp += '\n& .chip--type-default , & .chip--type-warning  { color:'+myWordListTemp[i][3]+'; }';    
             } 
          else
             {
             myCssTemp += '\n& .threadListCard-footer-action {background-color:#ffffff; color:'+myWordListTemp[i][1]+'; border:0;box-shadow:unset;}'; 
             myCssTemp += '\n& .chip--type-default , & .chip--type-warning  { color:#ffffff; } \n';   
             } 
          myCssTemp += '\n}';             
          } 
       //////////////////////////////// ajout du css adult ////////////////////////////////        
       if ( myWordListTemp[i][2] == "adult" )
          {
          myCssTemp += '\n)\n{\n & .threadListCard-image       {opacity:0%;} '; 
          myCssTemp +=       '\n & .threadListCard-image:hover {opacity:100%;}';           
          // test pink/skin   
          myCssTemp += '\nbackground-color:#ffddda;';              
          myCssTemp += '\n& .chip--type-default , & .chip--type-warning  {background-color:#ffddda;  border:0;box-shadow:unset;}'; 
          myCssTemp += '\n& .vote-temp , & .vote-box {background-color:#ffffff;}'; 
          myCssTemp += '\n& .threadListCard-footer-action {background-color:#ffffff; color:#000000; border:0;box-shadow:unset;}'; 
          myCssTemp += '\n& .chip--type-default , & .chip--type-warning  { color:#000000; } \n';  
          myCssTemp += '\n}';
          }          
////////////////       
       }
  }     
addMyCSS(myCssTemp); 
}   
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
addMyCSS(mycss1);
/////////////////////////////////
if ( window.location.href != "https://www.dealabs.com/discussions" && window.location.href != "https://www.dealabs.com/groupe/les-demandes-de-deals" )
    addMyCSS(mycss1_not_main_discussion);
/////////////////////////////////
if ( window.location.href.indexOf("https://www.dealabs.com/search") < 0 && window.location.href.indexOf("https://www.dealabs.com/groupe") < 0 )
   {
   addMyCSS(mycss2);   // Réduire les div sur les côtés
   }
/////////////////////////////////
if (    window.location.href.indexOf("dealabs.com/highlights") > 0
     || window.location.href == "https://www.dealabs.com/bons-plans"  //  window.location.href = url car les deals https://www.dealabs.com/bons-plans/*
     || window.location.href.indexOf("dealabs.com/top") > 0
     || window.location.href.indexOf("dealabs.com/hot") > 0
     || window.location.href.indexOf("dealabs.com/nouveaux") > 0
     || window.location.href.indexOf("dealabs.com/search?q=") > 0  
     || window.location.href.indexOf("/keyword-alarms") > 0  
     || window.location.href == "https://www.dealabs.com"
     || window.location.href == "https://www.dealabs.com/"
     || window.location.href.indexOf("dealabs.com/?page=") > 0  
   ) 
   {
   addMyCSS(mycss3); // Cacher la description    
   
   /*
   // Filtres en dur désactivés 
   //
   // if ( vAddMyAdultFilterCss      == 1 ) addMyCSS(myAdultFilterCss);
   // if ( vAddmyVideoGamesFilterCss == 1 ) addMyCSS(myVideoGamesFilterCss);
   // if ( vAddmyFurnitureFilterCss  == 1 ) addMyCSS(myFurnitureFilterCss);
   // if ( vAddmySsdFilterCss        == 1 ) addMyCSS(mySsdFilterCss);
   // if ( vAddmyComponentFilterCss  == 1 ) addMyCSS(myComponentFilterCss);
   //
   */
      
   if ( vAddMyAdultFilter      == 1 ) applyFilters(myAdultFilter);
   if ( vAddmyVideoGamesFilter == 1 ) applyFilters(myVideoGamesFilter);
   if ( vAddmyFurnitureFilter  == 1 ) applyFilters(myFurnitureFilter);
   if ( vAddmySsdFilter        == 1 ) applyFilters(mySsdFilter);
   if ( vAddmyComponentFilter  == 1 ) applyFilters(myComponentFilter);   
     
   }  
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////