MediaWiki:Common.js: Difference between revisions

From A KoL Wiki
imported>Dehstil
mNo edit summary
Use relative path for dmt images
 
(41 intermediate revisions by 7 users not shown)
Line 1: Line 1:
/*<pre>*/
/*<pre>*/
/* tooltips and access keys */
ta = new Object();
ta['pt-userpage'] = new Array('.','My user page');
ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as');
ta['pt-mytalk'] = new Array('n','My talk page');
ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address');
ta['pt-preferences'] = new Array('','My preferences');
ta['pt-watchlist'] = new Array('l','The list of pages you\'re monitoring for changes.');
ta['pt-mycontris'] = new Array('y','List of my contributions');
ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-logout'] = new Array('o','Log out');
ta['ca-talk'] = new Array('t','Discussion about the content page');
ta['ca-edit'] = new Array('e','You can edit this page. Please use the preview button before saving.');
ta['ca-addsection'] = new Array('+','Add a comment to this discussion.');
ta['ca-viewsource'] = new Array('e','This page is protected. You can view its source.');
ta['ca-history'] = new Array('h','Past versions of this page.');
ta['ca-protect'] = new Array('=','Protect this page');
ta['ca-delete'] = new Array('d','Delete this page');
ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted');
ta['ca-move'] = new Array('m','Move this page');
ta['ca-watch'] = new Array('w','Add this page to your watchlist');
ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist');
ta['search'] = new Array('f','Search this wiki');
ta['p-logo'] = new Array('','Main Page');
ta['n-mainpage'] = new Array('z','Visit the Main Page');
ta['n-portal'] = new Array('','About the project, what you can do, where to find things');
ta['n-currentevents'] = new Array('','Find background information on current events');
ta['n-recentchanges'] = new Array('r','The list of recent changes in the wiki.');
ta['n-randompage'] = new Array('x','Load a random page');
ta['n-help'] = new Array('','The place to find out.');
ta['n-sitesupport'] = new Array('','Support us');
ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here');
ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page');
ta['feed-rss'] = new Array('','RSS feed for this page');
ta['feed-atom'] = new Array('','Atom feed for this page');
ta['t-contributions'] = new Array('','View the list of contributions of this user');
ta['t-emailuser'] = new Array('','Send a mail to this user');
ta['t-upload'] = new Array('u','Upload images or media files');
ta['t-specialpages'] = new Array('q','List of all special pages');
ta['ca-nstab-main'] = new Array('c','View the content page');
ta['ca-nstab-user'] = new Array('c','View the user page');
ta['ca-nstab-media'] = new Array('c','View the media page');
ta['ca-nstab-special'] = new Array('','This is a special page, you can\'t edit the page itself.');
ta['ca-nstab-wp'] = new Array('a','View the project page');
ta['ca-nstab-image'] = new Array('c','View the image page');
ta['ca-nstab-mediawiki'] = new Array('c','View the system message');
ta['ca-nstab-template'] = new Array('c','View the template');
ta['ca-nstab-help'] = new Array('c','View the help page');
ta['ca-nstab-category'] = new Array('c','View the category page');


var skin = "monobook";
/* Assuming this section is for custom extensions */
var stylepath = "/thekolwiki/skins";
var skin = "Timeless";
var wgArticlePath = "/thekolwiki/index.php/$1";
var stylepath = "/skins";
var wgScriptPath = "/thekolwiki";
var wgArticlePath = "/$1";
var wgServer = "http://kol.coldfront.net/";
var wgScriptPath = "/";
//var wgCanonicalNamespace = "";
var wgServer = "http://wiki.kingdomofloathing.com/";
//var wgCanonicalSpecialPageName = false;
//var wgNamespaceNumber = 0;
//var wgPageName = "Main_Page";
//var wgTitle = "Main Page";
//var wgArticleId = "13173";
//var wgIsArticle = true;
//var wgUserName = null;
//var wgUserGroups = null;
var wgUserLanguage = "en";
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgBreakFrames = false;
//var wgCurRevisionId = "98546089";
/* end assumption block */


if (!window.onloadFuncts) {
var onloadFuncts = [];
}


function addOnloadHook(hookFunct) {
/* "throbbing" code */
// Allows add-on scripts to add onload functions
var throbs = document.querySelectorAll(".throbtext");
onloadFuncts[onloadFuncts.length] = hookFunct;
if (throbs.length>0) {
  throb_out();
}
}


function MainPage(){
function throb_out() {
var mpTitle = "Main Page";
  var throbs = document.querySelectorAll(".throbtext");
var isMainPage = (document.title.substr(0, document.title.lastIndexOf(" - ")) == mpTitle);
  for (var i=0;i<throbs.length;i++) {
    if ((isMainPage || /[\/=:]Main_Page/.test(document.location)) && document.getElementById('p-cactions')) {
    fadeDown(throbs.item(i),Math.random()*400,0.5);
          document.getElementById('p-cactions').getElementsByTagName("nobr")[0].innerHTML = "Main Page";
  }
      }
  setTimeout(throb_in,400+Math.random()*200);
}
}


/*
function throb_in() {
* Table sorting script  by Joost de Valk, check it out at http://www.joostdevalk.nl/code/sortable-table/.
  var throbs = document.querySelectorAll(".throbtext");
* Based on a script from http://www.kryogenix.org/code/browser/sorttable/.
  for (var i=0;i<throbs.length;i++) {
* Distributed under the MIT license: http://www.kryogenix.org/code/browser/licence.html .
    fadeUp(throbs.item(i),Math.random()*400,Math.min(.95,Math.random()+.5));
*
  }
* Copyright (c) 1997-2006 Stuart Langridge, Joost de Valk.
  setTimeout(throb_out,400+Math.random()*200);
*
* @todo don't break on colspans/rowspans (bug 8028)
* @todo language-specific digit grouping/decimals (bug 8063)
* @todo support all accepted date formats (bug 8226)
*/
 
var ts_image_path = stylepath+"/common/images/";
var ts_image_up = "sort_up.gif";
var ts_image_down = "sort_down.gif";
var ts_image_none = "sort_none.gif";
var ts_europeandate = wgContentLanguage != "en"; // The non-American-inclined can change to "true"
var ts_alternate_row_colors = true;
var SORT_COLUMN_INDEX;
 
function sortables_init() {
var idnum = 0;
// Find all tables with class sortable and make them sortable
var tables = getElementsByClassName(document, "table", "sorttable");//originally sortable
for (var ti = 0; ti < tables.length ; ti++) {
if (!tables[ti].id) {
tables[ti].setAttribute('id','sortable_table_id_'+idnum);
++idnum;
}
ts_makeSortable(tables[ti]);
}
}
}


function ts_makeSortable(table) {
function fadeDown( elem, time, dest ) {
var firstRow;
var startOpacity = elem.style.opacity || 1;
if (table.rows && table.rows.length > 0) {
        var opacityStep = Math.abs(dest-startOpacity)/(time/5);
if (table.tHead && table.tHead.rows.length > 0) {
firstRow = table.tHead.rows[table.tHead.rows.length-1];
} else {
firstRow = table.rows[0];
}
}
if (!firstRow) return;


// We have a first row: assume it's the header, and make its contents clickable links
(function goDn() {
for (var i = 0; i < firstRow.cells.length; i++) {
elem.style.opacity = Number(elem.style.opacity) - Number(opacityStep);
var cell = firstRow.cells[i];
                if (elem.style.opacity>dest)
if ((" "+cell.className+" ").indexOf(" unsortable ") == -1) {
    setTimeout( goDn, 5 );
cell.innerHTML += '&nbsp;&nbsp;<a href="#" class="sortheader" onclick="ts_resortTable(this);return false;"><span class="sortarrow"><img src="'+ ts_image_path + ts_image_none + '" alt="&darr;"/></span></a>';
})();
}
}
if (ts_alternate_row_colors) {
ts_alternate(table);
}
}
}


function ts_getInnerText(el) {
function fadeUp( elem, time, dest ) {
if (typeof el == "string") return el;
var startOpacity = elem.style.opacity || 1;
if (typeof el == "undefined") { return el };
        var opacityStep = Math.abs(dest-startOpacity)/(time/5);
if (el.innerText) return el.innerText; // Not needed but it is faster
var str = "";


var cs = el.childNodes;
(function goUp() {
var l = cs.length;
elem.style.opacity = Number(elem.style.opacity) + Number(opacityStep);
for (var i = 0; i < l; i++) {
                if (elem.style.opacity<dest)
switch (cs[i].nodeType) {
    setTimeout( goUp, 5 );
case 1: //ELEMENT_NODE
})();
str += ts_getInnerText(cs[i]);
break;
case 3: //TEXT_NODE
str += cs[i].nodeValue;
break;
}
}
return str;
}
}
/* end "throbbing" code */


function ts_resortTable(lnk) {
/* for drifting the underlay images of crimbots */
// get the span
var moveDrifty = function () {
var span = lnk.getElementsByTagName('span')[0];
  var drifty = $('#driftypoo');
 
  var top = Math.floor(Math.random() * 51);
var td = lnk.parentNode;
  var left = Math.floor(Math.random() * 51);
var tr = td.parentNode;
  drifty.animate({top: top, left: left}, 2000, 'swing', moveDrifty);
var column = td.cellIndex;
};
 
jQuery(moveDrifty);
var table = tr.parentNode;
while (table && !(table.tagName && table.tagName.toLowerCase() == 'table'))
table = table.parentNode;
if (!table) return;
 
// Work out a type for the column
if (table.rows.length <= 1) return;
 
// Skip the first row if that's where the headings are
var rowStart = (table.tHead && table.tHead.rows.length > 0 ? 0 : 1);


var itm = "";
/* For DMT monsters */
for (var i = rowStart; i < table.rows.length; i++) {
jQuery(function ($) {
if (table.rows[i].cells.length > column) {
    function dmtp(mp,pathi,f1,f2) {
itm = ts_getInnerText(table.rows[i].cells[column]);
        var part1="Dmtmonster_part1.png";
itm = itm.replace(/^[\s\xa0]+/, "").replace(/[\s\xa0]+$/, "");
        var part2="Dmtmonster_part2.png";
if (itm != "") break;
        var part3="Dmtmonster_part3.png";
}
        var part4="Dmtmonster_part4.png";
}
        var part5="Dmtmonster_part5.png";
        var part6="Dmtmonster_part6.png";
        var part7="Dmtmonster_part7.png";
        var pathA = [[[part6,[46,57],[-12,57],[17,115],2,[17,115]],[part7,[-12,57],[46,57],[17,115],2,[17,115]],[part6,[46,57],[-12,57],[17,115],1,[-12,57]],[part3,[46,57],[-12,57],[17,115],1,[-12,57]],[part6,[157,56],[98,56],[127.5,115],2,[127,115]],[part7,[157,56],[98,56],[127.5,115],1,[98,56]],[part6,[157,56],[98,56],[127.5,115],2,[127,115]],[part3,[98,56],[157,56],[127.5,115],2,[127,115]]], // triangle
                    [[part4,[52.8,72.38],[45.2,72.38],[37.22,73.9],[30,76.94],[23.54,81.88],[18.22,87.58],[14.42,94.42],[11.76,102.02],[11,110],[11.76,117.98],[14.42,125.58],[18.22,132.42],[23.54,138.12],[30,143.06],[37.22,146.1],[45.2,147.62],[52.8,147.62],[60.78,146.1],[68,143.06],[74.46,138.12],[79.78,132.42],[83.58,125.58],[86.24,117.98],[87,110],[86.24,102.02],[83.58,94.42],[79.78,87.58],[74.46,81.88],[68,76.94],[60.78,73.9],16,[52,147]],[part5,[60.78,73.9],[68,76.94],[74.46,81.88],[79.78,87.58],[83.58,94.42],[86.24,102.02],[87,110],[86.24,117.98],[83.58,125.58],[79.78,132.42],[74.46,138.12],[68,143.06],[60.78,146.1],[52.8,147.62],[45.2,147.62],[37.22,146.1],[30,143.06],[23.54,138.12],[18.22,132.42],[14.42,125.58],[11.76,117.98],[11,110],[11.76,102.02],[14.42,94.42],[18.22,87.58],[23.54,81.88],[30,76.94],[37.22,73.9],[45.2,72.38],[52.8,72.38],14,[45,147]],[part4,[52.8,72.38],[45.2,72.38],[37.22,73.9],[30,76.94],[23.54,81.88],[18.22,87.58],[14.42,94.42],[11.76,102.02],[11,110],[11.76,117.98],[14.42,125.58],[18.22,132.42],[23.54,138.12],[30,143.06],[37.22,146.1],[45.2,147.62],[52.8,147.62],[60.78,146.1],[68,143.06],[74.46,138.12],[79.78,132.42],[83.58,125.58],[86.24,117.98],[87,110],[86.24,102.02],[83.58,94.42],[79.78,87.58],[74.46,81.88],[68,76.94],[60.78,73.9],20,[79,132]],[part3,[52.8,72.38],[45.2,72.38],[37.22,73.9],[30,76.94],[23.54,81.88],[18.22,87.58],[14.42,94.42],[11.76,102.02],[11,110],[11.76,117.98],[14.42,125.58],[18.22,132.42],[23.54,138.12],[30,143.06],[37.22,146.1],[45.2,147.62],[52.8,147.62],[60.78,146.1],[68,143.06],[74.46,138.12],[79.78,132.42],[83.58,125.58],[86.24,117.98],[87,110],[86.24,102.02],[83.58,94.42],[79.78,87.58],[74.46,81.88],[68,76.94],[60.78,73.9],22,[86,117]],[part4,[149.92,31.6],[156,34.16],[161.44,38.32],[165.92,43.12],[169.12,48.88],[171.36,55.28],[172,62],[171.36,68.72],[169.12,75.12],[165.92,80.88],[161.44,85.68],[156,89.84],[149.92,92.4],[143.2,93.68],[136.8,93.68],[130.08,92.4],[124,89.84],[118.56,85.68],[114.08,80.88],[110.88,75.12],[108.64,68.72],[108,62],[108.64,55.28],[110.88,48.88],[114.08,43.12],[118.56,38.32],[124,34.16],[130.08,31.6],[136.8,30.32],[143.2,30.32],9,[165,80]],[part5,[149.92,31.6],[156,34.16],[161.44,38.32],[165.92,43.12],[169.12,48.88],[171.36,55.28],[172,62],[171.36,68.72],[169.12,75.12],[165.92,80.88],[161.44,85.68],[156,89.84],[149.92,92.4],[143.2,93.68],[136.8,93.68],[130.08,92.4],[124,89.84],[118.56,85.68],[114.08,80.88],[110.88,75.12],[108.64,68.72],[108,62],[108.64,55.28],[110.88,48.88],[114.08,43.12],[118.56,38.32],[124,34.16],[130.08,31.6],[136.8,30.32],[143.2,30.32],7,[171,68]],[part4,[143.2,30.32],[136.8,30.32],[130.08,31.6],[124,34.16],[118.56,38.32],[114.08,43.12],[110.88,48.88],[108.64,55.28],[108,62],[108.64,68.72],[110.88,75.12],[114.08,80.88],[118.56,85.68],[124,89.84],[130.08,92.4],[136.8,93.68],[143.2,93.68],[149.92,92.4],[156,89.84],[161.44,85.68],[165.92,80.88],[169.12,75.12],[171.36,68.72],[172,62],[171.36,55.28],[169.12,48.88],[165.92,43.12],[161.44,38.32],[156,34.16],[149.92,31.6],7,[108,55]],[part3,[143.2,30.32],[136.8,30.32],[130.08,31.6],[124,34.16],[118.56,38.32],[114.08,43.12],[110.88,48.88],[108.64,55.28],[108,62],[108.64,68.72],[110.88,75.12],[114.08,80.88],[118.56,85.68],[124,89.84],[130.08,92.4],[136.8,93.68],[143.2,93.68],[149.92,92.4],[156,89.84],[161.44,85.68],[165.92,80.88],[169.12,75.12],[171.36,68.72],[172,62],[171.36,55.28],[169.12,48.88],[165.92,43.12],[161.44,38.32],[156,34.16],[149.92,31.6],20,[165,80]]], // circle
                    [[part1,[0,69],[57,69],[57,126],[0,126],3,[0,126]],[part2,[57,69],[0,69],[0,126],[57,126],3,[57,126]],[part1,[0,69],[57,69],[57,126],[0,126],3,[0,126]],[part3,[57,69],[0,69],[0,126],[57,126],1,[0,69]],[part1,[140,55],[90,55],[90,105],[140,105],2,[90,105]],[part2,[140,55],[90,55],[90,105],[140,105],0,[140,68]],[part1,[90,55],[140,55],[140,105],[90,105],0,[90,67]],[part3,[90,55],[140,55],[140,105],[90,105],1,[140,55]]]]; // square


sortfn = ts_sort_caseinsensitive;
        var paths = pathA[pathi];      
if (itm.match(/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/))
sortfn = ts_sort_date;
if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/))
sortfn = ts_sort_date;
if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/))
sortfn = ts_sort_date;
if (itm.match(/^[\u00a3$\u20ac]/)) // pound dollar euro
sortfn = ts_sort_currency;
if (itm.match(/^[\d.,]+\%?$/))
sortfn = ts_sort_numeric;


var reverse = (span.getAttribute("sortdir") == 'down');
        mp.css({position:'relative',display:'inline-block',width:200, paddingLeft: 60, paddingTop: 50, height: 200, border:'0px solid green'}).empty();


var newRows = new Array();
        var move = function (img) {
for (var j = rowStart; j < table.rows.length; j++) {
            var d = img.data('paths');
var row = table.rows[j];
            var on = d[d.length - 2];
var keyText = ts_getInnerText(row.cells[column]);
            var next = on+1;
var oldIndex = (reverse ? -j : j);
            if (d[next].length != 2) next = 1;
           
            d[d.length-2] = next;
            img.data('paths', d);
            img.animate({top: d[next][1], left: d[next][0]}, {
                duration:  Math.floor(Math.random() * f1) + f2,
                queue: false,
                easing: d.length > 10 ?'linear' : 'swing',
                complete: function() {
                    move(img);
                }
            });
        };
       
        var pos, img, on;
        for (var i=0; i<paths.length; i++) {
            pos = paths[i][paths[i].length-1];  
            img = $('<img />').css({position: 'absolute', left: pos[0], top: pos[1]}).attr('src', '/Special:Filepath/'+paths[i][0]).data('paths', paths[i]);
            mp.append(img);
            move(img);
        }
    }
   
    var mp = $('#dmtmonster_t');
    if (mp.length>0) {
        dmtp(mp,0,5000,750);
    }
    mp = $('#dmtmonster_c');
    if (mp.length>0) {
        dmtp(mp,1,250,500);
    }
    mp = $('#dmtmonster_s');
    if (mp.length>0) {
        dmtp(mp,2,5000,750);
    }
});


newRows[newRows.length] = new Array(row, keyText, oldIndex);
(function () {
}
    var d = document.querySelectorAll(".counttotal");
 
    for (var i=d.length-1;i>=0;i--) {
newRows.sort(sortfn);
        var count = 0;
 
        var m = d.item(i).className.match(/\bcountable-[a-z0-9][a-z0-9]*\b/g);
var arrowHTML;
        if (m) {
if (reverse) {
            for (var j=m.length-1;j>=0;j--) {
arrowHTML = '<img src="'+ ts_image_path + ts_image_down + '" alt="&darr;"/>';
                var c = document.querySelectorAll(".countable."+m[j]);
newRows.reverse();
                count += c.length;
span.setAttribute('sortdir','up');
            }
} else {
        }
arrowHTML = '<img src="'+ ts_image_path + ts_image_up + '" alt="&uarr;"/>';
        d.item(i).innerHTML = String(count);
span.setAttribute('sortdir','down');
    }
}
})();
 
// We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
// don't do sortbottom rows
for (var i = 0; i < newRows.length; i++) {
if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") == -1)
table.tBodies[0].appendChild(newRows[i][0]);
}
// do sortbottom rows only
for (var i = 0; i < newRows.length; i++) {
if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") != -1)
table.tBodies[0].appendChild(newRows[i][0]);
}
 
// Delete any other arrows there may be showing
var spans = getElementsByClassName(tr, "span", "sortarrow");
for (var i = 0; i < spans.length; i++) {
spans[i].innerHTML = '<img src="'+ ts_image_path + ts_image_none + '" alt="&darr;"/>';
}
span.innerHTML = arrowHTML;
 
ts_alternate(table);
}
 
function ts_dateToSortKey(date) {
// y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
if (date.length == 11) {
switch (date.substr(3,3).toLowerCase()) {
case "jan": var month = "01"; break;
case "feb": var month = "02"; break;
case "mar": var month = "03"; break;
case "apr": var month = "04"; break;
case "may": var month = "05"; break;
case "jun": var month = "06"; break;
case "jul": var month = "07"; break;
case "aug": var month = "08"; break;
case "sep": var month = "09"; break;
case "oct": var month = "10"; break;
case "nov": var month = "11"; break;
case "dec": var month = "12"; break;
// default: var month = "00";
}
return date.substr(7,4)+month+date.substr(0,2);
} else if (date.length == 10) {
if (ts_europeandate == false) {
return date.substr(6,4)+date.substr(0,2)+date.substr(3,2);
} else {
return date.substr(6,4)+date.substr(3,2)+date.substr(0,2);
}
} else if (date.length == 8) {
yr = date.substr(6,2);
if (parseInt(yr) < 50) {
yr = '20'+yr;
} else {
yr = '19'+yr;
}
if (ts_europeandate == true) {
return yr+date.substr(3,2)+date.substr(0,2);
} else {
return yr+date.substr(0,2)+date.substr(3,2);
}
}
return "00000000";
}
 
function ts_parseFloat(num) {
if (!num) return 0;
num = parseFloat(num.replace(/,/, ""));
return (isNaN(num) ? 0 : num);
}
 
function ts_sort_date(a,b) {
var aa = ts_dateToSortKey(a[1]);
var bb = ts_dateToSortKey(b[1]);
return (aa < bb ? -1 : aa > bb ? 1 : a[2] - b[2]);
}
 
function ts_sort_currency(a,b) {
var aa = ts_parseFloat(a[1].replace(/[^0-9.]/g,''));
var bb = ts_parseFloat(b[1].replace(/[^0-9.]/g,''));
return (aa != bb ? aa - bb : a[2] - b[2]);
}
 
function ts_sort_numeric(a,b) {
var aa = ts_parseFloat(a[1]);
var bb = ts_parseFloat(b[1]);
return (aa != bb ? aa - bb : a[2] - b[2]);
}
 
function ts_sort_caseinsensitive(a,b) {
var aa = a[1].toLowerCase();
var bb = b[1].toLowerCase();
return (aa < bb ? -1 : aa > bb ? 1 : a[2] - b[2]);
}
 
function ts_sort_default(a,b) {
return (a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : a[2] - b[2]);
}
 
function ts_alternate(table) {
// Take object table and get all it's tbodies.
var tableBodies = table.getElementsByTagName("tbody");
// Loop through these tbodies
for (var i = 0; i < tableBodies.length; i++) {
// Take the tbody, and get all it's rows
var tableRows = tableBodies[i].getElementsByTagName("tr");
// Loop through these rows
// Start at 1 because we want to leave the heading row untouched
for (var j = 0; j < tableRows.length; j++) {
// Check if j is even, and apply classes for both possible results
var oldClasses = tableRows[j].className.split(" ");
var newClassName = "";
for (var k = 0; k < oldClasses.length; k++) {
if (oldClasses[k] != "" && oldClasses[k] != "even" && oldClasses[k] != "odd")
newClassName += oldClasses[k] + " ";
}
tableRows[j].className = newClassName + (j % 2 == 0 ? "even" : "odd");
}
}
}


/*
* End of table sorting code
*/
addOnloadHook(MainPage);
addOnloadHook(sortables_init);
/*</pre>*/
/*</pre>*/

Latest revision as of 20:56, 4 September 2025

/*<pre>*/

/* Assuming this section is for custom extensions */
var skin = "Timeless";
var stylepath = "/skins";
var wgArticlePath = "/$1";
var wgScriptPath = "/";
var wgServer = "http://wiki.kingdomofloathing.com/";
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
/* end assumption block */


/* "throbbing" code */
var throbs = document.querySelectorAll(".throbtext");
if (throbs.length>0) {
  throb_out();
}

function throb_out() {
  var throbs = document.querySelectorAll(".throbtext");
  for (var i=0;i<throbs.length;i++) {
    fadeDown(throbs.item(i),Math.random()*400,0.5);
  }
  setTimeout(throb_in,400+Math.random()*200);
}

function throb_in() {
  var throbs = document.querySelectorAll(".throbtext");
  for (var i=0;i<throbs.length;i++) {
    fadeUp(throbs.item(i),Math.random()*400,Math.min(.95,Math.random()+.5));
  }
  setTimeout(throb_out,400+Math.random()*200);
}

function fadeDown( elem, time, dest ) {
	var startOpacity = elem.style.opacity || 1;
        var opacityStep = Math.abs(dest-startOpacity)/(time/5);

	(function goDn() {
		elem.style.opacity = Number(elem.style.opacity) - Number(opacityStep);
                if (elem.style.opacity>dest)
  		   setTimeout( goDn, 5 );
	})();
}

function fadeUp( elem, time, dest ) {
	var startOpacity = elem.style.opacity || 1;
        var opacityStep = Math.abs(dest-startOpacity)/(time/5);

	(function goUp() {
		elem.style.opacity = Number(elem.style.opacity) + Number(opacityStep);
                if (elem.style.opacity<dest)
  		   setTimeout( goUp, 5 );
	})();
}
/* end "throbbing" code */

/* for drifting the underlay images of crimbots */
var moveDrifty = function () {
   var drifty = $('#driftypoo');
   var top = Math.floor(Math.random() * 51);
   var left = Math.floor(Math.random() * 51);
   drifty.animate({top: top, left: left}, 2000, 'swing', moveDrifty);
};
jQuery(moveDrifty);

/* For DMT monsters */
jQuery(function ($) {
    function dmtp(mp,pathi,f1,f2) {
        var part1="Dmtmonster_part1.png";
        var part2="Dmtmonster_part2.png";
        var part3="Dmtmonster_part3.png";
        var part4="Dmtmonster_part4.png";
        var part5="Dmtmonster_part5.png";
        var part6="Dmtmonster_part6.png";
        var part7="Dmtmonster_part7.png";
        var pathA = [[[part6,[46,57],[-12,57],[17,115],2,[17,115]],[part7,[-12,57],[46,57],[17,115],2,[17,115]],[part6,[46,57],[-12,57],[17,115],1,[-12,57]],[part3,[46,57],[-12,57],[17,115],1,[-12,57]],[part6,[157,56],[98,56],[127.5,115],2,[127,115]],[part7,[157,56],[98,56],[127.5,115],1,[98,56]],[part6,[157,56],[98,56],[127.5,115],2,[127,115]],[part3,[98,56],[157,56],[127.5,115],2,[127,115]]], // triangle
                     [[part4,[52.8,72.38],[45.2,72.38],[37.22,73.9],[30,76.94],[23.54,81.88],[18.22,87.58],[14.42,94.42],[11.76,102.02],[11,110],[11.76,117.98],[14.42,125.58],[18.22,132.42],[23.54,138.12],[30,143.06],[37.22,146.1],[45.2,147.62],[52.8,147.62],[60.78,146.1],[68,143.06],[74.46,138.12],[79.78,132.42],[83.58,125.58],[86.24,117.98],[87,110],[86.24,102.02],[83.58,94.42],[79.78,87.58],[74.46,81.88],[68,76.94],[60.78,73.9],16,[52,147]],[part5,[60.78,73.9],[68,76.94],[74.46,81.88],[79.78,87.58],[83.58,94.42],[86.24,102.02],[87,110],[86.24,117.98],[83.58,125.58],[79.78,132.42],[74.46,138.12],[68,143.06],[60.78,146.1],[52.8,147.62],[45.2,147.62],[37.22,146.1],[30,143.06],[23.54,138.12],[18.22,132.42],[14.42,125.58],[11.76,117.98],[11,110],[11.76,102.02],[14.42,94.42],[18.22,87.58],[23.54,81.88],[30,76.94],[37.22,73.9],[45.2,72.38],[52.8,72.38],14,[45,147]],[part4,[52.8,72.38],[45.2,72.38],[37.22,73.9],[30,76.94],[23.54,81.88],[18.22,87.58],[14.42,94.42],[11.76,102.02],[11,110],[11.76,117.98],[14.42,125.58],[18.22,132.42],[23.54,138.12],[30,143.06],[37.22,146.1],[45.2,147.62],[52.8,147.62],[60.78,146.1],[68,143.06],[74.46,138.12],[79.78,132.42],[83.58,125.58],[86.24,117.98],[87,110],[86.24,102.02],[83.58,94.42],[79.78,87.58],[74.46,81.88],[68,76.94],[60.78,73.9],20,[79,132]],[part3,[52.8,72.38],[45.2,72.38],[37.22,73.9],[30,76.94],[23.54,81.88],[18.22,87.58],[14.42,94.42],[11.76,102.02],[11,110],[11.76,117.98],[14.42,125.58],[18.22,132.42],[23.54,138.12],[30,143.06],[37.22,146.1],[45.2,147.62],[52.8,147.62],[60.78,146.1],[68,143.06],[74.46,138.12],[79.78,132.42],[83.58,125.58],[86.24,117.98],[87,110],[86.24,102.02],[83.58,94.42],[79.78,87.58],[74.46,81.88],[68,76.94],[60.78,73.9],22,[86,117]],[part4,[149.92,31.6],[156,34.16],[161.44,38.32],[165.92,43.12],[169.12,48.88],[171.36,55.28],[172,62],[171.36,68.72],[169.12,75.12],[165.92,80.88],[161.44,85.68],[156,89.84],[149.92,92.4],[143.2,93.68],[136.8,93.68],[130.08,92.4],[124,89.84],[118.56,85.68],[114.08,80.88],[110.88,75.12],[108.64,68.72],[108,62],[108.64,55.28],[110.88,48.88],[114.08,43.12],[118.56,38.32],[124,34.16],[130.08,31.6],[136.8,30.32],[143.2,30.32],9,[165,80]],[part5,[149.92,31.6],[156,34.16],[161.44,38.32],[165.92,43.12],[169.12,48.88],[171.36,55.28],[172,62],[171.36,68.72],[169.12,75.12],[165.92,80.88],[161.44,85.68],[156,89.84],[149.92,92.4],[143.2,93.68],[136.8,93.68],[130.08,92.4],[124,89.84],[118.56,85.68],[114.08,80.88],[110.88,75.12],[108.64,68.72],[108,62],[108.64,55.28],[110.88,48.88],[114.08,43.12],[118.56,38.32],[124,34.16],[130.08,31.6],[136.8,30.32],[143.2,30.32],7,[171,68]],[part4,[143.2,30.32],[136.8,30.32],[130.08,31.6],[124,34.16],[118.56,38.32],[114.08,43.12],[110.88,48.88],[108.64,55.28],[108,62],[108.64,68.72],[110.88,75.12],[114.08,80.88],[118.56,85.68],[124,89.84],[130.08,92.4],[136.8,93.68],[143.2,93.68],[149.92,92.4],[156,89.84],[161.44,85.68],[165.92,80.88],[169.12,75.12],[171.36,68.72],[172,62],[171.36,55.28],[169.12,48.88],[165.92,43.12],[161.44,38.32],[156,34.16],[149.92,31.6],7,[108,55]],[part3,[143.2,30.32],[136.8,30.32],[130.08,31.6],[124,34.16],[118.56,38.32],[114.08,43.12],[110.88,48.88],[108.64,55.28],[108,62],[108.64,68.72],[110.88,75.12],[114.08,80.88],[118.56,85.68],[124,89.84],[130.08,92.4],[136.8,93.68],[143.2,93.68],[149.92,92.4],[156,89.84],[161.44,85.68],[165.92,80.88],[169.12,75.12],[171.36,68.72],[172,62],[171.36,55.28],[169.12,48.88],[165.92,43.12],[161.44,38.32],[156,34.16],[149.92,31.6],20,[165,80]]], // circle
                     [[part1,[0,69],[57,69],[57,126],[0,126],3,[0,126]],[part2,[57,69],[0,69],[0,126],[57,126],3,[57,126]],[part1,[0,69],[57,69],[57,126],[0,126],3,[0,126]],[part3,[57,69],[0,69],[0,126],[57,126],1,[0,69]],[part1,[140,55],[90,55],[90,105],[140,105],2,[90,105]],[part2,[140,55],[90,55],[90,105],[140,105],0,[140,68]],[part1,[90,55],[140,55],[140,105],[90,105],0,[90,67]],[part3,[90,55],[140,55],[140,105],[90,105],1,[140,55]]]]; // square

        var paths = pathA[pathi];        

        mp.css({position:'relative',display:'inline-block',width:200, paddingLeft: 60, paddingTop: 50, height: 200, border:'0px solid green'}).empty();

        var move = function (img) {
            var d = img.data('paths');
            var on = d[d.length - 2];
            var next = on+1;
            if (d[next].length != 2) next = 1;
            
            d[d.length-2] = next;
            img.data('paths', d);
            img.animate({top: d[next][1], left: d[next][0]}, {
                duration:  Math.floor(Math.random() * f1) + f2,
                queue: false,
                easing: d.length > 10 ?'linear' : 'swing',
                complete: function() {
                    move(img);
                }
            });
        };
        
        var pos, img, on;
        for (var i=0; i<paths.length; i++) {
            pos = paths[i][paths[i].length-1]; 
            img = $('<img />').css({position: 'absolute', left: pos[0], top: pos[1]}).attr('src', '/Special:Filepath/'+paths[i][0]).data('paths', paths[i]);
            mp.append(img);
            move(img);
        }
    }
    
    var mp = $('#dmtmonster_t');
    if (mp.length>0) {
        dmtp(mp,0,5000,750);
    } 
    mp = $('#dmtmonster_c');
    if (mp.length>0) {
        dmtp(mp,1,250,500);
    }
    mp = $('#dmtmonster_s');
    if (mp.length>0) {
        dmtp(mp,2,5000,750);
    }
});

(function () {
    var d = document.querySelectorAll(".counttotal");
    for (var i=d.length-1;i>=0;i--) {
        var count = 0;
        var m = d.item(i).className.match(/\bcountable-[a-z0-9][a-z0-9]*\b/g);
        if (m) {
            for (var j=m.length-1;j>=0;j--) {
                var c = document.querySelectorAll(".countable."+m[j]);
                count += c.length;
            }
        }
        d.item(i).innerHTML = String(count);
    }
})();

/*</pre>*/