Sunday, February 6, 2011

Google Remove Junk


// ==UserScript==
// @name           Google Remove Junk
// @version 0.4.1
// @namespace      
// @description  Remove scripts, prefetch, sponsors, link tracking and spam links from Google.
// @include http://google.tld/*
// @include http://www.google.tld/*
// @include http://groups.google.tld/*
// @include https://encrypted.google.tld/*

// ==/UserScript==

var $grj = {
 init : function(){
  this.RemoveScripts();
  this.ExpandSidebarMenu();
  this.RemovePrefetch();
  this.RemoveSponsors();
  this.RemoveLinkTracking();
  this.RemoveBadLinks();
  this.RemoveScripts();
  setTimeout(
   function(){ 
    $grj.RemoveScripts(); 
    setTimeout(function(){ $grj.RemoveScripts(); }, 1000);
   }
  , 500);
 },

 qs : function(Query_String_Name,url) {
  var i, pos, argname, argvalue, queryString, pairs;
  if(!url){url = location.href}
  queryString = url.substring(url.indexOf("?")+1);
  pairs = queryString.split("&");
  for (i = 0; i < pairs.length; i++) { 
   pos = pairs[i].indexOf('='); 
    if (pos == -1) {
     continue; 
    }
   argname = pairs[i].substring(0,pos);
   argvalue = pairs[i].substring(pos+1); 
   if (argname == Query_String_Name) {
    // return unescape(argvalue.replace(/\+/g, " "));
    return argvalue;
   }
  }
  return false;
 },
 
 RemoveSponsors : function(){
  var mbEnd = $('mbEnd') ;  
  if (mbEnd){
   mbEnd.parentNode.removeChild(mbEnd) ; 
  }
  var tads = $('tads');
  if(tads){
   tads.parentNode.removeChild(tads) ;      
  }
  var rhsa = $('rhsa');
  if(rhsa){
   rhsa.parentNode.removeChild(rhsa) ; 
  }
 },
 
 RemoveScripts : function(){
  var xjsd = $('xjsd');
  if(xjsd){
   xjsd.parentNode.removeChild(xjsd) ; 
  }
  var xjsi = $('xjsi');
  if(xjsi){
   xjsi.parentNode.removeChild(xjsi) ;
  }
  var all_scripts = document.getElementsByTagName('script');
  for (var i = 0 , k=all_scripts.length; i< k ; i++){
   var script = all_scripts[i];
   if(script){
    script.parentNode.removeChild(script) ;
   }
  }  
 },
 
 ExpandSidebarMenu : function(){
  var ms = $('ms');
  if(ms){
   ms.setAttribute('class', 'open');
   
   if(document.location.href.match(/^https:\/\/encrypted/)){   
    var ul_hidden_modes = $('ms').getElementsByTagName('ul')[0];
    ul_hidden_modes.innerHTML +='<li class="mitem"><a class="q qs" href="http://www.google.com/images?q='+this.qs('q')+'" target="_blank"><span style="background-position: -40px -130px;" class="micon"></span>Images</a></li>';
   }
   
  }
 },
 
 RemoveLinkTracking : function(){
  var all_a = document.getElementsByTagName('a');
  for (var i = 0, k=all_a.length; i< k; i++){
   var a = all_a[i];
   a.removeAttribute('onclick');
   a.removeAttribute('onmousedown');
   if(a.href.match(/\/url\?q=/)){
    var q = this.qs('q',a.href);
    a.href = decodeURIComponent(q.replace(/\+/g, '%20'));
    }
   else if(a.href.match(/\/url\?url=/)){
    var url = this.qs('url',a.href);
    a.href = decodeURIComponent(url.replace(/\+/g, '%20'));
    }
  }
  
  var elements = ['div', 'li', 'span'];
  for (var i = 0, k=elements.length; i< k; i++){
   var element = document.getElementsByTagName(elements[i]);
   for (var x = 0, y=element.length; x< y; x++){
    var el = element[x];
    el.removeAttribute('onclick');
    el.removeAttribute('onmousedown'); 
   }
  }
   
 },
  
 RemoveBadLinks : function(){
  var subform = $('subform_ctrl');
  if(subform){
   var subform_link_div = subform.getElementsByTagName('div')[0];
   subform_link_div.innerHTML += ' &nbsp;<a id="exclude_sites_link_grj">Exclude sites</a>';
   $('exclude_sites_link_grj').setAttribute('style', 'color: #F20000; cursor: pointer');
   
   subform.innerHTML += '<div id="exclude_sites_content_grj"><span style="color: #000000;">Type a <b style="color: #F20000;">comma-separated</b> list of sites you want to exclude from your search results:<br/></span><input type="text" id="exclude_sites_text_grj"/><input type="button" value="save" id="exclude_sites_button_grj"/></div>';  
   
   $('exclude_sites_content_grj').setAttribute('style', 'display: none; padding: 5px 0 10px 0 ; margin-top: 5px; border-bottom: 1px dotted #CCCCCC;');
   $('exclude_sites_text_grj').setAttribute('style','height: 21px; width: 85%; padding: 3px; border: 1px solid #CCCCCC; font-weight: bold; font:18px arial,sans-serif; ');
   $('exclude_sites_button_grj').setAttribute('style','border:medium none; color:#000000; cursor:pointer; font:15px arial,sans-serif; height:30px; background:url("/images/srpr/nav_logo13.png") no-repeat scroll 0 0 transparent; overflow:hidden; background-position:center bottom; ');    
      
   $('exclude_sites_link_grj').addEventListener('click', function(){ 
    $('exclude_sites_content_grj').style.display = $('exclude_sites_content_grj').style.display == 'none' ? '' : 'none';      
   }, false );
   $('exclude_sites_link_grj').addEventListener('mouseover', function(){ 
    $('exclude_sites_link_grj').setAttribute('style', 'color: #F20000; cursor: pointer; text-decoration: underline;');     
   }, false );
   $('exclude_sites_link_grj').addEventListener('mouseout', function(){ 
    $('exclude_sites_link_grj').setAttribute('style', 'color: #F20000; cursor: pointer');     
   }, false );
   
   $('exclude_sites_text_grj').value = $grj.trim(GM_getValue('exclude_sites_text_grj', '')); 
   
   $('exclude_sites_button_grj').addEventListener('click', function(){
    $('exclude_sites_text_grj').value = $grj.trim($('exclude_sites_text_grj').value)
    GM_setValue('exclude_sites_text_grj', $('exclude_sites_text_grj').value);
    $('exclude_sites_content_grj').style.display = 'none';
   }, false );
   
   var page_forms = document.forms ; 
   for (var i = 0 ; i < page_forms.length ; i++){
    page_forms[i].addEventListener('submit', function(page_form){
     return function(){
      var inputs = page_form.getElementsByTagName('input');
      for(var k = 0; k < inputs.length; k++){
       if(inputs[k].getAttribute('name') == 'q'){
        var excluded_sites_txt = ' ', excluded_sites_array = $grj.trim(GM_getValue('exclude_sites_text_grj', '')).split(',') ;
        if($grj.trim(excluded_sites_array[0]) != ''){
         for(var p = 0, m = excluded_sites_array.length; p < m ; p++){
          var site =  $grj.trim(excluded_sites_array[p]);
          if(site != '' && !(inputs[k].value).match('-site:'+site)){
           excluded_sites_txt += '-site:'+site+' '; 
          }
         }
         excluded_sites_txt = $grj.trim(excluded_sites_txt);
         inputs[k].value += ' '+excluded_sites_txt ; 
        }        
        break ;
       }    
      }
     };
    }(page_forms[i]) , false );
   }    
  }
 },
 
 trim : function(str,longtxt){
  var txt = '';
  if(str){
   if(longtxt){
    str = str.replace(/^\s\s*/, ''); var ws = /\s/, i = str.length;
    while (ws.test(str.charAt(--i)));
    txt += str.slice(0, i + 1);
   }
   else{
    txt += str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
   }
  }
  return txt ; 
 },
 
 RemovePrefetch : function(){
  var all_links = document.getElementsByTagName('link');
  for (var i = 0 , k=all_links.length; i< k ; i++){
   var link = all_links[i];
   if(link.rel == 'prefetch'){
    link.parentNode.removeChild(link) ;
   }
  } 
 }
 
}

function $(id, doc) { if (!doc) { doc = document ; } if(doc.getElementById(id)) { return doc.getElementById(id) } else { return false } ; }

(function(){
 $grj.init();
})();

0 comments:

Post a Comment