Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
Onderduiker (talk | contribs) (Removed collapsible table code (redundant and potential source of conflict, according to Antitrust)) |
|||
(46 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
/* This code displays a clock or a countdown timer. Adapted from w3schools.com example. */ | /* This code displays a clock or a countdown timer. Adapted from w3schools.com example. */ | ||
− | function | + | (function($) { |
− | |||
− | |||
− | + | function cdTimer() { | |
− | + | var timerElem = $('#CountdownTimer'); | |
− | |||
− | |||
− | |||
− | |||
− | + | function checkTime(i) { | |
− | + | if (i < 10) { | |
− | + | i = "0" + i; | |
− | + | } | |
− | + | return i; | |
+ | } | ||
− | + | if (timerElem.length > 0) { | |
− | + | var cdoffset = Number(document.getElementById('cdoffset').innerHTML); | |
− | + | var today = new Date(); | |
+ | var h = today.getUTCHours(); | ||
+ | var m = today.getUTCMinutes(); | ||
+ | var s = today.getUTCSeconds(); | ||
− | + | var s1 = (s !== 0) ? 60 - s : s; | |
− | + | var m1 = (m !== 0) ? 60 - m : m; | |
− | + | var h1 = (24 - (h - cdoffset)) % 24; | |
− | + | ||
− | + | // add a zero in front of numbers<10 | |
− | + | h1 = checkTime(h1); | |
− | } | + | m1 = checkTime(m1); |
+ | s1 = checkTime(s1); | ||
+ | timerElem.text(h1 + ":" + m1 + ":" + s1); | ||
+ | t = setTimeout(function() { | ||
+ | cdTimer(); | ||
+ | }, 1000); | ||
+ | |||
+ | } | ||
+ | } | ||
+ | |||
+ | function sTime() { | ||
+ | var timeElem = $('#ServerTime'); | ||
+ | |||
+ | function checkTime(i) { | ||
+ | if (i < 10) { | ||
+ | i = "0" + i; | ||
+ | } | ||
+ | return i; | ||
+ | } | ||
+ | |||
+ | if (timeElem.length > 0) { | ||
+ | var soffset = Number(document.getElementById('soffset').innerHTML); | ||
+ | var today = new Date(); | ||
+ | var h = today.getUTCHours(); | ||
+ | var m = today.getUTCMinutes(); | ||
+ | var s = today.getUTCSeconds(); | ||
+ | |||
+ | var h2 = (h + soffset) % 24; | ||
+ | |||
+ | // add a zero in front of numbers<10 | ||
+ | h2 = checkTime(h2); | ||
+ | m2 = checkTime(m); | ||
+ | s2 = checkTime(s); | ||
+ | timeElem.text(h2 + ":" + m2 + ":" + s2); | ||
+ | t = setTimeout(function() { | ||
+ | sTime(); | ||
+ | }, 1000); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | $(document).ready(cdTimer); | ||
+ | $(document).ready(sTime); | ||
+ | |||
+ | })(jQuery); | ||
+ | |||
+ | |||
+ | function dbfood() | ||
+ | { | ||
+ | if(document.getElementById('intfood')) | ||
+ | { | ||
+ | var drop1string = document.getElementById("dropdown1").innerHTML; | ||
+ | var drop1array = drop1string.split("@-@"); | ||
+ | var drop1list = " "; | ||
+ | var drop2list = " "; | ||
− | + | var drop3string = document.getElementById("dropdown2").innerHTML; | |
+ | var drop3array = drop3string.split("@-@"); | ||
+ | var drop3list = " "; | ||
+ | var rngarray = document.getElementById("rngbase").innerHTML.split("@@"); | ||
+ | |||
+ | for (var m=0;m<drop1array.length;m++) | ||
+ | { | ||
+ | var x = drop1array[m].split("@@"); | ||
+ | drop1list = drop1list + '<option value="' + x[0] + '">' + x[1] + '</option>'; | ||
+ | drop2list = drop1list; | ||
+ | } | ||
− | + | for (var n=0;n<drop3array.length;n++) | |
− | + | { | |
− | + | var y = drop3array[n].split("@@"); | |
+ | drop3list = drop3list + '<option value="' + y[0] + '">' + y[1] + '</option>'; | ||
+ | } | ||
− | + | document.getElementById('intfood').innerHTML = '<input id="gw2textinput" class="gw2textinput" placeholder="Search..."><br /><select id="drop1" class="gw2drop1">' + drop1list + '</select><br /><select id="drop2" class="gw2drop2">' + drop2list + '</select><br /><select id="drop3" class="gw2drop3">' + drop3list + '</select><br /><input class="gw2level1" value="1"><input class="gw2level2" value="80"><input id="food" type="checkbox" checked="checked" class="gw2check1" /><input id="notfood" type="checkbox" class="gw2check2" /><div class="gw2submit"></div>'; | |
− | + | document.getElementById('rngtext').innerHTML = rngarray[Math.floor((Math.random()*rngarray.length))]; | |
− | + | ||
− | + | var ua = navigator.userAgent, | |
− | + | event = (ua.match(/iPad/i)) ? "touchstart" : "click"; | |
− | + | ||
+ | $(".gw2submit").live(event, function() { | ||
+ | var database = document.getElementById("database").innerHTML; | ||
+ | var databasearray = database.split("@@"); | ||
+ | var level = [Number($(".gw2level1").val()),Number($(".gw2level2").val())]; | ||
+ | var drop1 = document.getElementById("drop1").options[document.getElementById("drop1").selectedIndex].value; | ||
+ | var drop2 = document.getElementById("drop2").options[document.getElementById("drop2").selectedIndex].value; | ||
+ | var drop3 = document.getElementById("drop3").options[document.getElementById("drop3").selectedIndex].value; | ||
+ | var food; | ||
+ | var notfood; | ||
+ | var result = " "; | ||
+ | var newfield = " "; | ||
+ | var textinput = $(".gw2textinput").val().substring(0, 50).trim(); | ||
+ | var patt1 = /ascending/g; | ||
+ | var patt2 = /wiki/g; | ||
+ | var wlinks = []; | ||
+ | var newliner; | ||
+ | var resultnumber = 0; | ||
+ | var databasearraysorting = []; | ||
+ | |||
+ | for (var i=0;i<=1;i++) | ||
+ | { | ||
+ | if (level[i]<1) | ||
+ | { | ||
+ | level[i] = 1; | ||
+ | } | ||
+ | if (level[i]>80) | ||
+ | { | ||
+ | level[i] = 80; | ||
+ | } | ||
+ | if (level[0]>level[1]) | ||
+ | { | ||
+ | level = level.reverse(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (document.getElementById("food").checked === true) | ||
+ | { | ||
+ | food = 1; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | food = 0; | ||
+ | } | ||
+ | if (document.getElementById("notfood").checked === true) | ||
+ | { | ||
+ | notfood = 2; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | notfood = 0; | ||
+ | } | ||
+ | var foodtype = food + notfood; | ||
− | + | for (var h=0;h<databasearray.length;h++) | |
− | + | { | |
− | + | databasearraysorting[h] = [databasearray[h],databasearray[h].split("@-@")[5]]; | |
− | + | } | |
− | |||
− | + | databasearraysorting.sort(function(a, b) | |
+ | { | ||
+ | return b[1] - a[1]; | ||
+ | }); | ||
− | + | for (var g=0;g<databasearray.length;g++) | |
− | + | { | |
− | + | databasearray[g] = databasearraysorting[g][0]; | |
− | + | } | |
− | + | ||
− | + | if (patt1.test(textinput) === true) | |
− | + | { | |
+ | databasearray = databasearray.reverse(); | ||
+ | textinput = textinput.replace(patt1,'').trim(); | ||
+ | } | ||
+ | |||
+ | if (patt2.test(textinput) === true) | ||
+ | { | ||
+ | textinput = textinput.replace(patt2,'').trim(); | ||
+ | newfield = document.getElementById("wtable").innerHTML; | ||
+ | } | ||
+ | |||
+ | for (var k=0;k<databasearray.length;k++) | ||
+ | { | ||
+ | var temparray = databasearray[k].split("@-@"); | ||
+ | if (Number(temparray[5]) >= level[0] && Number(temparray[5]) <= level[1]) | ||
+ | { | ||
+ | if (foodtype == 3 || Number(temparray[6]) == foodtype) | ||
+ | { | ||
+ | if (databasearray[k].search(drop1) >=0 && databasearray[k].search(drop2) >=0 && databasearray[k].search(drop3) >=0 && databasearray[k].toLowerCase().search(textinput.toLowerCase()) >=0) | ||
+ | { | ||
+ | if (newfield === ' ') | ||
+ | { | ||
+ | result= result + '<table class="gw2tth"><tr><td colspan="2" class="gw2tt"><a style="color: #5498ff; text-decoration: none;" href="http://wiki.guildwars2.com/wiki/' + temparray[0] + '">' + temparray[0] + '</a></td></tr><tr><td valign="top" class="gw2tc1">Nourishment (' + temparray[1] + ')<br /><br />Required Level: ' + temparray[5] + '</td><td valign="top">' + temparray[2] + ((temparray[3] === " ")?temparray[3]:'<br />' + temparray[3]) + '<br />' + temparray[4] + '</td></tr></table>'; | ||
+ | resultnumber = resultnumber + 1; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | result = result + '<br />|-<br />|' + temparray[5] + '||' + temparray[1] + '||{{item icon|' + temparray[0] + '|large=y}} || ' + temparray[2] + ((temparray[3] === " ")?temparray[3]:'<br />' + temparray[3]) + ((temparray[4].search('10') >=0)?'':'<br />' + temparray[4]); | ||
+ | resultnumber = resultnumber + 1; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (newfield != ' ') | ||
+ | { | ||
+ | result = result.replace(/\./g,''); | ||
+ | wlinks = document.getElementById("wlinks").innerHTML.split("@-@"); | ||
+ | for (var m=0;m<wlinks.length;m++) | ||
+ | { | ||
+ | result = result.split(wlinks[m].split("@@")[0]).join(wlinks[m].split("@@")[1]); | ||
+ | } | ||
+ | } | ||
+ | document.getElementById('result').innerHTML = ((newfield === ' ')?result:newfield + result + '<br />|}'); | ||
+ | document.getElementById('resultnumber').innerHTML = resultnumber + ' out of ' + databasearray.length; | ||
+ | }); | ||
+ | |||
+ | } | ||
} | } | ||
− | + | window.document.body.onload = dbfood; | |
− |
Latest revision as of 21:23, 2 July 2013
/* Any JavaScript here will be loaded for all users on every page load. */ /* This code displays a clock or a countdown timer. Adapted from w3schools.com example. */ (function($) { function cdTimer() { var timerElem = $('#CountdownTimer'); function checkTime(i) { if (i < 10) { i = "0" + i; } return i; } if (timerElem.length > 0) { var cdoffset = Number(document.getElementById('cdoffset').innerHTML); var today = new Date(); var h = today.getUTCHours(); var m = today.getUTCMinutes(); var s = today.getUTCSeconds(); var s1 = (s !== 0) ? 60 - s : s; var m1 = (m !== 0) ? 60 - m : m; var h1 = (24 - (h - cdoffset)) % 24; // add a zero in front of numbers<10 h1 = checkTime(h1); m1 = checkTime(m1); s1 = checkTime(s1); timerElem.text(h1 + ":" + m1 + ":" + s1); t = setTimeout(function() { cdTimer(); }, 1000); } } function sTime() { var timeElem = $('#ServerTime'); function checkTime(i) { if (i < 10) { i = "0" + i; } return i; } if (timeElem.length > 0) { var soffset = Number(document.getElementById('soffset').innerHTML); var today = new Date(); var h = today.getUTCHours(); var m = today.getUTCMinutes(); var s = today.getUTCSeconds(); var h2 = (h + soffset) % 24; // add a zero in front of numbers<10 h2 = checkTime(h2); m2 = checkTime(m); s2 = checkTime(s); timeElem.text(h2 + ":" + m2 + ":" + s2); t = setTimeout(function() { sTime(); }, 1000); } } $(document).ready(cdTimer); $(document).ready(sTime); })(jQuery); function dbfood() { if(document.getElementById('intfood')) { var drop1string = document.getElementById("dropdown1").innerHTML; var drop1array = drop1string.split("@-@"); var drop1list = " "; var drop2list = " "; var drop3string = document.getElementById("dropdown2").innerHTML; var drop3array = drop3string.split("@-@"); var drop3list = " "; var rngarray = document.getElementById("rngbase").innerHTML.split("@@"); for (var m=0;m<drop1array.length;m++) { var x = drop1array[m].split("@@"); drop1list = drop1list + '<option value="' + x[0] + '">' + x[1] + '</option>'; drop2list = drop1list; } for (var n=0;n<drop3array.length;n++) { var y = drop3array[n].split("@@"); drop3list = drop3list + '<option value="' + y[0] + '">' + y[1] + '</option>'; } document.getElementById('intfood').innerHTML = '<input id="gw2textinput" class="gw2textinput" placeholder="Search..."><br /><select id="drop1" class="gw2drop1">' + drop1list + '</select><br /><select id="drop2" class="gw2drop2">' + drop2list + '</select><br /><select id="drop3" class="gw2drop3">' + drop3list + '</select><br /><input class="gw2level1" value="1"><input class="gw2level2" value="80"><input id="food" type="checkbox" checked="checked" class="gw2check1" /><input id="notfood" type="checkbox" class="gw2check2" /><div class="gw2submit"></div>'; document.getElementById('rngtext').innerHTML = rngarray[Math.floor((Math.random()*rngarray.length))]; var ua = navigator.userAgent, event = (ua.match(/iPad/i)) ? "touchstart" : "click"; $(".gw2submit").live(event, function() { var database = document.getElementById("database").innerHTML; var databasearray = database.split("@@"); var level = [Number($(".gw2level1").val()),Number($(".gw2level2").val())]; var drop1 = document.getElementById("drop1").options[document.getElementById("drop1").selectedIndex].value; var drop2 = document.getElementById("drop2").options[document.getElementById("drop2").selectedIndex].value; var drop3 = document.getElementById("drop3").options[document.getElementById("drop3").selectedIndex].value; var food; var notfood; var result = " "; var newfield = " "; var textinput = $(".gw2textinput").val().substring(0, 50).trim(); var patt1 = /ascending/g; var patt2 = /wiki/g; var wlinks = []; var newliner; var resultnumber = 0; var databasearraysorting = []; for (var i=0;i<=1;i++) { if (level[i]<1) { level[i] = 1; } if (level[i]>80) { level[i] = 80; } if (level[0]>level[1]) { level = level.reverse(); } } if (document.getElementById("food").checked === true) { food = 1; } else { food = 0; } if (document.getElementById("notfood").checked === true) { notfood = 2; } else { notfood = 0; } var foodtype = food + notfood; for (var h=0;h<databasearray.length;h++) { databasearraysorting[h] = [databasearray[h],databasearray[h].split("@-@")[5]]; } databasearraysorting.sort(function(a, b) { return b[1] - a[1]; }); for (var g=0;g<databasearray.length;g++) { databasearray[g] = databasearraysorting[g][0]; } if (patt1.test(textinput) === true) { databasearray = databasearray.reverse(); textinput = textinput.replace(patt1,'').trim(); } if (patt2.test(textinput) === true) { textinput = textinput.replace(patt2,'').trim(); newfield = document.getElementById("wtable").innerHTML; } for (var k=0;k<databasearray.length;k++) { var temparray = databasearray[k].split("@-@"); if (Number(temparray[5]) >= level[0] && Number(temparray[5]) <= level[1]) { if (foodtype == 3 || Number(temparray[6]) == foodtype) { if (databasearray[k].search(drop1) >=0 && databasearray[k].search(drop2) >=0 && databasearray[k].search(drop3) >=0 && databasearray[k].toLowerCase().search(textinput.toLowerCase()) >=0) { if (newfield === ' ') { result= result + '<table class="gw2tth"><tr><td colspan="2" class="gw2tt"><a style="color: #5498ff; text-decoration: none;" href="http://wiki.guildwars2.com/wiki/' + temparray[0] + '">' + temparray[0] + '</a></td></tr><tr><td valign="top" class="gw2tc1">Nourishment (' + temparray[1] + ')<br /><br />Required Level: ' + temparray[5] + '</td><td valign="top">' + temparray[2] + ((temparray[3] === " ")?temparray[3]:'<br />' + temparray[3]) + '<br />' + temparray[4] + '</td></tr></table>'; resultnumber = resultnumber + 1; } else { result = result + '<br />|-<br />|' + temparray[5] + '||' + temparray[1] + '||{{item icon|' + temparray[0] + '|large=y}} || ' + temparray[2] + ((temparray[3] === " ")?temparray[3]:'<br />' + temparray[3]) + ((temparray[4].search('10') >=0)?'':'<br />' + temparray[4]); resultnumber = resultnumber + 1; } } } } } if (newfield != ' ') { result = result.replace(/\./g,''); wlinks = document.getElementById("wlinks").innerHTML.split("@-@"); for (var m=0;m<wlinks.length;m++) { result = result.split(wlinks[m].split("@@")[0]).join(wlinks[m].split("@@")[1]); } } document.getElementById('result').innerHTML = ((newfield === ' ')?result:newfield + result + '<br />|}'); document.getElementById('resultnumber').innerHTML = resultnumber + ' out of ' + databasearray.length; }); } } window.document.body.onload = dbfood;