MediaWiki:Common.js

From Wiki The-West EN
Jump to navigation

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

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
$(document).ready(function() {
	
	var currentUrl = window.location.pathname.split('/').pop();
	
	if (currentUrl == 'Main_Page') {
		$.getScript("/wiki/QuestsCalendar.js?action=raw", function() {
			// Script loaded
		});	
	}
	
	if (currentUrl == 'Category:Questlines') {
		$.getScript("/wiki/Quests.js?action=raw", function() {
			// Script loaded
		});
	}

    $('body').append($('<div></div>').load('https://wiki.the-west.net/wiki/Dock.html?action=raw'));

    if ($('.item_container').length !== 0) {
        $('.item_container').each(function() {
            $(this).append('<img src="https://westzz.innogamescdn.com/images/items/' + $(this).attr('data-url') + '?1">');
        });
        $.getScript("/wiki/Popup.js?action=raw");
    }
});

$(window).scroll(function() {
    if ($(this).scrollTop() > 300) {
        $('#back-top').fadeIn();
    } else {
        $('#back-top').fadeOut();
    }
});
// Scroll body to top on click
$('#back-top a').click(function() {
    $('body,html').animate({
            scrollTop: 0,
        },
        800
    );
    return false;
});
// Embed youtube videos
if ($('.youtube_video').length !== 0) {
    $('.youtube_video').each(function() {
        $(this).html(
            '<iframe width="100%" height="100%" src="https://www.youtube.com/embed/' +
            $(this).attr('data-id') +
            '?cc_load_policy=1&cc_lang_pref=' +
            $(this).attr('data-subtitles') +
            '" frameborder="0" allowfullscreen></iframe>'
        );
    });
}
//calculate box - n3mesis
if ($('.calculate_box').length) {
    $.getScript('/wiki/Calculate.js?action=raw');
};
//crafting
if ($('.target_input').length) {
    $('.target_input p').each(function() {
        var id = $(this).attr('id');
        var phrase = $(this).text();
        var newInput = "<input type='number' name='input_new' value='" +
            phrase + "' class='target' max='50000' min='' />";
        $(this).replaceWith(newInput);
    });
    var multiplierValue = 1;
    var currentAmountsArray = [];
    $('.amount').each(function(index) {
        currentAmountsArray[index] = parseInt($(this).text());
    });
    $("input[name='input_new']").on('input paste keyup', function() {
        this.value > 50000 ? (this.value = 50000) : this.value < 0 && (this.value = 0);
        multiplierValue = this.value;
        $('.amount').each(function(index) {
            $(this).text(currentAmountsArray[index] * multiplierValue);
        });
        $('.craft_extra').show();
        $('.craft_extra .item_container').each(function() {
            $(this).children().addClass('OverlayItem');
        });
    });
}

// As seen on https://bitbucket.org/cmcqueen1975/htmlfloatingtableheader/overview
function UpdateTableHeaders() {
    $("div.divTableWithFloatingHeader").each(function() {
        var originalHeaderRow = $(".tableFloatingHeaderOriginal", this);
        var floatingHeaderRow = $(".tableFloatingHeader", this);
        var offset = $(this).offset();
        var scrollTop = $(window).scrollTop();
        if ((scrollTop > originalHeaderRow.offset().top) && (scrollTop < offset.top + $(this).height() - originalHeaderRow.height())) {
            floatingHeaderRow.css("visibility", "visible");
            floatingHeaderRow.css("top", "0px");

            // Copy cell widths from original header
            $("th", floatingHeaderRow).each(function(index) {
                var cellWidth = $("th", originalHeaderRow).eq(index).css('width');
                $(this).css('width', cellWidth);
            });

            // Copy row width from whole table
            floatingHeaderRow.css("width", $(this).css("width"));
        } else {
            floatingHeaderRow.css("visibility", "hidden");
            floatingHeaderRow.css("top", "0px");
        }
    });
};

$(function() {
    $("table.tableWithFloatingHeader").each(function() {
        $(this).wrap("<div class=\"divTableWithFloatingHeader\" style=\"position:relative\"></div>");

        var cls = "tr.floatingHeader";
        if ($(cls, this).length == 0) {
            cls = "tr";
        }
        var originalHeaderRow = $(cls, this).first();
        var clonedHeaderRow = originalHeaderRow.clone().insertBefore(originalHeaderRow);

        clonedHeaderRow.addClass("tableFloatingHeader");
        clonedHeaderRow.css("position", "fixed");
        clonedHeaderRow.css("top", "0px");
        clonedHeaderRow.css("left", $(this).offset().left);
        clonedHeaderRow.css("visibility", "hidden");
        clonedHeaderRow.css("z-index", 1);

        originalHeaderRow.addClass("tableFloatingHeaderOriginal");
    });
    UpdateTableHeaders();
    $(window).on('scroll', UpdateTableHeaders);
    $(window).on('resize', UpdateTableHeaders);
});

(function($) {
    $(document).ready(function() {
        $('.radioButtonsHere').replaceWith('<center><input id="normal" type="radio" value="0" class="selectRadio" name="selectRadio"/> Normal Job <input id="silver" type="radio" value="50" class="selectRadio" name="selectRadio"/> Silver <input id="aura" type="radio" value="100" class="selectRadio" name="selectRadio"/> Gold</center>');
        var multiplierValue = 1;
        var currentXPArray = [];
        var currentCashArray = [];
        $('.xp').each(function(index) {
            currentXPArray[index] = parseInt($(this).text());
        });
        $('.money').each(function(index) {
            var getNumber = $(this).text().replace(/[^0-9]/gi, '');
            currentCashArray[index] = parseFloat(getNumber, 10);
        });
        $("input[name='selectRadio']").change(function() {
            multiplierValue = $(this).val();
            $('.xp').each(function(index) {
                var finalXP = currentXPArray[index] + (currentXPArray[index] * (multiplierValue / 100));
                $(this).text(Math.round(finalXP));
                $(this).css({
                    'font-weight': 'bold'
                });
            });
            $('.money').each(function(index) {
                var finalCash = currentCashArray[index] + (currentCashArray[index] * (multiplierValue / 100));
                var cashSymbol = "$ ";
                $(this).text(cashSymbol + Math.round(finalCash));
                $(this).css({
                    'font-weight': 'bold'
                });
            });
        });
        $('.appImage').replaceWith('<img src="https://wiki.the-west.net/images/8/8c/Transparent.png" class="job_Type" style="position:absolute;margin-top:-6px;margin-left:-6px;" />');
        $("input[name='selectRadio']").change(
            function() {
                var $src = "";
                if ($(this).val() == '50') {
                    $src = "https://wiki.the-west.net/images/a/ac/Silverjob_small.png";
                } else if ($(this).val() == '100') {
                    $src = "https://wiki.the-west.net/images/a/a6/Goldjob_small.png";
                } else {
                    $src = "https://wiki.the-west.net/images/8/8c/Transparent.png"
                    $('.money').css({
                        'font-weight': 'normal'
                    });
                    $('.xp').css({
                        'font-weight': 'normal'
                    });
                }
                $('.job_Type').attr('src', $src);
            });
    });
})(jQuery);

//Page translator - Criminus 2023
(function($) {
    $(document).ready(function() {
        //$('#p-Language > div.border-1 > div > div').append(
        $('#module-page-navigation').append(
            $('<div>')
            .addClass('inner-body')
        );
        //$('#p-Language > div.border-1 > div > div > div').append(
        $('#module-page-navigation').append(
            $('<div>')
            .addClass('langPicker')
        );

        var languages = [{
                lang: 'en',
                title: 'English',
                src: 'https://wiki.the-west.net/images/c/ce/Gb.png',
                //link: 'https://wiki.the-west.net/wiki/Main_Page'
                link: 'https://wiki.the-west.net/wiki/Main_Page'
            },
            {
                lang: 'dk',
                title: 'Danish',
                src: 'https://wiki.the-west.net/images/0/06/Dk.png',
                //link: 'https://wiki.the-west.net/wiki/Forside'
                link: 'https://wiki.the-west.net/wiki/Forside'
            },
            {
                lang: 'se',
                title: 'Swedish',
                src: 'https://wiki.the-west.net/images/d/d0/Se.png',
                //link: 'https://wiki.the-west.net/wiki/Huvudsida'
                link: 'https://wiki.the-west.net/wiki/Huvudsida'
            }
        ];

        var translations = {
            en: {
                //Search Box Translation
                searchNav: 'Search',
                searchNavAdv: 'Advanced search',
                searchNavFText: 'Search Wiki The-West EN',
                searchNavFTitle: 'Search Wiki The-West EN [alt-shift-f]',
                //Main Page Translation
                mainPage: 'Main Page',
                mainPageLink: '/wiki/Main_Page',
                //Navigation Categories Translation
                navigationText: 'Navigation',
                gettingStartedText: 'Getting Started',
                gameFeaturesText: 'Game Features',
                newToWikiText: 'New to the Wiki',
                toolsText: 'Tools',
                quickAccessText: 'Quick access',
                moreGamesText: 'More games',
                followUSText: 'Follow us',
                // Navigation links
                rulesText: 'Game rules',
                rulesLink: 'https://wiki.the-west.net/wiki/Game_Rules',
            },
            dk: {
                //Search Box Translation
                searchNav: 'Søg',
                searchNavAdv: 'Avanceret søgning',
                searchNavFText: 'Søg på Wiki The-West DK',
                searchNavFTitle: 'Søg på Wiki The-West DK [alt-shift-f]',
                //Main Page Translation
                mainPage: 'Forside',
                mainPageLink: '/wiki/Forside',
                //Navigation Categories Translation
                navigationText: 'Naviger',
                gettingStartedText: 'Kom godt i gang',
                gameFeaturesText: 'Spilfunktioner',
                newToWikiText: 'Nyt på wikien',
                toolsText: 'Værktøjer',
                quickAccessText: 'Genveje',
                moreGamesText: 'Flere spil',
                followUSText: 'Følg os',
                // Navigation links
                rulesText: 'Regler',
                rulesLink: 'https://wiki.the-west.net/wiki/Regler_pr._September_2020',
            },
            se: {
                //Search Box Translation
                searchNav: 'Sök',
                searchNavAdv: 'Avancerad sökning',
                searchNavFText: 'Sök på Wiki The-West SE',
                searchNavFTitle: 'Sök på Wiki The-West SE [alt-shift-f]',
                //Main Page Translation
                mainPage: 'Huvudsida',
                mainPageLink: '/wiki/Huvudsida',
                //Navigation Categories Translation
                navigationText: 'Navigering',
                gettingStartedText: 'Börja',
                gameFeaturesText: 'Spelfunktioner',
                newToWikiText: 'Nytt på wikin',
                toolsText: 'Verktyg',
                quickAccessText: 'Genvägar',
                moreGamesText: 'Fler spel',
                followUSText: 'Följ oss',
                // Navigation links
                rulesText: 'Spelregler',
                rulesLink: 'https://wiki.the-west.net/wiki/Game_Rules',
            }
        };

        function updateLinks(language) {
            if (translations[language]) {
                //Logo redirects
                $('.tbbox-logo')
                    .wrap('<a href=' + translations[language].mainPageLink + '></a>');
                // Search Box
                $('h3#p-search-label')
                    .text(translations[language].searchNav);
                $('#searchform > a')
                    .text(translations[language].searchNavAdv);
                $('input#searchInput')
                    .attr('placeholder', translations[language].searchNavFText)
                    .attr('title', translations[language].searchNavFTitle);
                // Navigation Categories and Links
                $('#n-Main-Page > a')
                    .text(translations[language].mainPage)
                    .attr('href', translations[language].mainPageLink);
                $('h3#p-Navigation-label')
                    .text(translations[language].navigationText);
                $('h3#p-Getting_Started-label')
                    .text(translations[language].gettingStartedText);
                $('h3#p-Game_Features-label')
                    .text(translations[language].gameFeaturesText);
                $('h3#p-New_to_the_Wiki-label')
                    .text(translations[language].newToWikiText);
                $('h3#p-tb-label')
                    .text(translations[language].toolsText);
                $('span#Quick_access')
                    .text(translations[language].quickAccessText);
                $('span#More_games')
                    .text(translations[language].moreGamesText);
                $('span#Follow_us')
                    .text(translations[language].followUSText);
                //Navigation links
                $('#n-Game-rules > a')
                    .text(translations[language].rulesText)
                    .attr('href', translations[language].rulesLink);
            }
        }

        var storedLanguage = localStorage.getItem('selectedLanguage');

        if (storedLanguage) {
            updateLinks(storedLanguage);
        }

        for (var i = 0; i < languages.length; i++) {
            var imageElement = $('<img>').attr('src', languages[i].src).attr('title', languages[i].title);
            var linkElement = $('<a>')
                .attr('href', languages[i].link)
                .append(imageElement)
                .on('click', {
                    lang: languages[i].lang
                }, function(event) {
                    localStorage.setItem('selectedLanguage', event.data.lang);
                    updateLinks(event.data.lang);
                });
            $('.langPicker').append(linkElement);
        }
    });
})(jQuery);

(function($) {
    $(document).ready(function() {
        var elementToMove = $("#module-site-navigation").detach();

        elementToMove.insertAfter("#mirage-fixed-header");

    });
})(jQuery);


(function($) {
    $(document).ready(function() {
        $('.contact_team-btn').click(function() {
            var url = $(this).data('url');
            if (url) {
                window.open(url, '_blank');
            }
        });
        $('.normal_quest').click(function() {
            var url = $(this).data('url');
            if (url) {
                window.open(url, '_blank');
            }
        });
        $('.repeatable_quest').click(function() {
            var url = $(this).data('url');
            if (url) {
                window.open(url, '_blank');
            }
        });
    });
})(jQuery);

(function($) {
    $(document).on('click', '.dock-toggler', function() {
        const dockItems = $('.dock-items-container');
        const toggler = $('.dock-toggler');
        const toggleDockIcon = $('.toggle-dock');

        dockItems.toggleClass('toggled');
        toggler.toggleClass('toggled');
        toggleDockIcon.toggleClass('toggled');
    });
})(jQuery);

(function($) {
    $(document).ready(function() {
        function adjustColspan() {
            var screenWidth = $(window).width();

            var threshold = 768;

            $('quest.table td, quest.table th').each(function() {
                if (!$(this).data('original-colspan') && $(this).attr('colspan')) {
                    $(this).data('original-colspan', $(this).attr('colspan'));
                }

                if (screenWidth <= threshold) {
                    if ($(this).attr('colspan') && parseInt($(this).attr('colspan'), 10) === 3) {
                        $(this).attr('colspan', '1');
                    }
                } else {
                    if ($(this).data('original-colspan')) {
                        $(this).attr('colspan', $(this).data('original-colspan'));
                    }
                }
            });
        }

        adjustColspan();

        $(window).resize(adjustColspan);
    });
})(jQuery);

(function($) {
    $(document).ready(function() {
        var currentUrl = window.location.pathname.split('/').pop();

        if (currentUrl !== 'MediaWiki:Common.css' || currentUrl !== 'MediaWiki:Common.js') {
            $('#firstHeading').hide();
        }
        if (currentUrl == 'Category:Item_sets' || currentUrl == 'Category:Questlines') {
            $('.mw-category-generated').hide();
        }
    });
})(jQuery);

(function($) {
	$(document).ready(function() {
		$('.quickSearchQuest').append('<span class="textfield_wrapper textfield_flex"><span class="textfield_label"></span><span class="textfield"><span><input type="text" id="QsearchBox" placeholder="Quick Search Quest"></span></span></span>');
	});
})(jQuery);

(function($) {
	$(document).ready(function() {
	  var $images = $(".set_bonus img");
	  $images.each(function() {
		var width = $(this).width();
		var height = $(this).height();
		if (height < 40) {
		  $(this).css("margin-top", "10px");
		}
	  });
	});
})(jQuery);

(function($) {
  $(document).ready(function() {
    var currentMonthContainer = $('#current-month-quests');
    var nextMonthContainer = $('#next-month-quests');

    // Function to start infinite scrolling animation
    function startAnimation(container) {
      var speed = 20; // Adjust the speed as needed
      var scrollDirection = 1; // 1 for scrolling down, -1 for scrolling up
      var scrollDistance = 1; // Adjust the scroll distance as needed

      // Clone the content and append it to create a continuous loop
      var containerContent = container.html();
      container.append(containerContent);

      // Set initial scroll position to 0
      container.scrollTop(0);

      // Define animation function
      function scrollContent() {
        container.scrollTop(container.scrollTop() + (scrollDirection * scrollDistance));
        if (container.scrollTop() >= container.prop('scrollHeight') - container.height()) {
          // Change direction to up when reaching the bottom
          scrollDirection = -1;
        } else if (container.scrollTop() <= 0) {
          // Change direction to down when reaching the top
          scrollDirection = 1;
        }
      }

      // Start the animation loop
      var scrollInterval;

      function startScrollInterval() {
        clearInterval(scrollInterval);
        scrollInterval = setInterval(scrollContent, speed);
      }

      startScrollInterval();

      // Pause animation on hover
      container.on('mouseenter', function() {
        clearInterval(scrollInterval);
      });

      // Resume animation on hover out
      container.on('mouseleave', function() {
        startScrollInterval();
      });
    }

    // Start animation for both containers
    startAnimation(currentMonthContainer);
    startAnimation(nextMonthContainer);
  });
})(jQuery);