Source for "Google Mail Customize"

By fobos
Has 1 other script.


// ==UserScript==
// @name          Google Mail Customize
// @description	  Customize the Google Mail User Interface as you want.
// @author        fobos
// @version       2.3.1
// @include       http://mail.google.com/*
// @include       https://mail.google.com/*
// ==/UserScript==

// The button style and wider email body code is from Cipher's Gmail Beautifier
// see http://userscripts.org/scripts/show/8212
//
// Alter background color of hovered emails : from bLfH

// Hide components ?
// Yes = 1
// No  = 0
var isHideAds		= 1; // Hides Ads ?
var isHideBookmarks	= 0; // Hide Bookmarks (top of the page) ?
var isHideLabels	= 0; // Hide Labels Menu ?
var isHideChat		= 0; // Hide Chat ?
var isHideInvites	= 1; // Hide Invites Menu ?
var isHideLowBar	= 1; // Hide Low bar menu ?
var isHideFooter	= 1; // Hide Footer ?

// Modify UI
// Yes = 1
// No  = 0
var isModifyButtons	= 1;           // Modify buttons ?
var isModifyLineBackground	= 1;   // Modify line background color ?
var lineBackgroundColor	= "#FFFFFF";   // White by default
var isModifyHoveredLineBackground = 1; // Modify bgColor of hovered Mails?
var bgColorHover        = "#C3D9FF";   // Background color of hovered emails
var isWiderEmailBody	= 1;           // Email body wider ?
var isUseInMenu		= 1;           // Display Storage Use in left menu ?


/*********************************
*****       Script       *********
*********************************/


/*********************************
*****    New Gmail Version   *****
*********************************/
window.addEventListener('load', function() {
  if (unsafeWindow.gmonkey) {
    unsafeWindow.gmonkey.load('1.0', function(gmail) {
      var footer = gmail.getFooterElement();
      // Hide footer
      if(isHideFooter) {
        footer.style.display = 'none';
      }

      var leftPanel = gmail.getNavPaneElement().childNodes[0];

      // Check if Chat is above or below Labels
      var isChatAboveLabels = false;
      var div6 = leftPanel.childNodes[6];
      if(div6.innerHTML.indexOf('">Labels</span>') > 0) {
        isChatAboveLabels = true;
      }

      if(isChatAboveLabels == true) {
        var labelModule = leftPanel.childNodes[6];
        var chatModule = leftPanel.childNodes[4];
      } else {
        var labelModule = leftPanel.childNodes[4];
        var chatModule = leftPanel.childNodes[6];
      }
      // Hide Labels
      if(isHideLabels) {
        labelModule.style.display = "none";
      }

      // Hide Chat
      if(isHideChat) {
        chatModule.style.display = "none";
      }

      var inviteModule = leftPanel.childNodes[8];
      // Hide Invites
      if(isHideInvites) {
        inviteModule.style.display = "none";
      }

      // Show Gmail Use
      if(isUseInMenu) {
        var useText = footer.getElementsByTagName("div")[0].getElementsByTagName("div")[4].firstChild.innerHTML;
        if(useText.indexOf("%") > 0) {
          var module = gmail.addNavModule('Gmail Use');
          module.setContent("<span style=\"font-size: 10pt\">"+useText+"</span>");
          var gmailUseModule = leftPanel.childNodes[10];
          var blankModule = leftPanel.childNodes[9];
          var placeToInsert = leftPanel.childNodes[3];
          leftPanel.insertBefore(blankModule, placeToInsert);
          leftPanel.insertBefore(gmailUseModule, placeToInsert);
        }
      }

      // Hide Ads
      if(isHideAds) {
        function dealWithAds() {
          if (gmail.getActiveViewType() == 'cv') {
            var rhsDiv = gmail.getConvRhsElement();
            rhsDiv.style.display = 'none';
          }
        }
        gmail.registerViewChangeCallback(dealWithAds);
      }

    });
  }
}, true);

// Modify background color of email list
if (isModifyLineBackground == 1) {
  var headTag = document.getElementsByTagName("head")[0];
  var lineStyleNode = document.createElement('style');
  lineStyleNode.type = 'text/css';

  lineStyleCode = "tr.xweT7d {background:" + lineBackgroundColor + "}";
  lineStyleNode.innerHTML = lineStyleCode;
  headTag.appendChild(lineStyleNode);
} 

// Alter bgColor of hovered mails
if (isModifyHoveredLineBackground == 1) {
  var headTag = document.getElementsByTagName("head")[0];
  var hoveredMailStyleNode = document.createElement('style');
  hoveredMailStyleNode.type = 'text/css';

  // selector: .xweT7d
  // orig. color: E8EEF7
  hoveredMailStyleCode = "tr.xweT7d:hover { background-color:" + bgColorHover + "; }";
  hoveredMailStyleNode.innerHTML = hoveredMailStyleCode;
  headTag.appendChild(hoveredMailStyleNode);
} 




/*********************************
*****    Old Gmail Version   *****
*********************************/

// Hide Ads
if (isHideAds == 1) {
    if (document.getElementById("ra") != null)	
        document.getElementById("ra").style.display ='none';

    if (document.getElementById("rb") != null)	
        document.getElementById("rb").style.display ='none';

    if (document.getElementById("rp") != null)	
        document.getElementById("rp").style.display ='none';
}

// Hide bookmarks (Google, Gmail, Calendar etc...)
if (isHideBookmarks == 1) {
    var htmlHideBookmarks = document.createElement("div");
    htmlHideBookmarks.innerHTML = '<style type="text/css">.bookmarks {display:none;}</style>';
    document.body.insertBefore(htmlHideBookmarks, document.body.firstChild);

    if (document.getElementById("gbar") != null)	
        document.getElementById("gbar").style.display ='none';
}

// Hide labels
if (isHideLabels == 1) {
    if (document.getElementById("nb_0") != null)	
        document.getElementById("nb_0").style.display ='none';
}

// Hide Invites
if (isHideInvites == 1) {
    if (document.getElementById("nb_1") != null)	
        document.getElementById("nb_1").style.display ='none';
}

// Hide Low Bar menu
if (isHideLowBar == 1) {
    var htmlHideLowBar = document.createElement("div");
    htmlHideLowBar.innerHTML = '<style type="text/css">' +
                               '#tcb{padding-top:7px;}' +
                               '#tcb div{display:none;}' +
                               '.chc{padding-top:7px;}' +
                               '.chc div{display:none;}' +
                               '</style>';
    document.body.insertBefore(htmlHideLowBar, document.body.firstChild);
}

// Hide footer
if (isHideFooter == 1) {
    if (document.getElementById("ft") != null)	
        document.getElementById("ft").style.display ='none';
}


/*********************************
*****    Modify UI look  *********
*********************************/

// Makes buttons look better
if (isModifyButtons == 1) {
    var headTag = document.getElementsByTagName("head")[0];
    var buttonsStyleNode = document.createElement('style');
    buttonsStyleNode.type = 'text/css';

    // Button style
    buttonsStyleCode = "button {" +
                       "border-style:solid; border-width:1px; border-color:#000000;" +
                       "background-color:#FFFFFF; color:#000000; cursor:pointer; height:20px;}" +
                       "button:hover {border-style:outset;}" +
                       "button:active {border-style:inset;}";
    buttonsStyleNode.innerHTML = buttonsStyleCode;
    headTag.appendChild(buttonsStyleNode);
}

// Line style
if (isModifyLineBackground == 1) {
    var headTag = document.getElementsByTagName("head")[0];
    var lineStyleNode = document.createElement('style');
    lineStyleNode.type = 'text/css';

    lineStyleCode = ".rr, .ur{background:" + lineBackgroundColor + "}";
    lineStyleNode.innerHTML = lineStyleCode;
    headTag.appendChild(lineStyleNode);
}

// Alter bgColor of hovered mails
if (isModifyHoveredLineBackground == 1) {
   var headTag = document.getElementsByTagName("head")[0];
   var hoveredMailStyleNode = document.createElement('style');
   hoveredMailStyleNode.type = 'text/css';

   // orig. color: E8EEF7
   hoveredMailStyleCode = "tr.rr:hover, tr.ur:hover { background-color:" + bgColorHover + "; }";
   hoveredMailStyleNode.innerHTML = hoveredMailStyleCode;
   headTag.appendChild(hoveredMailStyleNode);
} 

// Makes email body wider
if (isWiderEmailBody == 1) {
    if (document.getElementById("fic") != null)
        document.getElementById("fic").style.width="100%";
}

// Display storage use in left menu
if (isUseInMenu == 1) {
    footer = document.getElementById('ft');
    if( !footer ) return false;
    stringFooter = footer.innerHTML;
    stringFooter = stringFooter.slice(stringFooter.indexOf('<div class="fq"') + 15);
    stringFooter = stringFooter.slice(stringFooter.indexOf('>') + 1, stringFooter.indexOf('</div>'));
    stringFooter = stringFooter.slice(stringFooter.indexOf(' M') - 5);
    stringFooter = stringFooter.slice(stringFooter.indexOf(' ') + 1);

    stringUsedMB = stringFooter.slice(0, stringFooter.indexOf('('));
    stringUsedPercent = stringFooter.slice(stringFooter.indexOf('(') + 1, stringFooter.indexOf('%') + 1);

    stringFooter2 = stringFooter.slice(stringFooter.indexOf(')') + 1);
    stringFooter2 = stringFooter2.slice(stringFooter2.indexOf(' M') - 6);
    stringFooter2 = stringFooter2.slice(stringFooter2.indexOf(' ') + 1)
    stringTotalMB = stringFooter2.slice(0, stringFooter2.indexOf('.'));

    newElement = document.createElement('div');
    newElement.innerHTML = '<div class="nl" style="color:#0000CC;">' + stringUsedMB
				+ ' / ' + stringTotalMB + '<br />(' + stringUsedPercent + ')</div></div>';
    document.getElementById('nb_2').parentNode.insertBefore(newElement, document.getElementById('nb_2').previousSibling);
}
// End of previous version of Gmail