MediaWiki:Common.js

From Unforgotten Realms Wiki
Revision as of 20:21, 4 May 2017 by imported>Pillowkeeper
Jump to navigationJump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */


function replace(){

var cards = "";
$.ajax({
    url: "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20%3D%20%22http%3A%2F%2Furealms.com%2Fcache%2Fcarddata.js%22",
    dataType: "xml",
    success: function(data) {
        var body = data.getElementsByTagName("body")[0];
        var xmlText = new XMLSerializer().serializeToString(body);
    		cards = xmlText.substring(xmlText.indexOf("["), xmlText.indexOf("]"));
cards = cards + "]";
  cards = JSON.parse(cards);
  
  var colorList = {
accessory: "#51336d",
attribute: "#a1a1a1",
class: "#044274",
companion: "#03566d",
companionskill: "#027190",
item: "#827882",
race: "#266f1f",
rules: "#c35200",
boss: "#bf4040",
legendary: "#9a4204",
lore: "#9166ba",
treasure: "#bd9d06"
}


var regex = /\[{(.*?)}\]/g;
var match = regex.exec($("#content").html());
while (match != null) {
var id = "";
var color = ""
   var query = match[1];
var title = query.substring(0, query.indexOf("/") - 1);
var subtitle = query.substring(query.indexOf("/") + 2, query.length);

for(var i = 0; i < cards.length; i++) {
if(cards[i].subtitle.toLowerCase() == subtitle.toLowerCase() && cards[i].title.toLowerCase() == title.toLowerCase()) {
id = cards[i].id;
color = colorList[cards[i].type];
break;
}
}

var replacer = "<a id=\"cards\" style=\"color:" + color + "\" href = \"http:\/\/urealms.com/cards#" + id + "\">"+ query + "</a>";
$("#content li, p").each(function(){
if($(this).is(":contains(" + match[0] +")")){
var data = $(this).text();
var rtext = data.replace(match[0], replacer);
$(this).html(rtext);
}
});    

match = regex.exec($("#content").html());

    }
  
}
});

}

var path = window.location.pathname;
if(path != "/index.php") {
replace();
}

//Sidebar Social Icon Management
var panel = document.getElementById("mw-panel");
var line1 = document.createElement("hr");
line1.id = "line1";
line1.className = "line";
panel.appendChild(line1);

var container = document.createElement("div");
container.id = "container";

var link1 = document.createElement("a");
link1.href = "http://live.urealms.com/";
var image1 = document.createElement("img");
image1.id = "image1";
image1.className = "links";
image1.src = "https://wiki.urealms.com/images/b/b0/Website_Icon.png";
image1.width = "32";
image1.height = "32";
link1.appendChild(image1);
container.appendChild(link1);

var link2 = document.createElement("a");
link2.href = "https://www.twitch.tv/urealms";
var image2 = document.createElement("img");
image2.id = "image2";
image2.className = "links"
image2.src = "https://wiki.urealms.com/images/3/3e/Twitch_Icon.png";
image2.width = "32";
image2.height = "32";
link2.appendChild(image2);
container.appendChild(link2);

var link3 = document.createElement("a");
link3.href = "https://www.youtube.com/user/BruceWillakers";
var image3 = document.createElement("img");
image3.id = "image3";
image3.className = "links"
image3.src = "https://wiki.urealms.com/images/d/d2/Youtube_Icon.png";
image3.width = "32";
image3.height = "32";
link3.appendChild(image3);
container.appendChild(link3);

var link4 = document.createElement("a");
link4.href = "https://www.patreon.com/brucewillakers";
var image4 = document.createElement("img");
image4.id = "image4";
image4.className = "links"
image4.src = "https://wiki.urealms.com/images/e/e6/Patreon_Icon.png";
image4.width = "32";
image4.height = "32";
link4.appendChild(image4);
container.appendChild(link4);

var sheet = document.createElement('style')
sheet.innerHTML = ".links {display: inline-block; margin: 3px; border: 2px solid #443924; border-radius: 5px; -webkit-transition: .25s ease-in-out;} .links:hover { border: 2px solid #877147;} #container {text-align: center; } .line { border: 1px solid #443924; } .wikiButton {-webkit-transition: .25s ease-in-out;} .wikiButton:hover { -webkit-filter: opacity(60%);}";
container.appendChild(sheet);

var line2 = document.createElement("hr");
line2.id = "line2";
line2.className = "line";
container.appendChild(line2);

panel.appendChild(container);

//Main Sidebar Management
 $("#p-Coes_Quest-label").text("Coe's Quest");

 $("#p-URealms-label").nextAll(".body:first").show();
 $("#p-Coes_Quest-label").nextAll(".body:first").hide();
 $("#p-Community-label").nextAll(".body:first").hide();
 $("#p-Wiki-label").nextAll(".body:first").show();
 $("#p-tb-label").nextAll(".body:first").hide();

 for (var i = 0; i < $("#p-URealms-label, #p-Coes_Quest-label, #p-Wiki-label, #p-tb-label, #p-Community-label").length; i++) {
   if ($("#p-URealms-label, #p-Coes_Quest-label, #p-Wiki-label, #p-tb-label, #p-Community-label").next(".body").eq(i).is(":visible")) {
     $("#p-URealms-label, #p-Coes_Quest-label, #p-Wiki-label, #p-tb-label, #p-Community-label").eq(i).prepend("&#9662;");
   } else {
     $("#p-URealms-label, #p-Coes_Quest-label, #p-Wiki-label, #p-tb-label, #p-Community-label").eq(i).prepend("&#9656;");
   }
 }

 $("#p-URealms-label, #p-Coes_Quest-label, #p-Wiki-label, #p-tb-label, #p-Community-label").click(function() {

   if ($(this).text().charAt(0) == "▾") {
     var string = $(this).text();
     var newString = string.replace("▾", "▸");
     $(this).text(newString);
   } else {
     var string = $(this).text();
     var newString = string.replace("▸", "▾");
     $(this).text(newString);
   }

   $(this).nextAll(".body:first").slideToggle();
 });