// ==UserScript==
// @name Smite Crosssite Links
// @namespace http://greasyfork.org/users/2240-doodles
// @author Doodles
// @version 1
// @description Adds Cross-Site Links to hirezstudios.com/smitegame, smite.guru and smitestuff.com
// @include *://account.hirezstudios.com/smitegame/Teams.aspx?teamId=*
// @include *://account.hirezstudios.com/smitegame/stats.aspx?player=*
// @include *://account.hirezstudios.com/smitegame/match-details.aspx*match=*
// @include *://smite.guru/stats/*
// @include *://smite.guru/match/*
// @include *://smitestuff.com/players/*
// @grant none
// @updateVersion 1
// ==/UserScript==
if (UrlContains("account.hirezstudios.com/smitegame/Teams.aspx")){
document.title = "Clan: " + document.getElementById("lblHeader").innerHTML.replace("Team Profile : ","");
}
if (UrlContains("account.hirezstudios.com/smitegame/stats.aspx")){
var playerName = document.URL.split("player=")[1].split("&")[0];
document.title = "Profile: " + playerName;
var div = document.getElementById("smiteHeaderRight");
div.setAttribute("style", "font-size:14px;margin-top:86px;");
div.appendChild(document.createTextNode("View " + playerName + " on: "));
div.appendChild(MakeLink("http://smite.guru/stats/" + playerName, playerName + " on Smite.guru", "Smite.guru", "58daff"));
div.appendChild(document.createTextNode(" | "));
div.appendChild(MakeLink("http://smitestuff.com/players/" + playerName, playerName + " on Smitestuff.com", "Smitestuff.com", "ffa264"));
var matchButton = document.getElementById("btnGoToMap");
while(matchButton != null){
var matchParent = matchButton.parentNode;
var matchId = matchButton.value.replace("Match Details","").trim();
matchParent.removeChild(matchButton);
matchParent.setAttribute("style", "width:160px;float:right;font-size:11px;text-align:right;");
matchParent.appendChild(MakeLink("http://account.hirezstudios.com/smitegame/match-details.aspx?match=" + matchId, "Match Details " + matchId, "Match Details", "FFFFFF"));
matchParent.appendChild(document.createElement("br"));
matchParent.appendChild(MakeLink("http://smite.guru/match/" + matchId, matchId + " on Smite.guru", "Smite.guru", "58daff"));
matchButton = document.getElementById("btnGoToMap");
}
var averageTd = document.getElementsByClassName("averages");
for (var i = 0; i < averageTd.length; i++){
if(averageTd[i].innerHTML.indexOf("Avg Deaths") != -1){
averageTd[i].innerHTML = "Deaths";
}
}
}
if (UrlContains("account.hirezstudios.com/smitegame/match-details.aspx")){
var matchId = document.URL.split("match=")[1].split("&")[0];
document.title = "Match: " + matchId;
var div = document.getElementById("smiteHeaderRight");
div.setAttribute("style", "font-size:14px;margin-top:86px;");
div.appendChild(document.createTextNode("View " + matchId + " on: "));
div.appendChild(MakeLink("http://smite.guru/match/" + matchId, matchId + " on Smite.guru", "Smite.guru", "58daff"));
var tableDiv = GetElementsById("div", "panDetailsTable");
for (var i = 0; i < tableDiv.length; i++){
var td = tableDiv[i].getElementsByTagName("td");
var offRow = false;
for (var j = td.length - 16; j < td.length - 5; j++){
if(offRow){
td[j].setAttribute("style", "background:linear-gradient(to bottom, #162c16 0%, #060b06 100%);");
}else{
td[j].setAttribute("style", "background:linear-gradient(to bottom, #1a2530 0%, #060a0e 100%);");
}
offRow = !offRow;
}
var accLvl = tableDiv[i].getElementsByClassName("playerTt")[0].getElementsByTagName("td");
var accLvlText = accLvl[accLvl.length - 1].innerHTML.trim();
var table = tableDiv[i].getElementsByTagName("table")[0].getElementsByTagName("tbody")[0];
var trElement = document.createElement("tr");
var tdElement = document.createElement("td");
tdElement.setAttribute("class", "detailCell");
if(accLvlText < 16){
tdElement.setAttribute("style", "background:linear-gradient(to bottom, #750101 0%, #1e0101 100%);");
}else if(accLvlText < 30){
tdElement.setAttribute("style", "background:linear-gradient(to bottom, #35350f 0%, #0b0b01 100%);");
}else{
tdElement.setAttribute("style", "background:linear-gradient(to bottom, #162c16 0%, #060b06 100%);");
}
tdElement.appendChild(document.createTextNode(accLvlText));
trElement.appendChild(tdElement);
table.insertBefore(trElement, table.childNodes[27]);
}
//alert(tableDiv[0].getElementsByTagName("table")[0].getElementsByTagName("tbody")[0].childNodes.length);
var th = document.getElementById("tableDetailsHeader").getElementsByTagName("th");
var offRow = false;
for (var i = 1; i < th.length; i++){
if(offRow){
th[i].setAttribute("style", "background:linear-gradient(to bottom, #162c16 0%, #060b06 100%);");
}else{
th[i].setAttribute("style", "background:linear-gradient(to bottom, #1a2530 0%, #060a0e 100%);");
}
offRow = !offRow;
}
var titleTable = document.getElementById("tableDetailsHeader").getElementsByTagName("tbody")[0];
var trElement = document.createElement("tr");
trElement.setAttribute("class", "detailGradient averages");
var tdElement = document.createElement("th");
tdElement.setAttribute("class", "detailCell");
tdElement.setAttribute("style", "background:linear-gradient(to bottom, #162c16 0%, #060b06 100%);");
tdElement.appendChild(document.createTextNode("Account Level"));
trElement.appendChild(tdElement);
titleTable.appendChild(trElement);
}
if (UrlContains("smite.guru/stats")){
var playerName = document.URL.split("/stats/")[1].split("/")[0].split("?")[0];
document.title = "Profile: " + playerName;
var rightBox = document.getElementsByClassName("col-sm-8 text-right")[0];
var link1 = MakeLink("http://smitestuff.com/players/" + playerName, playerName + " on Smitestuff.com", "Smitestuff.com", "000000");
link1.setAttribute("style", "color: #442200;text-decoration:underline;");
rightBox.insertBefore(link1, rightBox.childNodes[0]);
rightBox.insertBefore(document.createTextNode(" | "), rightBox.childNodes[0]);
var link2 = MakeLink("http://account.hirezstudios.com/smitegame/stats.aspx?player=" + playerName, playerName + " on Hirezstudios.com", "Hirezstudios.com", "000000");
link2.setAttribute("style", "color: #442200;text-decoration:underline;");
rightBox.insertBefore(link2, rightBox.childNodes[0]);
rightBox.insertBefore(document.createTextNode("View Profile on: "), rightBox.childNodes[0]);
}
if (UrlContains("smite.guru/match")){
var matchId = document.URL.split("/match/")[1].split("/")[0].split("?")[0];
document.title = "Match: " + matchId;
var rightBox = document.getElementsByClassName("col-sm-5 text-right")[0];
var link = MakeLink("http://account.hirezstudios.com/smitegame/match-details.aspx?match=" + matchId, matchId + " on Hirezstudios.com", "Hirezstudios.com", "000000");
link.setAttribute("style", "color: #442200;text-decoration:underline;");
rightBox.insertBefore(link, rightBox.childNodes[0]);
rightBox.insertBefore(document.createTextNode("View Match on: "), rightBox.childNodes[0]);
}
if (UrlContains("smitestuff.com/players")){
var playerName = document.URL.split("/players/")[1].split("/")[0].split("?")[0].split("#")[0];
document.title = "Profile: " + playerName;
var leftBox = document.getElementsByClassName("submenu")[0];
var liElement1 = document.createElement("li");
liElement1.appendChild(MakeLink("http://smite.guru/stats/" + playerName, playerName + " on Smite.guru", "Smite.guru", "58daff"));
leftBox.appendChild(liElement1);
var liElement2 = document.createElement("li");
liElement2.appendChild(MakeLink("http://account.hirezstudios.com/smitegame/stats.aspx?player=" + playerName, playerName + " on Hirezstudios.com", "Hirezstudios.com", "f0ff00"));
leftBox.appendChild(liElement2);
}
// =============================================================
function UrlContains(urlfragment){
return document.URL.indexOf(urlfragment) != -1;
}
function MakeLink(url, title, displayText, color){
var linkElement = document.createElement("a");
linkElement.setAttribute("title", title);
linkElement.setAttribute("href", url);
linkElement.setAttribute("style", "color: #" + color + ";");
linkElement.appendChild(document.createTextNode(displayText));
return linkElement;
}
function GetElementsById(tagNAME, elementID){ // http://stackoverflow.com/a/7936086
var elementCollection = new Array();
var allElements = document.getElementsByTagName(tagNAME);
for(i = 0; i < allElements.length; i++){
if(allElements[i].id == elementID){
elementCollection.push(allElements[i]);
}
}
return elementCollection;
}