Wh1tebird

Google Button Fixer 1

Mar 28th, 2014
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name        Google Button Fixer
  3. // @namespace   googlebuttonfixer
  4. // @match       https://www.google.tld/*
  5. // @include     https://www.google.tld/*
  6. // @exclude     https://www.google.tld/maps/*
  7. // @require     http://code.jquery.com/jquery-latest.min.js
  8. // @version     1.1
  9. // @author      Whitebird / Bealhorm
  10. // @grant       none
  11. // ==/UserScript==
  12. // Made with love for /r/Google
  13. // Like the script? Support further development : 19X3FEyYtBF8CoDv1SyJ12UDqSvzfj95xH
  14.  
  15.  
  16. // Prmitive settings menu. (Don't use an option twice)
  17. // Options: web, images, maps, videos, news, books, apps, discussions
  18. newMainLinks = ["web", "discussions", "images", "maps", "videos", "news"]
  19. newMenu = ["books","apps"]
  20.  
  21.  
  22. var hasChanged = false;
  23. MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
  24.  
  25. var observer = new MutationObserver(function(mutations, observer) {
  26.     var i =0;
  27.     while(i < mutations.length && hasChanged === false){
  28.         if(mutations[i] !== undefined) {
  29.             if(mutations[i].target.getAttribute('class') === 'hdtb-mn-hd') {
  30.                 changeLayout();
  31.                 hasChanged = true;
  32.             }
  33.         }
  34.         i++;
  35.     }
  36. });
  37.  
  38. observer.observe(document, {
  39.   subtree: true,
  40.   attributes: true
  41. });
  42.  
  43. function changeLayout(){
  44.     var url = window.location.href;
  45.     var isPrimary = false;
  46.     if(url.indexOf("tbm=") < 0)
  47.         url += "&tbm=dsc"
  48.     else{
  49.         var urlArray = url.split("&")
  50.         for (var i = 0; i < urlArray.length; i++) {
  51.             if(urlArray[i].indexOf("tbm=dsc") >= 0)
  52.                 isPrimary = true;
  53.             if(urlArray[i].indexOf("tbm=") >= 0)
  54.                 urlArray[i] = "tbm=dsc";
  55.         };
  56.         url = urlArray.join("&");
  57.     }
  58.  
  59.     var discussionsLink = $('<a />', {
  60.         "class": 'q qs',
  61.         "text": 'Discussions',
  62.         "href": url
  63.     })
  64.  
  65.     var discussions = $('<div />', {
  66.         "class": 'hdtb_mitem'
  67.     }).append(discussionsLink);
  68.    
  69.     if(isPrimary)
  70.         discussions.addClass("hdtb_msel")
  71.  
  72.     $("#hdtb_msb").append(discussions);
  73.  
  74.     var mainLinks = $("#hdtb_msb .hdtb_mitem").detach();
  75.     var moreMenu = $("#hdtb_more").detach();
  76.     var searchTools = $("#hdtb_tls").detach();
  77.  
  78.     placeLinks(newMainLinks, $("#hdtb_msb"), mainLinks);
  79.     placeLinks(newMenu, $("#hdtb_more_mn"), mainLinks);
  80.     $("#hdtb_msb").eq(0).css("margin-left", "130px");
  81.     if(newMenu.length > 0)
  82.         moreMenu.appendTo($("#hdtb_msb"));
  83.     searchTools.appendTo($("#hdtb_msb"));
  84. }
  85.  
  86. function placeLinks( linkArray, target, mainLinks){
  87.  i = 0;
  88.  
  89.  while(linkArray.length > 0){
  90.     var href = $("a", mainLinks.eq(i)).attr("href");
  91.     var testParam = href;
  92.     if(href === undefined)
  93.         testParam = window.location.href;
  94.     if(testParam.indexOf("tbm=isch") >= 0 && linkArray[0] === "images"){
  95.         mainLinks.eq(i).appendTo(target);
  96.         linkArray.splice(0, 1);
  97.         i = 0;
  98.     }
  99.     else if(testParam.indexOf("tbm=vid") >= 0 && linkArray[0] === "videos"){
  100.         mainLinks.eq(i).appendTo(target);
  101.         linkArray.splice(0, 1);
  102.         i = 0;
  103.     }
  104.     else if(testParam.indexOf("tbm=nws") >= 0 && linkArray[0] === "news"){
  105.         mainLinks.eq(i).appendTo(target);
  106.         linkArray.splice(0, 1);
  107.         i = 0;
  108.     }
  109.     else if(testParam.indexOf("tbm=bks") >= 0 && linkArray[0] === "books"){
  110.         mainLinks.eq(i).appendTo(target);
  111.         linkArray.splice(0, 1);
  112.         i = 0;
  113.     }
  114.     else if(testParam.indexOf("tbm=dsc") >= 0 && linkArray[0] === "discussions"){
  115.         mainLinks.eq(i).appendTo(target);
  116.         linkArray.splice(0, 1);
  117.         i = 0;
  118.     }
  119.     else if(testParam.indexOf("maps.google") >= 0 && linkArray[0] === "maps"){
  120.         mainLinks.eq(i).appendTo(target);
  121.         linkArray.splice(0, 1);
  122.         i = 0;
  123.     }
  124.     else if(testParam.indexOf("tbm=app") >= 0 && linkArray[0] === "apps"){
  125.         mainLinks.eq(i).appendTo(target);
  126.         linkArray.splice(0, 1);
  127.         i = 0;
  128.     }
  129.     else if(linkArray[0] === "web") {
  130.         mainLinks.eq(0).appendTo(target);
  131.         linkArray.splice(0, 1);
  132.         i = 0;
  133.     }
  134.  
  135.     i++;
  136. }
  137. }
Add Comment
Please, Sign In to add comment