We do our best to give you all information you need. Use the Search menu to search for the page you are looking for. The most used pages are on the side menu or in the Popular Pages page.

Do you miss important stuff or do you have suggestions? Let us know via Discord or in-game. Thank you for using our Wiki!

Difference between revisions of "MediaWiki:Common.js"

From GrinderScape Wiki
Jump to: navigation, search
 
(157 intermediate revisions by 6 users not shown)
Line 1: Line 1:
/*
+
// ***************************** Structure *****************************
  
// ***************************** Any JavaScript here will be loaded for all users on every page load
+
/* Load fontawesome and bootstrap css dependencies */
 +
mw.loader.load('https://use.fontawesome.com/releases/v5.8.1/css/all.css', 'text/css');
 +
mw.loader.load('https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css', 'text/css');
  
// Allow Jquery
 
jquery = document.createElement( "script" );
 
jquery.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js";
 
 
document.getElementsByTagName( "head" )[0].appendChild( jquery );
 
 
 
 
 
 
 
 
 
 
 
// ***************************** Structure
 
  
 
// Remove unnecessary elements
 
// Remove unnecessary elements
  
$( "div#p-tb" ).remove();
+
$("div#p-tb").remove();
 +
$("img").removeAttr("height");
  
 
// Wrap the content
 
// Wrap the content
  
$( "div#content, div#mw-navigation" ).wrapAll( "<div id='wrap'></div>" );
+
$("div#content, div#mw-navigation").wrapAll("<div id='main-wrapper'><div class='container'></div></div>");
  
 
// Insert the header
 
// Insert the header
  
$( "<header><div id='logo'><a href='https://www.grinderscape.org/'><img src='https://www.grinderscape.org/assets/images/logo.png' draggable='false'></a></div><nav><ul><li id='n-Home'><a href='https://www.grinderscape.org/'>Home</a></li><li id='n-Forums'><a href='http://forum.grinderscape.org/'>Forums</a></li><li id='n-Wiki'><a href='https://newwiki.grinderscape.org/Main_Page'>Wiki</a></li><li id='n-Vote'><a href='https://www.grinderscape.org/vote/status'>Vote</a></li><li id='n-Donate'><a href='https://www.grinderscape.org/donate'>Donate</a></li><li id='n-Marketplace'><a href='https://www.grinderscape.org/marketplace/all'>Marketplace</a></li><li id='n-Highscores'><a href='https://www.grinderscape.org/highscores/mode/regular'>Highscores</a></li><li id='n-Webclient'><a href='http://www.grinderscape.org/play'>Webclient</a></li><li id='n-Download'><a href='https://www.grinderscape.org/play/download'>Download</a></li></ul></nav></header>" ).insertBefore( "div#wrap" );
+
$("<header> <div class='entire-header'> <div class='header-top'> <div class='container dFlx'> <ul class='play-link'> <li><a itemprop='url' href='https://www.facebook.com/Grinderscape.org'><i class='fab fa-facebook-square'></i></a></li><li><a itemprop='url' href='https://www.youtube.com/user/dokenfilm/feed'><i class='fab fa-youtube'></i></a></li><li><a itemprop='url' href='https://discord.gg/b46xx5u'><i class='fab fa-discord'></i></a></li></ul> <div class='logo'> <a itemprop='url' href='https://www.grinderscape.org/home'><img src='https://www.grinderscape.org/images/grinderscape-logo.png' alt='GrinderScape'></a> </div><div class='mobile-logo'> <a itemprop='url' href='https://www.grinderscape.org/home'><img src='https://www.grinderscape.org/images/grinderscape-logo-mobile.png' alt='GrinderScape'></a> </div><ul class='login'> <li id='n-Log-in'><a href='/Special:UserLogin' data-toggle='modal' data-target='#myModal-user'>Wiki Login</a></li></ul> </div></div><div class='header-bottm'> <div class='container'> <div class='mobile-menu'> <span></span> <span></span> <span></span> </div><ul class='main-nav'> <li><a itemprop='url' href='https://www.grinderscape.org'>HOME</a></li><li><a itemprop='url' href='http://forum.grinderscape.org/'>FORUM</a></li><li><a itemprop='url' href='https://www.grinderscape.org/store'>STORE</a></li><li><a itemprop='url' href='https://www.grinderscape.org/download'>DOWNLOAD</a></li><li><a href='javascript:void(0);' data-toggle='modal' data-target='#myModal-vote'>VOTE</a></li><li><a itemprop='url' href='https://www.grinderscape.org/highscores'>HIGHSCORES</a></li><li class='acitve'><a itemprop='url' href='http://wiki.grinderscape.org/'>WIKI</a></li><li><a itemprop='url' href='https://www.grinderscape.org/contact'>CONTACT</a></li></ul> </div></div></div></header>").insertBefore("div#main-wrapper");
  
// Insert the footer
 
  
$( "<div id='customFooter'><div style='margin-bottom: 30px; line-height: 0;'><a href='https://www.facebook.com/Grinderscape.org' style='background: url(https://i.imgur.com/DeOQfOs.png) no-repeat center, linear-gradient( transparent,rgba(0, 0, 0, 0.15)), #3a589e; border: 1px solid #17274D;'></a><a href='https://twitter.com/grinderscape' style='background: url(https://i.imgur.com/GZzo3yV.png) no-repeat center, linear-gradient( transparent,rgba(0, 0, 0, 0.15)), #3A89C4; border: 1px solid #0E3959;'></a><a href='https://www.youtube.com/channel/UCVGi_iQHwRSGY36ff40SkYA' style='background: url(https://i.imgur.com/wF3Xf61.png) no-repeat center, linear-gradient( transparent,rgba(0, 0, 0, 0.15)), #C8312B; border: 1px solid #78130F;'></a></div><p style='margin-bottom: 0;'>Theme developed by <a href='https://forum.grinderscape.org/members/56905'>Jplayer</a>.<br>GrinderScape is not affiliated with Jagex or RuneScape in any way.</p></div>" ).insertBefore( "ul#footer-places" );
 
 
// Organize the elements
 
// Organize the elements
  
$( "div#mw-navigation" ).insertBefore( "div#content" );
+
// if(window.matchMedia("(max-width: 1024px)").matches){
$( "div#content" ).wrap( "<div id='content-sidebar-wrap'></div>" );
+
//    // The viewport is less than 1024 pixels wide
$( "div#mw-panel" ).insertAfter( "div#content" );
+
//    console.log("This is a mobile device.");
$( "div#content" ).wrap( "<div id='content-wrap'></div>" );
+
//    $("div#mw-navigation").appendTo(".main-nav");
 +
// } else{
 +
//    // The viewport is at least 1024 pixels wide
 +
//    console.log("This is a tablet or desktop.");
 +
//    $("div#mw-navigation").insertBefore(".login");  
 +
// }
  
$( "<div id='navigation'></div>" ).prependTo( "div#content" );
+
$("div#content").wrap("<section class='main-content-cstm'></section>");
$( "div#left-navigation" ).appendTo( "div#navigation" );
+
$("div#mw-navigation").insertBefore(".main-content-cstm");
$( "div#right-navigation" ).appendTo( "div#navigation" );
+
$("div#content").wrap("<div id='content-sidebar-wrap'></div>");
 +
$("div#mw-panel").insertAfter("div#content");
 +
$("div#content").wrap("<div id='content-wrap'></div>");
  
$( "<div id='pageInfo'></div>" ).insertBefore( "div#content" );
+
$("<div id='navigation'></div>").prependTo("div#content");
 +
$("div#left-navigation").appendTo("div#navigation");
 +
$("div#right-navigation").appendTo("div#navigation");
  
$( "div#content" ).wrap( "<div id='content-navigation-wrap'></div>" );
+
$("<div id='pageInfo'></div>").insertBefore("div#content");
$( "div#siteNotice" ).insertAfter( "div#mw-navigation" );
+
$("div#content").wrap("<div id='content-navigation-wrap'></div>");
$( "ul#footer-info" ).insertAfter( "div#content" );
+
$("ul#footer-info").insertAfter("div#content");
 +
 
 +
// Insert the footer
 +
 
 +
$("<footer> <div class='footer-top dFlx'> <div class='cw-30'> <h5>ABOUT</h5> <p>GrinderScape has been a dedicated server since 2008, with helpful staff and dedicated members. If you need help in how to start, you can see the Wiki. If you wish to get involved with the community as a whole, join our Forums, for the latest threads and game suggestions.</p></div><div class='cw-70 dFlx'> <div class='cw-33'> <h5>GENERAL</h5> <ul> <li><a itemprop='url' href='https://www.grinderscape.org/download'>Play Now</a></li><li><a itemprop='url' href='https://www.grinderscape.org/contact' target='_blank'>Contact Us</a></li><li><a itemprop='url' href='https://www.grinderscape.org/tos' target='_blank'>Terms of Services</a></li><li><a itemprop='url' href='https://www.grinderscape.org/user/manage' target='_blank'>Account Management</a></li><li><a itemprop='url' href='https://www.grinderscape.org/faq' target='_blank'>Frequently Asked Questions</a></li></ul> </div><div class='cw-33'> <h5>GUIDES</h5> <ul> <li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/topic/132-in-game-drops-guide-mystery-boxes/' target='_blank'>NPC Drops Guide</a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/Skill_guides/Slayer' target='_blank'>Slayer Guide</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/topic/132-in-game-drops-guide-mystery-boxes/' target='_blank'>Drops Guide</a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/Monster_hunting_guides' target='_blank'>Monster Hunting Guides</a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/General_guides/Commands' target='_blank'>In-Game Commands </a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/Skill_guides' target='_blank'>Skilling Guides</a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/General_guides' target='_blank'>General Guides</a></li></ul> </div><div class='cw-33'> <h5>FORUM THREADS</h5> <ul> <li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/2-news-announcements/' target='_blank'>News &amp; Announcements</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/39-report-in-game-bugs/' target='_blank'>Report In-Game Bugs</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/11-submit-appeal/' target='_blank'>Submit In-Game Appeal</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/59-recover-a-lost-account/' target='_blank'>Recover a Lost Account</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/10-submit-player-report/' target='_blank'>Submit Player Report</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/5-rules/' target='_blank'>In-Game Rules</a></li></ul> </div></div></div><div class='footer-btm dFlx'> <div class='footer-logo'> <a itemprop='url' href='https://www.grinderscape.org'><img src='https://www.grinderscape.org/images/footer-logo-trans.png' alt='GrinderScape'></a> </div><p>GrinderScape is not affiliated with Jagex or Runescape in any way.</p></div></footer>").insertAfter(".main-content-cstm");
 +
 
 +
// Mobile Navigation Click Function
 +
$(".mobile-menu").click(function () {
 +
    $(this).toggleClass('open');
 +
    $(".main-nav").toggleClass("side-open");
 +
});
  
 
// Set up the page footer info
 
// Set up the page footer info
  
if ( $( "li#footer-info-credits" ).length > 0 ) {
+
if ($("li#footer-info-credits").length > 0) {
$( "li#footer-info-credits" ).html( $( "li#footer-info-credits" ).html().replace( /\[/g, "<span style='position: absolute; right: 0;'>" ).replace( /\]/g, "</span>" ).replace( /\{/g, "<p id='contentFooter' style='position: relative;'>" ).replace( /\}/g, "</p>" ) );
+
    $("li#footer-info-credits").html($("li#footer-info-credits").html().replace(/\[/g, "<span style='position: absolute; right: 0;'>").replace(/\]/g, "</span>").replace(/\{/g, "<p id='contentFooter' style='position: relative;'>").replace(/\}/g, "</p>"));
$( "p#contentFooter" ).insertBefore( "li#footer-info-credits" );
+
    $("p#contentFooter").insertBefore("li#footer-info-credits");
$( "li#footer-info-credits" ).remove();
+
    $("li#footer-info-credits").remove();
 
}
 
}
  
 
// Set up the page title and breadcrumb
 
// Set up the page title and breadcrumb
  
var title = $( "h1#firstHeading" ).html().split('/');
+
var title = $("h1#firstHeading").html().split('/');
$( "h1#firstHeading" ).html( title[ title.length - 1 ] );
+
$("h1#firstHeading").html(title[title.length - 1]);
$( "h1#firstHeading" ).appendTo( "div#pageInfo" );
+
$("h1#firstHeading").appendTo("div#pageInfo");
  
$( "span.subpages" ).appendTo( "div#pageInfo" );
+
$("span.subpages").appendTo("div#pageInfo");
$( "span.subpages" ).html( $( "span.subpages" ).children() );
+
$("span.subpages").html($("span.subpages").children());
$( "<span>" + title[ title.length - 1 ] + "</span>" ).appendTo( "span.subpages" );
+
$("<span>" + title[title.length - 1] + "</span>").appendTo("span.subpages");
$( "<span>&nbsp;&nbsp;/&nbsp;&nbsp;</span>" ).insertAfter( "span.subpages > a" );
+
$("<span>&nbsp;&nbsp;/&nbsp;&nbsp;</span>").insertAfter("span.subpages > a");
  
 
// Set up the page title
 
// Set up the page title
  
document.title = title[ title.length - 1 ] + " - GrinderScape Wiki";
+
document.title = title[title.length - 1] + " - GrinderScape Wiki";
  
// Set up the announcement
+
// Hide mw-panel on HP
 
+
if (window.location.href == 'https://wiki.grinderscape.org/Main_page/New' || window.location.href == 'https://wiki.grinderscape.org/Main_page') {
$( "<div id='noticeTitle'>Notice</div>" ).prependTo( "div#siteNotice" );
+
    $('#mw-panel').remove();
 +
}
  
 
// Remove href from selected tabs
 
// Remove href from selected tabs
  
$.each( $( "div.vectorTabs li.selected" ), function() {
+
$.each($("div.vectorTabs li.selected"), function () {
$( this ).find( "a" ).removeAttr( "href" );
+
    $(this).find("a").removeAttr("href");
 
});
 
});
  
 
// Remove title from links
 
// Remove title from links
  
$( "a" ).removeAttr( "title" );
+
$("a").removeAttr("title");
  
 
// Set up the search box
 
// Set up the search box
  
$( "div#p-search" ).prependTo( "div#mw-panel" );
+
$("div#p-search").insertBefore(".main-content-cstm");
$( "<div id='searchTitle'>Search</div>" ).insertBefore( "form#searchform" );
+
$("div#p-search").wrap("<section class='main-top-cstm'></section>")
$( "input#searchInput" ).val( "Search..." ).removeAttr( "placeholder" ).attr( "onfocus", "if (this.value == 'Search...') {this.value = '';}" ).attr( "onblur", "if (this.value == '') {this.value = 'Search...';}" );
+
$("input#searchInput").val("Search...").removeAttr("placeholder").attr("onfocus", "if (this.value == 'Search...') {this.value = '';}").attr("onblur", "if (this.value == '') {this.value = 'Search...';}");
 +
 
 +
// Set up the announcement
 +
 
 +
$("div#siteNotice").insertBefore("div#p-search");
 +
$("<div id='noticeTitle'>Welcome to the GrinderScape Wiki!</div>").prependTo("div#siteNotice");
 +
 
 +
 
 +
// Show/Hide Plugin
 +
$('.p_hide').hide(); // Hides any element with p_hide class
 +
$('.p_toggle').on('click', function(){
 +
    var $this = $(this);
 +
    var toggleChild = $this.find('.p_toggle_content');
 +
    var toggleIcon = $this.find('.p_toggle_icon')
 +
 
 +
    console.log(toggleIcon);
 +
 
 +
    toggleChild.slideToggle("fast");
 +
    toggleIcon.toggleClass("fa-plus fa-minus");
 +
 
 +
    // if (toggleIcon == '.fa-plus'){
 +
    //    toggleIcon.toggleClass("fa-plus", "fa-minus");
 +
    // } else {
 +
    //    toggleIcon.toggleClass("fa-minus", "fa-plus");
 +
    // }
 +
});
 +
 
  
 
// Set up the edit box
 
// Set up the edit box
  
function wrapText( elementID, openTag, closeTag ) {
+
function wrapText(elementID, openTag, closeTag) {
var textArea = $( "#" + elementID );
+
    var textArea = $("#" + elementID);
var len = textArea.val().length;
+
    var len = textArea.val().length;
var start = textArea[0].selectionStart;
+
    var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
+
    var end = textArea[0].selectionEnd;
var selectedText = textArea.val().substring( start, end );
+
    var selectedText = textArea.val().substring(start, end);
var replacement = openTag + selectedText + closeTag;
+
    var replacement = openTag + selectedText + closeTag;
textArea.val( textArea.val().substring( 0, start ) + replacement + textArea.val().substring( end, len ) );
+
    textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
 
}
 
}
  
$( "input#wpWatchthis" ).prop( "checked", false );
+
$("input#wpWatchthis").prop("checked", false);
  
$( "<div class='customButton' id='CB-Nowiki' style='background: url(https://i.imgur.com/Fx2AsCt.png);' title='Ignore wiki formatting'></div>" ).appendTo( "div#toolbar" );
+
$("<div class='customButton' id='CB-Nowiki' style='background: url(https://i.imgur.com/Fx2AsCt.png);' title='Ignore wiki formatting'></div>").appendTo("div#toolbar");
$( "#CB-Nowiki" ).click( function() {
+
$("#CB-Nowiki").click(function () {
wrapText( "wpTextbox1", "<nowiki>", "</nowiki>" );
+
    wrapText("wpTextbox1", "<nowiki>", "</nowiki>");
 
});
 
});
  
$( "<div class='customButton' id='CB-Heading2' style='background: url(https://i.imgur.com/8uajyYO.png);' title='Level 2 heading'></div>" ).prependTo( "div#toolbar" );
+
$("<div class='customButton' id='CB-Heading2' style='background: url(https://i.imgur.com/8uajyYO.png);' title='Level 2 heading'></div>").prependTo("div#toolbar");
$( "#CB-Heading2" ).click( function() {
+
$("#CB-Heading2").click(function () {
wrapText( "wpTextbox1", "<h2>", "</h2>" );
+
    wrapText("wpTextbox1", "<h2>", "</h2>");
 
});
 
});
  
$( "<div class='customButton' id='CB-Heading1' style='background: url(https://i.imgur.com/jKOOZnF.png);' title='Level 1 heading'></div>" ).prependTo( "div#toolbar" );
+
$("<div class='customButton' id='CB-Heading1' style='background: url(https://i.imgur.com/jKOOZnF.png);' title='Level 1 heading'></div>").prependTo("div#toolbar");
$( "#CB-Heading1" ).click( function() {
+
$("#CB-Heading1").click(function () {
wrapText( "wpTextbox1", "<h1>", "</h1>" );
+
    wrapText("wpTextbox1", "<h1>", "</h1>");
 
});
 
});
  
$( "<div class='customButton' id='CB-Italic' style='background: url(https://i.imgur.com/zdPfv0X.png);' title='Italic text'></div>" ).prependTo( "div#toolbar" );
+
$("<div class='customButton' id='CB-Italic' style='background: url(https://i.imgur.com/zdPfv0X.png);' title='Italic text'></div>").prependTo("div#toolbar");
$( "#CB-Italic" ).click( function() {
+
$("#CB-Italic").click(function () {
wrapText( "wpTextbox1", "<i>", "</i>" );
+
    wrapText("wpTextbox1", "<i>", "</i>");
 
});
 
});
  
$( "<div class='customButton' id='CB-Bold' style='background: url(https://i.imgur.com/lyqhAM9.png);' title='Bold text'></div>" ).prependTo( "div#toolbar" );
+
$("<div class='customButton' id='CB-Bold' style='background: url(https://i.imgur.com/lyqhAM9.png);' title='Bold text'></div>").prependTo("div#toolbar");
$( "#CB-Bold" ).click( function() {
+
$("#CB-Bold").click(function () {
wrapText( "wpTextbox1", "<b>", "</b>" );
+
    wrapText("wpTextbox1", "<b>", "</b>");
 
});
 
});
  
 
// Remove auto correct from text boxes
 
// Remove auto correct from text boxes
  
$( "textarea#wpTextbox1, input#searchInput" ).attr( "spellcheck", "false" );
+
$("textarea#wpTextbox1, input#searchInput, input#database_input").attr("spellcheck", "false");
  
  
  
  
 +
// Table Highlight
 +
$('.highlight tr').mouseover(function () {
 +
    $(this).addClass('highlight-hover'); //Add Hover Class to toggle css
 +
})
 +
$('.highlight tr').mouseout(function () {
 +
    $(this).removeClass('highlight-hover'); //remove the class when not on hover of .highlight tr
 +
})
  
  
  
  
 +
// ***************************** Indices *****************************
  
 +
$.each($("div.timestamp"), function () {
 +
    var str = $(this).html();
 +
    var year = str.substr(0, 4);
 +
    var month = str.substr(4, 2);
 +
    if (month == 01) {
 +
        month = " January "
 +
    } else if (month == 02) {
 +
        month = " February "
 +
    } else if (month == 03) {
 +
        month = " March "
 +
    } else if (month == 04) {
 +
        month = " April "
 +
    } else if (month == 05) {
 +
        month = " May "
 +
    } else if (month == 06) {
 +
        month = " June "
 +
    } else if (month == 07) {
 +
        month = " July "
 +
    } else if (month == 08) {
 +
        month = " August "
 +
    } else if (month == 09) {
 +
        month = " September "
 +
    } else if (month == 10) {
 +
        month = " October "
 +
    } else if (month == 11) {
 +
        month = " November "
 +
    } else if (month == 12) {
 +
        month = " December "
 +
    }
 +
    var day = str.substr(6, 2);
 +
    $(this).html("Last modified on " + day + month + year + ".");
 +
    if (str == "") {
 +
        $(this).html("This page is under construction.");
 +
    }
 +
});
 +
$.each($("div.link > a"), function () {
 +
    var link = $(this).html().split("/");
 +
    $(this).html(link[link.length - 1].replace(/\_/g, " "));
 +
});
  
  
Line 152: Line 230:
  
  
// Remove the loader
 
  
setTimeout( function() {
 
$( "div#mw-head-base" ).fadeOut( 500 );
 
$( "div#mw-page-base" ).fadeOut( 500 );
 
}, 600 );
 
  
*/
+
 
 +
// ***************************** Databases *****************************
 +
 
 +
function commaSeparateNumber(val) {
 +
    while (/(\d+)(\d{3})/.test(val.toString())) {
 +
        val = val.toString().replace(/(\d+)(\d{3})/, '$1' + '.' + '$2');
 +
    };
 +
    return val;
 +
};
 +
 
 +
$("button#database_button").click(function () {
 +
    searchDatabase();
 +
});
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
// ***************************** Close *****************************
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
// Remove the loader
 +
 
 +
setTimeout(function () {
 +
    $("div#mw-head-base").fadeOut(500);
 +
    $("div#mw-page-base").fadeOut(500);
 +
}, 600);

Latest revision as of 21:01, 17 September 2021

// ***************************** Structure *****************************

/* Load fontawesome and bootstrap css dependencies */
mw.loader.load('https://use.fontawesome.com/releases/v5.8.1/css/all.css', 'text/css');
mw.loader.load('https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css', 'text/css');


// Remove unnecessary elements

$("div#p-tb").remove();
$("img").removeAttr("height");

// Wrap the content

$("div#content, div#mw-navigation").wrapAll("<div id='main-wrapper'><div class='container'></div></div>");

// Insert the header

$("<header> <div class='entire-header'> <div class='header-top'> <div class='container dFlx'> <ul class='play-link'> <li><a itemprop='url' href='https://www.facebook.com/Grinderscape.org'><i class='fab fa-facebook-square'></i></a></li><li><a itemprop='url' href='https://www.youtube.com/user/dokenfilm/feed'><i class='fab fa-youtube'></i></a></li><li><a itemprop='url' href='https://discord.gg/b46xx5u'><i class='fab fa-discord'></i></a></li></ul> <div class='logo'> <a itemprop='url' href='https://www.grinderscape.org/home'><img src='https://www.grinderscape.org/images/grinderscape-logo.png' alt='GrinderScape'></a> </div><div class='mobile-logo'> <a itemprop='url' href='https://www.grinderscape.org/home'><img src='https://www.grinderscape.org/images/grinderscape-logo-mobile.png' alt='GrinderScape'></a> </div><ul class='login'> <li id='n-Log-in'><a href='/Special:UserLogin' data-toggle='modal' data-target='#myModal-user'>Wiki Login</a></li></ul> </div></div><div class='header-bottm'> <div class='container'> <div class='mobile-menu'> <span></span> <span></span> <span></span> </div><ul class='main-nav'> <li><a itemprop='url' href='https://www.grinderscape.org'>HOME</a></li><li><a itemprop='url' href='http://forum.grinderscape.org/'>FORUM</a></li><li><a itemprop='url' href='https://www.grinderscape.org/store'>STORE</a></li><li><a itemprop='url' href='https://www.grinderscape.org/download'>DOWNLOAD</a></li><li><a href='javascript:void(0);' data-toggle='modal' data-target='#myModal-vote'>VOTE</a></li><li><a itemprop='url' href='https://www.grinderscape.org/highscores'>HIGHSCORES</a></li><li class='acitve'><a itemprop='url' href='http://wiki.grinderscape.org/'>WIKI</a></li><li><a itemprop='url' href='https://www.grinderscape.org/contact'>CONTACT</a></li></ul> </div></div></div></header>").insertBefore("div#main-wrapper");


// Organize the elements

// if(window.matchMedia("(max-width: 1024px)").matches){
//     // The viewport is less than 1024 pixels wide
//     console.log("This is a mobile device.");
//     $("div#mw-navigation").appendTo(".main-nav");
// } else{
//     // The viewport is at least 1024 pixels wide
//     console.log("This is a tablet or desktop.");
//     $("div#mw-navigation").insertBefore(".login"); 
// }

$("div#content").wrap("<section class='main-content-cstm'></section>");
$("div#mw-navigation").insertBefore(".main-content-cstm");
$("div#content").wrap("<div id='content-sidebar-wrap'></div>");
$("div#mw-panel").insertAfter("div#content");
$("div#content").wrap("<div id='content-wrap'></div>");

$("<div id='navigation'></div>").prependTo("div#content");
$("div#left-navigation").appendTo("div#navigation");
$("div#right-navigation").appendTo("div#navigation");

$("<div id='pageInfo'></div>").insertBefore("div#content");
$("div#content").wrap("<div id='content-navigation-wrap'></div>");
$("ul#footer-info").insertAfter("div#content");

// Insert the footer

$("<footer> <div class='footer-top dFlx'> <div class='cw-30'> <h5>ABOUT</h5> <p>GrinderScape has been a dedicated server since 2008, with helpful staff and dedicated members. If you need help in how to start, you can see the Wiki. If you wish to get involved with the community as a whole, join our Forums, for the latest threads and game suggestions.</p></div><div class='cw-70 dFlx'> <div class='cw-33'> <h5>GENERAL</h5> <ul> <li><a itemprop='url' href='https://www.grinderscape.org/download'>Play Now</a></li><li><a itemprop='url' href='https://www.grinderscape.org/contact' target='_blank'>Contact Us</a></li><li><a itemprop='url' href='https://www.grinderscape.org/tos' target='_blank'>Terms of Services</a></li><li><a itemprop='url' href='https://www.grinderscape.org/user/manage' target='_blank'>Account Management</a></li><li><a itemprop='url' href='https://www.grinderscape.org/faq' target='_blank'>Frequently Asked Questions</a></li></ul> </div><div class='cw-33'> <h5>GUIDES</h5> <ul> <li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/topic/132-in-game-drops-guide-mystery-boxes/' target='_blank'>NPC Drops Guide</a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/Skill_guides/Slayer' target='_blank'>Slayer Guide</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/topic/132-in-game-drops-guide-mystery-boxes/' target='_blank'>Drops Guide</a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/Monster_hunting_guides' target='_blank'>Monster Hunting Guides</a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/General_guides/Commands' target='_blank'>In-Game Commands </a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/Skill_guides' target='_blank'>Skilling Guides</a></li><li><a itemprop='url' href='https://wiki.grinderscape.org/Main_page/Guides/General_guides' target='_blank'>General Guides</a></li></ul> </div><div class='cw-33'> <h5>FORUM THREADS</h5> <ul> <li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/2-news-announcements/' target='_blank'>News &amp; Announcements</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/39-report-in-game-bugs/' target='_blank'>Report In-Game Bugs</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/11-submit-appeal/' target='_blank'>Submit In-Game Appeal</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/59-recover-a-lost-account/' target='_blank'>Recover a Lost Account</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/10-submit-player-report/' target='_blank'>Submit Player Report</a></li><li><a itemprop='url' href='https://forum.grinderscape.org/index.php?/forum/5-rules/' target='_blank'>In-Game Rules</a></li></ul> </div></div></div><div class='footer-btm dFlx'> <div class='footer-logo'> <a itemprop='url' href='https://www.grinderscape.org'><img src='https://www.grinderscape.org/images/footer-logo-trans.png' alt='GrinderScape'></a> </div><p>GrinderScape is not affiliated with Jagex or Runescape in any way.</p></div></footer>").insertAfter(".main-content-cstm");

// Mobile Navigation Click Function
$(".mobile-menu").click(function () {
    $(this).toggleClass('open');
    $(".main-nav").toggleClass("side-open");
});

// Set up the page footer info

if ($("li#footer-info-credits").length > 0) {
    $("li#footer-info-credits").html($("li#footer-info-credits").html().replace(/\[/g, "<span style='position: absolute; right: 0;'>").replace(/\]/g, "</span>").replace(/\{/g, "<p id='contentFooter' style='position: relative;'>").replace(/\}/g, "</p>"));
    $("p#contentFooter").insertBefore("li#footer-info-credits");
    $("li#footer-info-credits").remove();
}

// Set up the page title and breadcrumb

var title = $("h1#firstHeading").html().split('/');
$("h1#firstHeading").html(title[title.length - 1]);
$("h1#firstHeading").appendTo("div#pageInfo");

$("span.subpages").appendTo("div#pageInfo");
$("span.subpages").html($("span.subpages").children());
$("<span>" + title[title.length - 1] + "</span>").appendTo("span.subpages");
$("<span>&nbsp;&nbsp;/&nbsp;&nbsp;</span>").insertAfter("span.subpages > a");

// Set up the page title

document.title = title[title.length - 1] + " - GrinderScape Wiki";

// Hide mw-panel on HP
if (window.location.href == 'https://wiki.grinderscape.org/Main_page/New' || window.location.href == 'https://wiki.grinderscape.org/Main_page') {
    $('#mw-panel').remove();
}

// Remove href from selected tabs

$.each($("div.vectorTabs li.selected"), function () {
    $(this).find("a").removeAttr("href");
});

// Remove title from links

$("a").removeAttr("title");

// Set up the search box

$("div#p-search").insertBefore(".main-content-cstm");
$("div#p-search").wrap("<section class='main-top-cstm'></section>")
$("input#searchInput").val("Search...").removeAttr("placeholder").attr("onfocus", "if (this.value == 'Search...') {this.value = '';}").attr("onblur", "if (this.value == '') {this.value = 'Search...';}");

// Set up the announcement

$("div#siteNotice").insertBefore("div#p-search");
$("<div id='noticeTitle'>Welcome to the GrinderScape Wiki!</div>").prependTo("div#siteNotice");


// Show/Hide Plugin
$('.p_hide').hide(); // Hides any element with p_hide class
$('.p_toggle').on('click', function(){
    var $this = $(this);
    var toggleChild = $this.find('.p_toggle_content');
    var toggleIcon = $this.find('.p_toggle_icon')

    console.log(toggleIcon);

    toggleChild.slideToggle("fast");
    toggleIcon.toggleClass("fa-plus fa-minus");

    // if (toggleIcon == '.fa-plus'){
    //     toggleIcon.toggleClass("fa-plus", "fa-minus");
    // } else {
    //     toggleIcon.toggleClass("fa-minus", "fa-plus");
    // }
});


// Set up the edit box

function wrapText(elementID, openTag, closeTag) {
    var textArea = $("#" + elementID);
    var len = textArea.val().length;
    var start = textArea[0].selectionStart;
    var end = textArea[0].selectionEnd;
    var selectedText = textArea.val().substring(start, end);
    var replacement = openTag + selectedText + closeTag;
    textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
}

$("input#wpWatchthis").prop("checked", false);

$("<div class='customButton' id='CB-Nowiki' style='background: url(https://i.imgur.com/Fx2AsCt.png);' title='Ignore wiki formatting'></div>").appendTo("div#toolbar");
$("#CB-Nowiki").click(function () {
    wrapText("wpTextbox1", "<nowiki>", "</nowiki>");
});

$("<div class='customButton' id='CB-Heading2' style='background: url(https://i.imgur.com/8uajyYO.png);' title='Level 2 heading'></div>").prependTo("div#toolbar");
$("#CB-Heading2").click(function () {
    wrapText("wpTextbox1", "<h2>", "</h2>");
});

$("<div class='customButton' id='CB-Heading1' style='background: url(https://i.imgur.com/jKOOZnF.png);' title='Level 1 heading'></div>").prependTo("div#toolbar");
$("#CB-Heading1").click(function () {
    wrapText("wpTextbox1", "<h1>", "</h1>");
});

$("<div class='customButton' id='CB-Italic' style='background: url(https://i.imgur.com/zdPfv0X.png);' title='Italic text'></div>").prependTo("div#toolbar");
$("#CB-Italic").click(function () {
    wrapText("wpTextbox1", "<i>", "</i>");
});

$("<div class='customButton' id='CB-Bold' style='background: url(https://i.imgur.com/lyqhAM9.png);' title='Bold text'></div>").prependTo("div#toolbar");
$("#CB-Bold").click(function () {
    wrapText("wpTextbox1", "<b>", "</b>");
});

// Remove auto correct from text boxes

$("textarea#wpTextbox1, input#searchInput, input#database_input").attr("spellcheck", "false");




// Table Highlight
$('.highlight tr').mouseover(function () {
    $(this).addClass('highlight-hover'); //Add Hover Class to toggle css
})
$('.highlight tr').mouseout(function () {
    $(this).removeClass('highlight-hover'); //remove the class when not on hover of .highlight tr
})




// ***************************** Indices *****************************

$.each($("div.timestamp"), function () {
    var str = $(this).html();
    var year = str.substr(0, 4);
    var month = str.substr(4, 2);
    if (month == 01) {
        month = " January "
    } else if (month == 02) {
        month = " February "
    } else if (month == 03) {
        month = " March "
    } else if (month == 04) {
        month = " April "
    } else if (month == 05) {
        month = " May "
    } else if (month == 06) {
        month = " June "
    } else if (month == 07) {
        month = " July "
    } else if (month == 08) {
        month = " August "
    } else if (month == 09) {
        month = " September "
    } else if (month == 10) {
        month = " October "
    } else if (month == 11) {
        month = " November "
    } else if (month == 12) {
        month = " December "
    }
    var day = str.substr(6, 2);
    $(this).html("Last modified on " + day + month + year + ".");
    if (str == "") {
        $(this).html("This page is under construction.");
    }
});
$.each($("div.link > a"), function () {
    var link = $(this).html().split("/");
    $(this).html(link[link.length - 1].replace(/\_/g, " "));
});









// ***************************** Databases *****************************

function commaSeparateNumber(val) {
    while (/(\d+)(\d{3})/.test(val.toString())) {
        val = val.toString().replace(/(\d+)(\d{3})/, '$1' + '.' + '$2');
    };
    return val;
};

$("button#database_button").click(function () {
    searchDatabase();
});








// ***************************** Close *****************************










// Remove the loader

setTimeout(function () {
    $("div#mw-head-base").fadeOut(500);
    $("div#mw-page-base").fadeOut(500);
}, 600);