MediaWiki:Common.js: Difference between revisions

From SCA Lochac
Jump to navigation Jump to search
No edit summary
No edit summary
 
(101 intermediate revisions by 2 users not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */


var ruleBooks = {
var ruleBooks = [
  Archery: {
    {
    label: "Target Archery / Thrown Weapon Rules",
        namespace: "Armoured_Combat",
     webVerson: "https://sca.org.nz/wiki/index.php?title=Archery:Handbook",
        label: "Armoured Combat - Fighters' Handbook",
    pdfVersion:
        banner: "https://seneschal.lochac.sca.org/files/2017/12/warfield1.jpg",
      "https://sca.org.nz/wiki/index.php?title=Category:Target_Archery_Rulebook&action=pdfbook&titlePage=Archery:Titlepage",
        logo: "https://sca.org.nz/wiki/images/f/f4/Fightershandbookcover-al.svg",
     chapters: [
        webVersion:
      [
            "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook",
         "Basic Rules",
        pdfVersion:
        "https://sca.org.nz/wiki/index.php?title=Archery:Basic_Rules"
            "https://sca.org.nz/wiki/index.php?title=Armoured_combat:pdf",
      ],
        chapters: [
      [
            ["Classes of Participant and combat",
        "Equipment standards",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Classes_of_Participant_and_Combat"],
        "https://sca.org.nz/wiki/index.php?title=Archery:Equipment_standards"
            ["Combat Authorisation Requirements",
      ],
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Combat_Authorisation_Requirements"],
      [
            ["Rules of the Lists",
        "Range safety",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Rules_of_the_Lists"],
        "https://sca.org.nz/wiki/index.php?title=Archery:Range_safety"
            ["Conventions of Combat",
      ],
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Conventions_of_Combat"],
      ["Officers", "https://sca.org.nz/wiki/index.php?title=Archery:Officers"],
            ["The Use of Weapons and Shields",
      [
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:The_Use_of_Weapons_and_Shields"],
        "Authorising as a Target Archery Marshal",
            ["Target Areas and Acknowledgement of Blows",
        "https://sca.org.nz/wiki/index.php?title=Archery:Authorising"
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Target_Areas_and_Acknowledgement_of_Blows"],
      ]
            ["Armour Requirements",
     ]
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Armour_Requirements"],
  }
            ["Melee Weapon Standards",
};
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Melee_Weapon_Standards"],
            ["Throwing Weapon Standards",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Throwing_Weapon_Standards"],
            ["Missile Weapon Standards",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Missile_Weapon_Standards"],
            ["Grievances and Sanctions",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Grievances_and_Sanctions"],
            ["Procedures for Changes to These Rules",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Procedures_for_Changes_to_These_Rules"],
            ["Glossary",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Glossary"],
            ["Change log",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Change_Log"]
        ]
     },
    {
        namespace: "Armoured_Combat",
        label: "Armoured Combat - Marshals' Handbook",
        banner: "http://seneschal.sca.org.au/files/2017/12/warfield1.jpg",
        logo: "https://sca.org.nz/wiki/images/f/f4/Fightershandbookcover-al.svg",
        webVersion:
            "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook",
        pdfVersion:
            "https://sca.org.nz/wiki/index.php?title=Armoured_combat:Marshals_pdf",
        chapters: [
            ["Introduction",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Introduction"],
            ["Structure of the Marshallate",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Structure"],
            ["Authorisation of Marshals",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Authorisation_Of_Marshals"],
            ["Inspecting Equipment",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Inspecting_Equipment"],
            ["Marshalling Combat",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Marshalling_Combat"],
            ["Combat Injury Procedures",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Combat_Injury_Procedures"],
            ["Experimental Weapons and Materials Procedures",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Experimental"],
            ["Chain of Command and Procedures for Reporting",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Chain_Of_Command"],
            ["Sanctions and Appeals",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Sanctions"],
            ["Changing These Rules",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Procedures_for_Changes_to_These_Rules"],
            ["Marshals' Handbook Change Log",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Marshals_Handbook_Change_Log"],
        ]
     },
{
        namespace: "Fencing",
        logo: "https://sca.org.nz/wiki/images/3/34/Rapierhandbook.svg",
        banner: "https://sca.org.nz/wiki/images/b/b9/Rapier_banner.jpg",
        label: "Fencing Combat Handbook",
        webVersion: "https://sca.org.nz/wiki/index.php?title=Fencing:Fencing_Combat_Handbook",
        pdfVersion:
            "https://sca.org.nz/wiki/index.php?title=Fencing:pdf",
        chapters: [
            ["Introduction",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Introduction"], 
            ["Types of fencing",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Types_Of_Fencing"],
            ["Single combat, melee and gunners",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Single_Combat_Melee_and_Gunners"],
            ["When you are allowed to fence",
                "https://sca.org.nz/wiki/index.php?title=Fencing:When_You_Are_Allowed_To_Fence"],
            ["Behaviour on the field",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Behaviour_On_The_Field"],
            ["Using weapons and defensive objects",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Using_Weapons_And_Defensive_Objects"],
            ["Taking blows",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Taking_Blows"],
            ["Protective equipment",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Protective_Equipment"],
            ["Weapons and defensive equipment",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Weapons_And_Defensive_Equipment"],
            ["Types of marshalling",
                "https://sca.org.nz/wiki/index.php?title=Types_Of_Marshalling"],
            ["Supervising combat",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Supervising_Combat"],
            ["Inspections",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Inspections"],
            ["Rules for managing incidents",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Rules_For_Managing_Incidents"],
            ["Authorisation procedures",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Authorisation_Procedures"],
            ["Safety tests",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Safety_Tests"],
            ["Marshals as officers",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Marshals_As_Officers"],
            ["Changing the rules",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Changing_The_Rules"],
            ["Glossary",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Glossary"],
            ["Concussion Recognition Tool",
                "https://sca.org.nz/wiki/index.php?title=Concussion_Recognition_Tool"],
            ["Change log and Notes",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Change_Log_and_Notes"]
            ]
    },
{
        namespace: "Archery",
        logo: "https://sca.org.nz/wiki/images/0/05/ArcheryHandbookCover.svg",
        banner: "https://sca.org.nz/wiki/images/2/21/St-Sebs-Ian-Piddington-3.jpg",
        label: "Target Archery / Thrown Weapons",
        webVersion: "https://sca.org.nz/wiki/index.php?title=Archery:Handbook",
        pdfVersion:
            "https://sca.org.nz/wiki/index.php?title=Archery:pdf",
         chapters: [
            ["Basic Rules",
                "https://sca.org.nz/wiki/index.php?title=Archery:Basic_Rules"],
            ["Equipment standards",
                "https://sca.org.nz/wiki/index.php?title=Archery:Equipment_standards"],
            ["Range safety",
                "https://sca.org.nz/wiki/index.php?title=Archery:Range_safety"],
            ["Officers",
                "https://sca.org.nz/wiki/index.php?title=Archery:Officers"],
            ["Authorising as a Target Archery Marshal",
                "https://sca.org.nz/wiki/index.php?title=Archery:Authorising"]
        ]
     }
];
 
function showToolBox() {
    var toolBox = document.getElementById("p-tb");
    toolBox.style.visibility = "visible";
}
 
var defaultBanner = "https://sca.org.nz/wiki/images/f/f2/Lochac_marshal_banner.svg";
var defaultLogo = "https://sca.org.nz/wiki/images/8/8f/Lochaclarge_320x320.png";
 
function setBannerImage(nameSpace) {
    var namespaceObj = ruleBooks.find(function (obj) { return 'namespace' in obj && obj.namespace === nameSpace });
 
    var banner;
    var logo;


function ModifySidebar(action, section, name, link) {
     if (namespaceObj === undefined) {
  try {
         banner = defaultBanner;
     switch (section) {
         logo = defaultLogo;
      case "languages":
    } else {
         var target = "p-lang";
         banner = namespaceObj.banner ? namespaceObj.banner : defaultBanner;
         break;
         logo = namespaceObj.logo ? namespaceObj.logo : defaultLogo;
      case "toolbox":
         var target = "p-tb";
        break;
      case "navigation":
         var target = "p-navigation";
        break;
      default:
        var target = "p-" + section;
        break;
     }
     }
    document.getElementById("mw-head-base").style.backgroundImage = "url(\"" + banner + "\")";
    document.getElementById("mw-head-base").style.backgroundRepeat = "no-repeat";
    document.getElementsByClassName("mw-wiki-logo")[0].style.backgroundImage = "url(\"" + logo + "\")";
  // document.getElementsByClassName("mw-wiki-logo")[0].style.backgroundRepeat = "no-repeat";
}
function buildSideMenu() {
    currentNamespace = mw.config.get("wgCanonicalNamespace");
    var navigationMenu = document.getElementById("mw-panel");
    for (var ruleBook in ruleBooks) {
        var bookObj = ruleBooks[ruleBook];


    if (action == "add") {
        var bookDiv = document.createElement("div");
      var node = document
         bookDiv.setAttribute("class", "portal");
        .getElementById(target)
         navigationMenu.insertBefore(bookDiv, document.getElementById("p-tb"));
         .getElementsByTagName("div")[0]
         .getElementsByTagName("ul")[0];


      var aNode = document.createElement("a");
        var title = document.createElement("h3");
      var liNode = document.createElement("li");


      aNode.appendChild(document.createTextNode(name));
        if ("webVersion" in bookObj) {
      aNode.setAttribute("href", link);
            var titleLink = document.createElement("a");
      liNode.appendChild(aNode);
            titleLink.setAttribute("href", bookObj.webVersion);
      liNode.className = "plainlinks";
            titleLink.appendChild(document.createTextNode(bookObj.label));
      node.appendChild(liNode);
            title.appendChild(titleLink);
    }
        } else {
            title.appendChild(document.createTextNode(bookObj.label));
        }
        bookDiv.appendChild(title);


    if (action == "remove") {
        var navBody = document.createElement("div");
      var list = document
         navBody.setAttribute("class", "body");
        .getElementById(target)
         bookDiv.appendChild(navBody);
         .getElementsByTagName("div")[0]
         .getElementsByTagName("ul")[0];


      var listelements = list.getElementsByTagName("li");
        var entries = document.createElement("ul");
        navBody.appendChild(entries);


      for (var i = 0; i < listelements.length; i++) {
         if (
         if (
          listelements[i].getElementsByTagName("a")[0].innerHTML == name ||
            bookObj.namespace === mw.config.get("wgCanonicalNamespace") &&
          listelements[i].getElementsByTagName("a")[0].href == link
            "chapters" in bookObj
         ) {
         ) {
          list.removeChild(listelements[i]);
            var chapterCount = bookObj.chapters.length;
            for (var i = 0; i < chapterCount; i++) {
                chapter = bookObj.chapters[i];
                var chapterLink = document.createElement("a");
                var chapterNumber = i + 1;
                var chapterTitle = chapterNumber + ". " + chapter[0];
                chapterLink.appendChild(document.createTextNode(chapterTitle));
                chapterLink.setAttribute("href", chapter[1]);
                var li = document.createElement("li");
                li.appendChild(chapterLink);
                entries.appendChild(li);
            }
        }
 
        if ("pdfVersion" in bookObj) {
            var pdfLink = document.createElement("a");
            pdfLink.appendChild(document.createTextNode("PDF version"));
            pdfLink.setAttribute("href", bookObj.pdfVersion);
            var h3 = document.createElement("h3");
            h3.appendChild(pdfLink);
            bookDiv.appendChild(h3);
         }
         }
      }
     }
     }
  } catch (e) {
    // let's just ignore what's happened
    return;
  }
}
}
function deleteToolBox() {
function markAsDraft() {
  var toolBox = document.getElementById("p-tb");
    var topDiv = document.getElementById("top");
  toolBox.parentNode.removeChild(toolBox);
    var h1 = document.createElement("h1");
}
    h1.style.fontsize = "xx-large";
function showToolBox() {
    h1.style.color = "red";
  var toolBox = document.getElementById("p-tb");
 
  toolBox.style.visibility = "visible";
    h1.appendChild(document.createTextNode("This page is a draft only"));
    topDiv.appendChild(h1);
 
    watermark = document.createElement("div");
    document.getElementById("content").prepend(watermark)
 
    watermark.append("Draft");
 
    watermark.style.zIndex = 0;
    watermark.style.position = "fixed";
    watermark.style.display = "block";
    watermark.style.color = "#eeeeee";
    watermark.style.fontSize = "250px";
    watermark.style.transform = "rotate(310deg)";
    watermark.style.left = "40%";
    watermark.style.fontWeight = "bolder";
 
    document.title = "Draft " + document.title;
 
 
}
}


function CustomizeModificationsOfSidebar() {
function ModifyPage() {
  var isLoggedIn;
    var isLoggedIn;
 
    try {
        isLoggedIn = mw.config.get("wgUserId");
        if (isLoggedIn === null) {
            isLoggedIn = false;
        } else {
            isLoggedIn = true;
        }
    } catch (ReferenceError) {
        isLoggedIn = false;
    }
 
    var isDraft;
    var nameSpace = mw.config.get("wgCanonicalNamespace");
 
    try {
        if (nameSpace.toLowerCase().search("draft") === -1) {
            isDraft = false;
        } else {
            isDraft = true;
        }
    } catch (Exception) {
        isDraft = false;
    }


  try {
    if (isLoggedIn) {
    isLoggedIn = wgUserId;
        showToolBox();
     isLoggedIn = true;
     }
  } catch (ReferenceError) {
    buildSideMenu();
    isLoggedIn = false;
  }


  if (!isLoggedIn) {
    if (isDraft) {
    deleteToolBox();
        markAsDraft();
  } else {
    }
     showToolBox();
     setBannerImage(nameSpace);
  }
  buildSideMenu();
}
}


jQuery(CustomizeModificationsOfSidebar);
jQuery(ModifyPage);

Latest revision as of 10:35, 23 December 2023

/* Any JavaScript here will be loaded for all users on every page load. */

var ruleBooks = [
    {
        namespace: "Armoured_Combat",
        label: "Armoured Combat - Fighters' Handbook",
        banner: "https://seneschal.lochac.sca.org/files/2017/12/warfield1.jpg",
        logo: "https://sca.org.nz/wiki/images/f/f4/Fightershandbookcover-al.svg",
        webVersion:
            "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook",
        pdfVersion:
            "https://sca.org.nz/wiki/index.php?title=Armoured_combat:pdf",
        chapters: [
            ["Classes of Participant and combat",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Classes_of_Participant_and_Combat"],
            ["Combat Authorisation Requirements",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Combat_Authorisation_Requirements"],
            ["Rules of the Lists",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Rules_of_the_Lists"],
            ["Conventions of Combat",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Conventions_of_Combat"],
            ["The Use of Weapons and Shields",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:The_Use_of_Weapons_and_Shields"],
            ["Target Areas and Acknowledgement of Blows",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Target_Areas_and_Acknowledgement_of_Blows"],
            ["Armour Requirements",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Armour_Requirements"],
            ["Melee Weapon Standards",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Melee_Weapon_Standards"],
            ["Throwing Weapon Standards",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Throwing_Weapon_Standards"],
            ["Missile Weapon Standards",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Missile_Weapon_Standards"],
            ["Grievances and Sanctions",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Grievances_and_Sanctions"],
            ["Procedures for Changes to These Rules",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Procedures_for_Changes_to_These_Rules"],
            ["Glossary",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Glossary"],
            ["Change log",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Change_Log"]
        ]
    },
    {
        namespace: "Armoured_Combat",
        label: "Armoured Combat - Marshals' Handbook",
        banner: "http://seneschal.sca.org.au/files/2017/12/warfield1.jpg",
        logo: "https://sca.org.nz/wiki/images/f/f4/Fightershandbookcover-al.svg",
        webVersion:
            "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook",
        pdfVersion:
            "https://sca.org.nz/wiki/index.php?title=Armoured_combat:Marshals_pdf",
        chapters: [
            ["Introduction",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Introduction"],
            ["Structure of the Marshallate",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Structure"],
            ["Authorisation of Marshals",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Authorisation_Of_Marshals"],
            ["Inspecting Equipment",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Inspecting_Equipment"],
            ["Marshalling Combat",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Marshalling_Combat"],
            ["Combat Injury Procedures",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Combat_Injury_Procedures"],
            ["Experimental Weapons and Materials Procedures",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Experimental"],
            ["Chain of Command and Procedures for Reporting",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Chain_Of_Command"],
            ["Sanctions and Appeals",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Sanctions"],
            ["Changing These Rules",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Procedures_for_Changes_to_These_Rules"],
            ["Marshals' Handbook Change Log",
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Marshals_Handbook_Change_Log"],
        ]
    },
 {
        namespace: "Fencing",
        logo: "https://sca.org.nz/wiki/images/3/34/Rapierhandbook.svg",
        banner: "https://sca.org.nz/wiki/images/b/b9/Rapier_banner.jpg",
        label: "Fencing Combat Handbook",
        webVersion: "https://sca.org.nz/wiki/index.php?title=Fencing:Fencing_Combat_Handbook",
        pdfVersion:
            "https://sca.org.nz/wiki/index.php?title=Fencing:pdf",
        chapters: [
            ["Introduction",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Introduction"],   
            ["Types of fencing",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Types_Of_Fencing"],
            ["Single combat, melee and gunners",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Single_Combat_Melee_and_Gunners"],
            ["When you are allowed to fence",
                "https://sca.org.nz/wiki/index.php?title=Fencing:When_You_Are_Allowed_To_Fence"],
            ["Behaviour on the field",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Behaviour_On_The_Field"],
            ["Using weapons and defensive objects",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Using_Weapons_And_Defensive_Objects"],
            ["Taking blows",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Taking_Blows"],
            ["Protective equipment",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Protective_Equipment"],
            ["Weapons and defensive equipment",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Weapons_And_Defensive_Equipment"],
            ["Types of marshalling",
                "https://sca.org.nz/wiki/index.php?title=Types_Of_Marshalling"],
            ["Supervising combat",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Supervising_Combat"],
            ["Inspections",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Inspections"],
            ["Rules for managing incidents",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Rules_For_Managing_Incidents"],
            ["Authorisation procedures",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Authorisation_Procedures"],
            ["Safety tests",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Safety_Tests"],
            ["Marshals as officers",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Marshals_As_Officers"],
            ["Changing the rules",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Changing_The_Rules"],
            ["Glossary",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Glossary"],
            ["Concussion Recognition Tool",
                "https://sca.org.nz/wiki/index.php?title=Concussion_Recognition_Tool"],
            ["Change log and Notes",
                "https://sca.org.nz/wiki/index.php?title=Fencing:Change_Log_and_Notes"]
            ]
    },
{
        namespace: "Archery",
        logo: "https://sca.org.nz/wiki/images/0/05/ArcheryHandbookCover.svg",
        banner: "https://sca.org.nz/wiki/images/2/21/St-Sebs-Ian-Piddington-3.jpg",
        label: "Target Archery / Thrown Weapons",
        webVersion: "https://sca.org.nz/wiki/index.php?title=Archery:Handbook",
        pdfVersion:
            "https://sca.org.nz/wiki/index.php?title=Archery:pdf",
        chapters: [
            ["Basic Rules",
                "https://sca.org.nz/wiki/index.php?title=Archery:Basic_Rules"],
            ["Equipment standards",
                "https://sca.org.nz/wiki/index.php?title=Archery:Equipment_standards"],
            ["Range safety",
                "https://sca.org.nz/wiki/index.php?title=Archery:Range_safety"],
            ["Officers",
                "https://sca.org.nz/wiki/index.php?title=Archery:Officers"],
            ["Authorising as a Target Archery Marshal",
                "https://sca.org.nz/wiki/index.php?title=Archery:Authorising"]
        ]
    }
];

function showToolBox() {
    var toolBox = document.getElementById("p-tb");
    toolBox.style.visibility = "visible";
}

var defaultBanner = "https://sca.org.nz/wiki/images/f/f2/Lochac_marshal_banner.svg";
var defaultLogo = "https://sca.org.nz/wiki/images/8/8f/Lochaclarge_320x320.png";

function setBannerImage(nameSpace) {
    var namespaceObj = ruleBooks.find(function (obj) { return 'namespace' in obj && obj.namespace === nameSpace });

    var banner;
    var logo;

    if (namespaceObj === undefined) {
        banner = defaultBanner;
        logo = defaultLogo;
    } else {
        banner = namespaceObj.banner ? namespaceObj.banner : defaultBanner;
        logo = namespaceObj.logo ? namespaceObj.logo : defaultLogo;
    }
    document.getElementById("mw-head-base").style.backgroundImage = "url(\"" + banner + "\")";
    document.getElementById("mw-head-base").style.backgroundRepeat = "no-repeat";
    document.getElementsByClassName("mw-wiki-logo")[0].style.backgroundImage = "url(\"" + logo + "\")";
   // document.getElementsByClassName("mw-wiki-logo")[0].style.backgroundRepeat = "no-repeat";
}

function buildSideMenu() {
    currentNamespace = mw.config.get("wgCanonicalNamespace");
    var navigationMenu = document.getElementById("mw-panel");

    for (var ruleBook in ruleBooks) {
        var bookObj = ruleBooks[ruleBook];

        var bookDiv = document.createElement("div");
        bookDiv.setAttribute("class", "portal");
        navigationMenu.insertBefore(bookDiv, document.getElementById("p-tb"));

        var title = document.createElement("h3");

        if ("webVersion" in bookObj) {
            var titleLink = document.createElement("a");
            titleLink.setAttribute("href", bookObj.webVersion);
            titleLink.appendChild(document.createTextNode(bookObj.label));
            title.appendChild(titleLink);
        } else {
            title.appendChild(document.createTextNode(bookObj.label));
        }
        bookDiv.appendChild(title);

        var navBody = document.createElement("div");
        navBody.setAttribute("class", "body");
        bookDiv.appendChild(navBody);

        var entries = document.createElement("ul");
        navBody.appendChild(entries);

        if (
            bookObj.namespace === mw.config.get("wgCanonicalNamespace") &&
            "chapters" in bookObj
        ) {
            var chapterCount = bookObj.chapters.length;
            for (var i = 0; i < chapterCount; i++) {
                chapter = bookObj.chapters[i];
                var chapterLink = document.createElement("a");
                var chapterNumber = i + 1;
                var chapterTitle = chapterNumber + ". " + chapter[0];
                chapterLink.appendChild(document.createTextNode(chapterTitle));
                chapterLink.setAttribute("href", chapter[1]);
                var li = document.createElement("li");
                li.appendChild(chapterLink);
                entries.appendChild(li);
            }
        }

        if ("pdfVersion" in bookObj) {
            var pdfLink = document.createElement("a");
            pdfLink.appendChild(document.createTextNode("PDF version"));
            pdfLink.setAttribute("href", bookObj.pdfVersion);
            var h3 = document.createElement("h3");
            h3.appendChild(pdfLink);
            bookDiv.appendChild(h3);
        }
    }
}
function markAsDraft() {
    var topDiv = document.getElementById("top");
    var h1 = document.createElement("h1");
    h1.style.fontsize = "xx-large";
    h1.style.color = "red";

    h1.appendChild(document.createTextNode("This page is a draft only"));
    topDiv.appendChild(h1);

    watermark = document.createElement("div");
    document.getElementById("content").prepend(watermark)

    watermark.append("Draft");

    watermark.style.zIndex = 0;
    watermark.style.position = "fixed";
    watermark.style.display = "block";
    watermark.style.color = "#eeeeee";
    watermark.style.fontSize = "250px";
    watermark.style.transform = "rotate(310deg)";
    watermark.style.left = "40%";
    watermark.style.fontWeight = "bolder";

    document.title = "Draft " + document.title;


}

function ModifyPage() {
    var isLoggedIn;

    try {
        isLoggedIn = mw.config.get("wgUserId");
        if (isLoggedIn === null) {
            isLoggedIn = false;
        } else {
            isLoggedIn = true;
        }
    } catch (ReferenceError) {
        isLoggedIn = false;
    }

    var isDraft;
    var nameSpace = mw.config.get("wgCanonicalNamespace");

    try {
        if (nameSpace.toLowerCase().search("draft") === -1) {
            isDraft = false;
        } else {
            isDraft = true;
        }
    } catch (Exception) {
        isDraft = false;
    }

    if (isLoggedIn) {
        showToolBox();
    }
    buildSideMenu();

    if (isDraft) {
        markAsDraft();
    }
    setBannerImage(nameSpace);
}

jQuery(ModifyPage);