NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Google Custom Logo
// @namespace googlelogos
// @description Change the google logo to whatever you wish.
// @version 1.5
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js
// @grant GM_getValue
// @grant GM_setValue
// @include https://*.google.com/*
// @run-at document-end
// ==/UserScript==
//http://i.imgur.com/rCjrBAR.png
//window.addEventListener('DOMContentLoaded', applyRules)
if (!this.GM_getValue) {
this.GM_getValue=function (key,def) {
return localStorage[key] || def;
};
this.GM_setValue=function (key,value) {
return localStorage[key]=value;
};
this.GM_deleteValue=function (key) {
return delete localStorage[key];
};
}
//$("div#logocont h1 a img").attr("src","http://i.imgur.com/rCjrBAR.png").removeAttr("height").attr("width","120").css("top","0px");
function setImage(){
var imgUrl = prompt("Enter the Image Url", "");
if (imgUrl !== null) {
GM_setValue("gImgUrl", imgUrl);
changeImg(imgUrl);
}
}
function changeImg(inputimg, height=0, margL, margT){
if(height===0){
jQuery("div#hplogo a img").attr("src", inputimg).removeAttr("width");
}else{
jQuery("div#hplogo a img").attr("src", inputimg).removeAttr("width").attr("height", height).css("margin-left", margL+"px").css("margin-top", margT+"px");
}
}
function Gtoggle(){
}
function Gsize(){
var height = prompt("Please enter the image height. We will automatically size the width.", "");
if (height !== null) {
GM_setValue("gImgHeight", parseInt(height));
changeImg(GM_getValue("gImgUrl"), GM_getValue("gImgHeight"), GM_getValue("gImgMarginLeft"), GM_getValue("gImgMarginLeft"));
}
}
function Gsettings(){
$('#Gnotify').html("Press End to exit adjusting the image.");
var paddingtop = parseInt(jQuery("div#hplogo a img").css("margin-top"));
var paddingleft = parseInt(jQuery("div#hplogo a img").css("margin-left"));
document.onkeydown = function(e) {
switch (e.keyCode) {
case 37:
//alert('left');
paddingleft--;
jQuery("div#hplogo a img").css("margin-left", paddingleft);
break;
case 38:
//up
paddingtop--;
jQuery("div#hplogo a img").css("margin-top", paddingtop);
break;
case 39:
//alert('right');
paddingleft++;
jQuery("div#hplogo a img").css("margin-left", paddingleft);
break;
case 40:
//alert('down');
paddingtop++;
jQuery("div#hplogo a img").css("margin-top", paddingtop);
break;
case 35:
//exit keycodes.
$('#Gnotify').html('');
GM_setValue("gImgMarginTop", paddingtop);
GM_setValue("gImgMarginLeft", paddingleft);
document.onkeydown = null;
}
};
}
function createmenus(){
var scriptCode = new Array(); // this is where we are going to build our new script
// here's the build of the new script, one line at a time
scriptCode.push('function setG(elemid){');
scriptCode.push(' var a = document.getElementById(elemid); ');
scriptCode.push('var evt = document.createEvent(\'HTMLEvents\');');
scriptCode.push('evt.initEvent(\'click\', false, true);');
scriptCode.push(' a.dispatchEvent(evt); }');
scriptCode.push('');
var script = document.createElement('script'); // create the script element
script.innerHTML = scriptCode.join('\n'); // add the script code to it
scriptCode.length = 0; // recover the memory we used to build the script
document.getElementsByTagName('head')[0].appendChild(script);
//(document.body || document.head || document.documentElement).appendChild(script);
$("<div id='setGImg' style='visible:false'></div>").insertAfter("body");
$("<div id='Gsettings' style='visible:false'></div>").insertAfter("body");
//$("<div id='Gtoggle' style='visible:false'></div>").insertAfter("body");
$("<div id='Gsize' style='visible:false'></div>").insertAfter("body");
$("<div id='Gnotify' style='width:250px;margin:0 auto;'></div>").insertAfter("span#body");
$("<menu type=\"context\" id=\"mymenu\">"
+ "<menuitem label=\"Toggle G Image\" onclick=\"javascript:setG('Gtoggle');\"></menuitem>"
+ "<menuitem label=\"Edit Google Image\" onclick=\"javascript:setG('setGImg');\"></menuitem>"
+ "<menuitem label=\"Adjust Image Position\" onclick=\"javascript:setG('Gsettings');\"></menuitem>"
+ "<menuitem label=\"Adjust Image Size\" onclick=\"javascript:setG('Gsize');\"></menuitem>"
+ "</menu>").insertAfter("body");
$("body").attr("contextmenu", "mymenu");
}
window.addEventListener('DOMContentLoaded', function(e) { //DOMContentLoaded
//Load the defaults
var imgTagLoc = "div#hplogo a img";
GM_setValue("gImgUrlDefault", $(imgTagLoc).attr("src")); //Get the default before manipulating
if(GM_getValue("gImgUrl") === undefined){
GM_setValue("gImgUrl", GM_getValue("gImgUrlDefault")); //this is the stored variable where custom images will be saved.
}
if(GM_getValue("gImgMarginTop") === undefined){
GM_setValue("gImgMarginTop", 0); //this is the stored variable where custom images will be saved.
}
if(GM_getValue("gImgMarginLeft") === undefined){
GM_setValue("gImgMarginLeft", 0); //this is the stored variable where custom images will be saved.
}
if(GM_getValue("gImgHeight") === undefined){
GM_setValue("gImgHeight", $(imgTagLoc).attr("height")); //this is the stored variable where custom images will be saved.
}
//if(GM_getValue("gImgWidth") == undefined){
// GM_setValue("gImgWidth", $(imgTagLoc.attr("width"))); //this is the stored variable where custom images will be saved.
//}
changeImg(GM_getValue("gImgUrl"), GM_getValue("gImgHeight"), GM_getValue("gImgMarginLeft"), GM_getValue("gImgMarginTop"));
//Handle the magic
createmenus();
var b=document.getElementById("setGImg");
b.addEventListener("click", setImage, false);
var c=document.getElementById("Gsettings");
c.addEventListener("click", Gsettings, false);
var d=document.getElementById("Gtoggle");
d.addEventListener("click", Gtoggle, false);
var f=document.getElementById("Gsize");
f.addEventListener("click", Gsize, false);
}, false);