// ==UserScript==
// @name          Uncrap the Hotmail (ver 1.0b)
// @namespace     tag:mhb.ee,2009:olev
// @description   I log in to Hotmail to read mail, not search the web with Bing, watch ads and have all sorts of crap everywhere. When I log out of Hotmail, I see no reason to visit the Bing website. This script takes the crap away.
// @include       http://*.mail.live.com/default.aspx*
// @include       http://*.mail.live.com/mail/TodayLight.aspx*
// @include       http://*.mail.live.com/mail/InboxLight.aspx*
// @include       http://*.mail.live.com/mail/EditMessageLight.aspx*
// @include       http://*.mail.live.com/mail/SendMessageLight.aspx*
// @include       http://www.bing.com/
// ==/UserScript==


// first off, when I log in to read my mail, I want to see my mail box, not some "news"
if(document.URL.search(/http:\/\/.*\.mail\.live\.com\/(mail\/TodayLight|default)\.aspx.*/) != -1){
  document.getElementsByTagName('body')[0].style.display = 'none';
  top.location.replace('http://mail.live.com/?rru=inbox');
}
else if(document.URL == 'http://www.bing.com/' && GM_getValue('unBingIt', false)){
  document.getElementsByTagName('body')[0].style.display = 'none';
  GM_setValue('unBingIt', false);
  top.location.replace('http://www.hotmail.com/');
}
else {
  var sentCss = document.URL.search(/http:\/\/.*\.mail\.live\.com\/mail\/SendMessageLight\.aspx.*/) != -1 ? ', #MainContent *' : '';
  // at the mail box page, I don't care for ads, unrelated search boxes, etc
  var styleElement = document.createElement('style');
  styleElement.type = 'text/css';
  styleElement.media = 'screen';
  var cssCode = '\
html { border-top: 20px solid white; }\
#contentRight #MainContent { margin-right: 20px; }\
#AfterMoveToPipe, #PrintMessages, #HeaderContainer, #SkyscraperContent, \
#RadAd_Skyscraper, #Alt_Toolbar, #_button, #contentLeft .Bottom, \
#toolbarContainer .ToolbarHelpLink, #folderListContainer .ManageLink, \
.ContentFolderList .ManageLink, #contentLeft .AddAccount'+sentCss+' { display: none; }\
#uxp_ftr_control/*, #contentLeft h1*/ { visibility: hidden; }\
#MainContent .SmcHeaderContainer * { display: block; }\
/*#contentLeft { background: url(\'http://olev.mhb.ee/uncrap-hotmail/logo.png\') top left no-repeat; }*/\
.LeftNav li a:hover { border: 1px solid #D3D3D3; background-color: #F6F6F6; }\
.MenuItemSelected, .LeftNav li.FolderItemSelected a, li.IndexListSelected a, .ToolbarItem.ToolbarIcon a.Selected { border: 1px solid #A4A4A4; background-color: #E9E9E9; }\
.SortSearchContainer, .PaginationContainer { background-color: #F6F6F6; background-image: none; }\
.c_hf { border-color: #D3D3D3; }\
.SmcHeaderContainer, #toolbarContainer { border-width: 0px; }\
.SmcMainContentContainer .SmcHeaderContainer .SmcHeaderColor { color: #000; }';
  styleElement.appendChild(document.createTextNode(cssCode));
  document.getElementsByTagName("head")[0].appendChild(styleElement);

  // sent mail message stripped of other crap (like ads, what's the news etc)
  if(document.URL.search(/http:\/\/.*\.mail\.live\.com\/mail\/SendMessageLight\.aspx.*/) != -1 && document.getElementById('MainContent')){
    var e = document.getElementById('MainContent').getElementsByTagName('div');
    for(var i=0; i<e.length; i++)
      if(e[i].className && e[i].className == 'SmcHeaderContainer')
        var element = e[i];
    if(element){
      do{
        element.style.display = 'block';
        element = element.parentNode;
      } while(element != document.getElementById('MainContent'));
    }
  }

  // adding logout link (in place of the options menu)
  if(document.getElementById('_button')){
    var element = document.createElement('a');
    element.className = 'c_ml';
    element.href = '/mail/logout.aspx';
    element.addEventListener('click', function(){
      window.setTimeout(GM_setValue, 0, 'unBingIt', true);
      return false;
    }, false);
    element.target = '_top';
    element.style.paddingRight = '20px';
    element.appendChild(document.createTextNode(document.getElementById('c_signout').lastChild.nodeValue));
    document.getElementById('_button').parentNode.appendChild(element);
  }
}

