MediaWiki:Common.js

From Card Hunter Wiki
Revision as of 01:21, 27 March 2013 by Phaselock (Talk | contribs)

Jump to: navigation, search

Note: After saving, 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: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Clear the cache in Tools → Preferences
/* Any JavaScript here will be loaded for all users on every page load. */

article = "";
var tooltipsOn = true;
var $tfb, $ttfb, $htt;
var activeHoverLink = null;
var tipCache = new Object();

function Consolidatedeck() {
  var $deck = $('#builddeck');
  if ($deck!=null)
  {
    $('.smwtable').each(function () {
      var list = $("<ul/>");
      var rowCount=$('.smwtable tr').length;
      var colCount=$('.smwtable tr:nth-child(1) td').length;
      $('.smwtable tr').each(function() {
        $(this).find('td').each (function() {
          if ($(this).children().is("a")) {
            var valThis = $(this).text();
            //var valThiscount = parseInt($(this).prev().text());
var valThiscount = $(this).prev().text();
            var myRow = $(this).parent('tr').index();
            for (var i =(myRow+1); i < rowCount; i++) {
              for (var j = 0; j < colCount; j++) {
                var listSel = $('.smwtable td').get((colCount*i)+j);
//alert((colCount*i)+j);
                if ($(listSel).children().is("a")){
                  var listVal = $(listSel).text();
                  if (listVal === valThis){
                    //var listValCount = parseInt($(listSel).prev().text());
alert(listVal); 
var listValCount = $(listSel).prev().text(); 
                    valThiscount+=listValCount;
                    $(listSel).html("");
                  }
                }
              }
            }
            var p = $(this).map(function () {
              if ($(this).html()!=null){
                //var str=$(this).find('a').text();
                //$(this).find('a').text(str.slice(6));
                return "<p>" + valThiscount + " " + $(this).html() + "</p>";
              }
            });
            $(this).html("");
            //list.append("<li>" + $.makeArray(p).join("") + "</li>");
            list.append($.makeArray(p).join(""));
          }
        });
      });       
      //$(this).parent().replaceWith(list);
      $(this).parent().append(list);
    });
  }
}
// hides the tooltip
function hideTip() {
  $tfb.html("").removeClass("tooltip-ready").addClass("hidden").css("visibility","hidden"); 
  activeHoverLink = null;
}

// displays the tooltip
function displayTip(e) {
  $tfb.not(":empty").removeClass("hidden").addClass("tooltip-ready");
  moveTip(e);
  $tfb.not(":empty").css("visibility","visible");
  moveTip(e);
}

// moves the tooltip
function moveTip(e) {
  $ct = $tfb.not(":empty");
  var newTop = e.clientY + ((e.clientY > ($(window).height()/2)) ? -($ct.innerHeight()+20):20);
  var newLeft = e.clientX + ((e.clientX > ($(window).width()/2)) ? -($ct.innerWidth()+20):20);
  $ct.css({"position":"fixed","top":newTop + "px","left":newLeft + "px"});
}

// AJAX tooltips
function showTip(e) {
  var $t=$(this);
  activeHoverLink = $t;
  $p=$t.parent();
  if ($p.hasClass("selflink")==false) {
    $t.removeAttr("title");
    $p.removeAttr("title");
    //var url=$p.attr("href")+" .image";  VERY SLOW LOADING OF IMAGES !
    var url="/wiki/Template:Spotlight .image"; //Remember: changing the image in the template will change the 'Coming Soon' image!!!
    if (tipCache[url] != null) {
      $tfb.html(tipCache[url]);
      displayTip(e);
      return;
    }
  }
  $tfb.load(url,function () {
    if ($t != activeHoverLink) return;
    if ($tfb.html() == "") $tfb.html('<div class="tooltip-content"><b>Testing tooltip</b></div>');
    $tfb.find(".image").css("display","");
    tipCache[url] = $tfb.html();
    displayTip(e);
  });
}

function bindTT() {
  $t=$(this);
  $p=$t.parent();
  if ($p.hasClass("selflink") == false) {
    $t.data("tt", $p.attr("title")).hover(showTip,hideTip).mousemove(moveTip);
  }
}

function addTT() {
    $(this).wrapInner('<span class="ajaxttlink" />');
}

function Inittooltips() {
  if ($tfb == null) {
    $(article).append('<div id="tfb" class="htt"></div><div id="templatetfb" class="htt"></div>');
    $tfb = $("#tfb");
    $ttfb = $("#templatetfb");
    $htt = $("#tfb,#templatetfb");
  }
  $(article + " a[href*='wiki/Cards/']:not(:has(span.ajaxttlink))").each(addTT);
  $(article + " span.ajaxttlink:not(:has(span.disablett))").each(bindTT);
}

function modifyHeader() {
  var str=$("#firstHeading").html();
  if (str.indexOf("Cards/")==17||str.indexOf("Items/")==17) $("#firstHeading").html(str.slice(23));
}

$(function() {
  article = "#bodyContent";

  Consolidatedeck();
  
  var headerstr=$("#firstHeading").html();
  /*js to remove ugly header in Main page.*/
  if (headerstr.indexOf("Cardhuntria:Community portal")>0) $("#firstHeading").remove(); 

  /*js to strip "Cards/" and "Items/" from headers belonging to card and item pages.*/
  if ((headerstr.indexOf("Cards/")>0) || (headerstr.indexOf("Items/")>0))  modifyHeader();
  else if (tooltipsOn) Inittooltips();
});
      
Personal tools
Namespaces

Variants
Actions
Navigation
Tools