NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name [2015] OGame Redesign: Planet Menus
// @description [Need to change AGO Tooltip settings or won't work properly] Puts menus in the tooltip of each planet to switch to that planet's corresponding page
// @namespace Vesselin
// @version 1.05
// @date 2012-10-18
// @author Vesselin Bontchev
// @include http://*.ogame.*/game/index.php?*page=*
// @exclude http://*.ogame.*/game/index.php?page=search*
// @exclude http://*.ogame.*/game/index.php?page=logout*
// @exclude http://*.ogame.*/game/index.php?page=buddies*
// @exclude http://*.ogame.*/game/index.php?page=payment*
// @exclude http://*.ogame.*/game/index.php?page=notices*
// @exclude http://*.ogame.*/game/index.php?page=showmessage*
// @exclude http://*.ogame.*/game/index.php?page=traderlayer*
// @exclude http://*.ogame.*/game/index.php?page=rocketlayer*
// @exclude http://*.ogame.*/game/index.php?page=searchLayer*
// @exclude http://*.ogame.*/game/index.php?page=combatreport*
// @exclude http://*.ogame.*/game/index.php?page=globalTechtree*
// @exclude http://*.ogame.*/game/index.php?page=station*&openJumpgate=1*
// ==/UserScript==
/************************************************************
*
* Need to change AGO Tooltip settings or won't work properly
*
************************************************************/
(function ()
{
// The following "if" is not really necessary but with it this script will work for Opera too
if (document.location.href.indexOf ("/game/index.php") < 0)
return;
var myFunc = (function ()
{
const reduceMenu = false; // Don't put on the menu an item pointing to the same page as the current one
const addMessages = true; // Put a menu item pointing to the message box (experimental!)
$ (document).ready (function ()
{
function initClueTips ()
{
$ ("div.smallplanet a.planetlink,a.moonlink")
.cluetip ("destroy")
.cluetip ({
width: 160,
leftOffset: 0,
showTitle: false,
sticky: true,
local: true,
arrows: true,
mouseOutClose: false,
titleAttribute: "",
closeText: ""
})
.attr ("title", "")
;
}
function firstCap (theString)
{
return theString.charAt (0).toUpperCase () + theString.slice (1);
}
var url = document.location.href;
var session = url.match (/\&session=([a-f0-9]{1,12})/i);
if (session && session.length > 1)
session = "&session=" + session [1];
else
session = "";
var menus = [
["overview", ""],
["resources", ""],
["station", ""],
["research", ""],
["shipyard", ""],
["defense", ""],
["fleet1", ""],
["galaxy", ""]
];
var version5 = false;
var version = $ ("meta[name='ogame-version']");
if (version.length)
{
version = version.attr ("content");
if (version !== undefined)
{
var versionMajor = version.split (".");
if (versionMajor.length >= 1)
{
versionMajor = parseInt (versionMajor [0], 10);
version5 = versionMajor >= 5;
}
}
}
$ ("a.menubutton span").each (function (index, element)
{
for (var i = 0; i < menus.length; i++)
{
if ((menus [i] [1] == "") && (element.parentNode.href.indexOf (menus [i] [0]) >= 0))
{
menus [i] [1] = element.textContent;
break;
}
}
});
if (addMessages)
{
var messAlert = document.getElementById ("message_alert_box");
if (messAlert == null)
messAlert = document.getElementById ("message_alert_box_default");
if (messAlert)
{
var messTitleWords = messAlert.title.replace (/[\d:]+/g, "").replace (/^\s\s*/, "").replace (/\s\s*$/, "").split (/\s+/);
menus.push (["messages", firstCap (messTitleWords [messTitleWords.length - 1].replace (/\(.+\)/, ""))]);
}
}
$ ("div.smallplanet a.planetlink,a.moonlink").each (function (index, element)
{
var cps = element.href.match (/\&cp=([\d]{1,8})/i);
if ((cps == null) || (cps.length < 2))
return true;
var cp = cps [1];
var menuId = "planetMenu" + (index + 1).toString ();
var myUl = (version5) ? "<ul>" : $ ("<ul />");
for (var i = 0; i < menus.length; i++)
{
if (reduceMenu && ((url.indexOf ("page=" + menus [i] [0]) >= 0) ||
((url.indexOf ("page=movement") >= 0) && (menus [i] [0] == "fleet1"))))
continue;
if (version5)
myUl += '<li><a href="' + "index.php?page=" + menus [i] [0] + session + "&cp=" + cp + '">' + menus [i] [1] + '</a></li>';
else
$ (myUl)
.append ($ ("<li />")
.append ($ ("<a />")
.attr ("href", "index.php?page=" + menus [i] [0] + session + "&cp=" + cp)
.append (menus [i] [1])))
;
}
if (version5)
{
myUl += "</ul>";
var title = $ (this).attr ("title") || "";
if (title.length)
title += "<hr>";
title += myUl;
$ (this).attr ("title", title);
$ (this).addClass ("tooltipCustom");
if ($ (this).hasClass ("moonlink"))
$ (this).addClass ("tooltipRight");
}
else
{
$ (element.parentNode).append ($ ("<div />")
.attr ("id", menuId)
.hide ()
.append ($ ("<div />")
.attr ("id", "TTWrapper")
.addClass ("TTInner")
.css ("width", "160px")
.append ($ ("<div />")
.append (element.title.replace (/^\|/, ""))
.append ($ ("<div />")
.addClass ("body")
.css ("width", "160px")
.css ("margin-left", "-6px")
.append ($ ("<div />")
.css ("margin-left", "45px")
.css ("margin-top", "5px")
.append (myUl))))))
;
$ (element).attr ("rel", "#" + menuId);
}
});
if (! version5)
setInterval (initClueTips, 1000);
});
}).toString ();
var script = document.createElement ("script");
script.setAttribute ("type", "application/javascript");
script.textContent = "(" + myFunc + ") ();";
document.body.appendChild (script);
}) ();