Unfuck google search button order

Reorder Google search tabs to 'Images, Videos, News, Maps'.

  1. // ==UserScript==
  2. // @name Unfuck google search button order
  3. // @namespace Unfuck_google_search_button_order
  4. // @description Reorder Google search tabs to 'Images, Videos, News, Maps'.
  5. // @include /^https?:\/\/www.google.[a-z.]{1,8}\/search*/
  6. // @version 3.20160202
  7. // @grant none
  8. // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
  9. // @require https://greasyfork.org/scripts/5392-waitforkeyelements/code/WaitForKeyElements.js?version=19641
  10. // ==/UserScript==
  11.  
  12. waitForKeyElements("#hdtb-msb", meh());
  13.  
  14. function meh()
  15. {
  16. var buttonInsides = document.getElementsByClassName("hdtb-mitem");
  17.  
  18. var lang =
  19. [
  20. ['Images','Képek'],
  21. ['Videos','Videók'],
  22. ['News','Hírek'],
  23. ['Maps','Térkép'],
  24. ['Books','Könyvek'],
  25. ['Apps','Alkalmazások']
  26. ];
  27.  
  28. var buttons = new Array(lang.length);
  29.  
  30. for (var i = 0; i<buttonInsides.length; ++i)
  31. {
  32. var text;
  33. if (buttonInsides[i].className.indexOf("hdtb-msel") > 0) //this is the active button
  34. text = buttonInsides[i].innerHTML;
  35. else
  36. text = buttonInsides[i].children[0].innerHTML;
  37.  
  38. for (var j = 0; j<lang.length; ++j)
  39. {
  40. if (lang[j].indexOf(text) != -1)
  41. {
  42. buttons[j] = buttonInsides[i];
  43. }
  44. }
  45. }
  46.  
  47. var more = document.getElementById("hdtb-more");
  48.  
  49. for (i = buttons.length-1; i>=0; --i)
  50. {
  51. if (buttons[i] !== undefined) //in case a button doesn't show up
  52. $(buttons[i]).insertAfter(buttonInsides[0]);
  53. }
  54. }