MediaWiki:Common.js: Difference between revisions

From SCA Lochac
Jump to navigation Jump to search
No edit summary
No edit summary
 
(85 intermediate revisions by 2 users not shown)
Line 2: Line 2:


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


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


function buildSideMenu() {
var defaultBanner = "https://sca.org.nz/wiki/images/f/f2/Lochac_marshal_banner.svg";
  currentNamespace = mw.config.get("wgCanonicalNamespace");
var defaultLogo = "https://sca.org.nz/wiki/images/8/8f/Lochaclarge_320x320.png";
  var navigationMenu = document.getElementById("mw-panel");


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


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


    var title = document.createElement("h3");
     if (namespaceObj === undefined) {
    //title.setAttribute("class", "portal");
        banner = defaultBanner;
    //title.setAttribute("role", "navigation");
        logo = defaultLogo;
     if ("webVersion" in bookObj) {
      var titleLink = document.createElement("a");
      titleLink.setAttribute("href", bookObj.webVersion);
      titleLink.appendChild(document.createTextNode(bookObj.label));
      title.appendChild(titleLink);
     } else {
     } else {
      title.appendChild(document.createTextNode(bookObj.label));
        banner = namespaceObj.banner ? namespaceObj.banner : defaultBanner;
        logo = namespaceObj.logo ? namespaceObj.logo : defaultLogo;
     }
     }
     bookDiv.appendChild(title);
     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";
}


     var navBody = document.createElement("div");
function buildSideMenu() {
     navBody.setAttribute("class", "body");
     currentNamespace = mw.config.get("wgCanonicalNamespace");
    bookDiv.appendChild(navBody);
     var navigationMenu = document.getElementById("mw-panel");


     var entries = document.createElement("ul");
     for (var ruleBook in ruleBooks) {
    navBody.appendChild(entries);
        var bookObj = ruleBooks[ruleBook];


    if (
        var bookDiv = document.createElement("div");
      bookObj.namespace === mw.config.get("wgCanonicalNamespace") &&
        bookDiv.setAttribute("class", "portal");
      "chapters" in bookObj
        navigationMenu.insertBefore(bookDiv, document.getElementById("p-tb"));
    ) {
 
      var chapterCount = bookObj.chapters.length;
        var title = document.createElement("h3");
      for (var i = 0; i < chapterCount; i++) {
 
        chapter = bookObj.chapters[i];
        if ("webVersion" in bookObj) {
        var chapterLink = document.createElement("a");
            var titleLink = document.createElement("a");
        chapterLink.appendChild(document.createTextNode(chapter[0]));
            titleLink.setAttribute("href", bookObj.webVersion);
        chapterLink.setAttribute("href", chapter[1]);
            titleLink.appendChild(document.createTextNode(bookObj.label));
        var li = document.createElement("li");
            title.appendChild(titleLink);
        li.appendChild(chapterLink);
        } else {
        entries.appendChild(li);
            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";


     if ("pdfVersion" in bookObj) {
     h1.appendChild(document.createTextNode("This page is a draft only"));
      var pdfLink = document.createElement("a");
    topDiv.appendChild(h1);
      pdfLink.appendChild(document.createTextNode("PDF version"));
 
      pdfLink.setAttribute("href", bookObj.pdfVersion);
    watermark = document.createElement("div");
      var h3 = document.createElement("h3");
    document.getElementById("content").prepend(watermark)
      h3.appendChild(pdfLink);
 
      bookDivries.appendChild(h3);
    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;
     }
     }
  }
}


function CustomizeModificationsOfSidebar() {
    var isDraft;
  var isLoggedIn;
    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 = mw.config.get("wgUserId");
        showToolBox();
     isLoggedIn = true;
     }
  } catch (ReferenceError) {
    buildSideMenu();
    isLoggedIn = false;
  }


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


jQuery(CustomizeModificationsOfSidebar);
jQuery(ModifyPage);

Latest revision as of 08:58, 11 May 2024

/* 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:
            "/wiki/index.php?title=Armoured_Combat:Handbook",
        pdfVersion:
            "/wiki/index.php?title=Armoured_combat:pdf",
        chapters: [
            ["Classes of Participant and combat",
                "/wiki/index.php?title=Armoured_Combat:Classes_of_Participant_and_Combat"],
            ["Combat Authorisation Requirements",
                "/wiki/index.php?title=Armoured_Combat:Combat_Authorisation_Requirements"],
            ["Rules of the Lists",
                "/wiki/index.php?title=Armoured_Combat:Rules_of_the_Lists"],
            ["Conventions of Combat",
                "/wiki/index.php?title=Armoured_Combat:Conventions_of_Combat"],
            ["The Use of Weapons and Shields",
                "/wiki/index.php?title=Armoured_Combat:The_Use_of_Weapons_and_Shields"],
            ["Target Areas and Acknowledgement of Blows",
                "/wiki/index.php?title=Armoured_Combat:Target_Areas_and_Acknowledgement_of_Blows"],
            ["Armour Requirements",
                "/wiki/index.php?title=Armoured_Combat:Armour_Requirements"],
            ["Melee Weapon Standards",
                "/wiki/index.php?title=Armoured_Combat:Melee_Weapon_Standards"],
            ["Throwing Weapon Standards",
                "/wiki/index.php?title=Armoured_Combat:Throwing_Weapon_Standards"],
            ["Missile Weapon Standards",
                "/wiki/index.php?title=Armoured_Combat:Missile_Weapon_Standards"],
            ["Grievances and Sanctions",
                "/wiki/index.php?title=Armoured_Combat:Grievances_and_Sanctions"],
            ["Procedures for Changes to These Rules",
                "/wiki/index.php?title=Armoured_Combat:Procedures_for_Changes_to_These_Rules"],
            ["Glossary",
                "/wiki/index.php?title=Armoured_Combat:Glossary"],
            ["Change log",
                "/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:
            "/wiki/index.php?title=Armoured_combat:Marshals_pdf",
        chapters: [
            ["Introduction",
                "/wiki/index.php?title=Armoured_Combat:Introduction"],
            ["Structure of the Marshallate",
                "/wiki/index.php?title=Armoured_Combat:Structure"],
            ["Authorisation of Marshals",
                "/wiki/index.php?title=Armoured_Combat:Authorisation_Of_Marshals"],
            ["Inspecting Equipment",
                "/wiki/index.php?title=Armoured_Combat:Inspecting_Equipment"],
            ["Marshalling Combat",
                "/wiki/index.php?title=Armoured_Combat:Marshalling_Combat"],
            ["Combat Injury Procedures",
                "/wiki/index.php?title=Armoured_Combat:Combat_Injury_Procedures"],
            ["Experimental Weapons and Materials Procedures",
                "/wiki/index.php?title=Armoured_Combat:Experimental"],
            ["Chain of Command and Procedures for Reporting",
                "/wiki/index.php?title=Armoured_Combat:Chain_Of_Command"],
            ["Sanctions and Appeals",
                "/wiki/index.php?title=Armoured_Combat:Sanctions"],
            ["Changing These Rules",
                "/wiki/index.php?title=Armoured_Combat:Procedures_for_Changes_to_These_Rules"],
            ["Marshals' Handbook Change Log",
                "/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:
            "/wiki/index.php?title=Fencing:pdf",
        chapters: [
            ["Introduction",
                "/wiki/index.php?title=Fencing:Introduction"],   
            ["Types of fencing",
                "/wiki/index.php?title=Fencing:Types_Of_Fencing"],
            ["Single combat, melee and gunners",
                "/wiki/index.php?title=Fencing:Single_Combat_Melee_and_Gunners"],
            ["When you are allowed to fence",
                "/wiki/index.php?title=Fencing:When_You_Are_Allowed_To_Fence"],
            ["Behaviour on the field",
                "/wiki/index.php?title=Fencing:Behaviour_On_The_Field"],
            ["Using weapons and defensive objects",
                "/wiki/index.php?title=Fencing:Using_Weapons_And_Defensive_Objects"],
            ["Taking blows",
                "/wiki/index.php?title=Fencing:Taking_Blows"],
            ["Protective equipment",
                "/wiki/index.php?title=Fencing:Protective_Equipment"],
            ["Weapons and defensive equipment",
                "/wiki/index.php?title=Fencing:Weapons_And_Defensive_Equipment"],
            ["Types of marshalling",
                "/wiki/index.php?title=Types_Of_Marshalling"],
            ["Supervising combat",
                "/wiki/index.php?title=Fencing:Supervising_Combat"],
            ["Inspections",
                "/wiki/index.php?title=Fencing:Inspections"],
            ["Rules for managing incidents",
                "/wiki/index.php?title=Fencing:Rules_For_Managing_Incidents"],
            ["Authorisation procedures",
                "/wiki/index.php?title=Fencing:Authorisation_Procedures"],
            ["Safety tests",
                "/wiki/index.php?title=Fencing:Safety_Tests"],
            ["Marshals as officers",
                "/wiki/index.php?title=Fencing:Marshals_As_Officers"],
            ["Changing the rules",
                "/wiki/index.php?title=Fencing:Changing_The_Rules"],
            ["Glossary",
                "/wiki/index.php?title=Fencing:Glossary"],
            ["Concussion Recognition Tool",
                "/wiki/index.php?title=Concussion_Recognition_Tool"],
            ["Change log and Notes",
                "/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: "/wiki/index.php?title=Archery:Handbook",
        pdfVersion:
            "/wiki/index.php?title=Archery:pdf",
        chapters: [
            ["Basic Rules",
                "/wiki/index.php?title=Archery:Basic_Rules"],
            ["Equipment standards",
                "/wiki/index.php?title=Archery:Equipment_standards"],
            ["Range safety",
                "/wiki/index.php?title=Archery:Range_safety"],
            ["Officers",
                "/wiki/index.php?title=Archery:Officers"],
            ["Authorising as a Target Archery Marshal",
                "/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);