<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://twentyonewiki.info/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-Countdown.js</id>
	<title>MediaWiki:Gadget-Countdown.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://twentyonewiki.info/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-Countdown.js"/>
	<link rel="alternate" type="text/html" href="https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;action=history"/>
	<updated>2026-07-09T11:18:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;diff=2153&amp;oldid=prev</id>
		<title>Buburka Rinderbuy: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;diff=2153&amp;oldid=prev"/>
		<updated>2024-01-29T07:20:39Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:20, 29 January 2024&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key twenizlx_mw1497-mw20_:diff::1.12:old-2152:rev-2153 --&gt;
&lt;/table&gt;</summary>
		<author><name>Buburka Rinderbuy</name></author>
	</entry>
	<entry>
		<id>https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;diff=2152&amp;oldid=prev</id>
		<title>MediaWiki:Gadget-Countdown.js&gt;がか: Created page with &quot;// https://dev.fandom.com/wiki/MediaWiki:Countdown/code.js  ;(function (module, mw, $) {   &#039;use strict&#039;    var countdowns = []    var NO_LEADING_ZEROS = 1,     SHORT_FORMAT =...&quot;</title>
		<link rel="alternate" type="text/html" href="https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;diff=2152&amp;oldid=prev"/>
		<updated>2021-05-01T08:42:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;// https://dev.fandom.com/wiki/MediaWiki:Countdown/code.js  ;(function (module, mw, $) {   &amp;#039;use strict&amp;#039;    var countdowns = []    var NO_LEADING_ZEROS = 1,     SHORT_FORMAT =...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// https://dev.fandom.com/wiki/MediaWiki:Countdown/code.js&lt;br /&gt;
&lt;br /&gt;
;(function (module, mw, $) {&lt;br /&gt;
  &amp;#039;use strict&amp;#039;&lt;br /&gt;
&lt;br /&gt;
  var countdowns = []&lt;br /&gt;
&lt;br /&gt;
  var NO_LEADING_ZEROS = 1,&lt;br /&gt;
    SHORT_FORMAT = 2,&lt;br /&gt;
    NO_ZEROS = 4&lt;br /&gt;
&lt;br /&gt;
  function output(i, diff) {&lt;br /&gt;
    var delta,&lt;br /&gt;
      result,&lt;br /&gt;
      parts = []&lt;br /&gt;
    delta = diff % 60&lt;br /&gt;
    result = &amp;#039; &amp;#039; + (delta === 1 ? &amp;#039;second&amp;#039; : &amp;#039;seconds&amp;#039;)&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; SHORT_FORMAT) result = result.charAt(1)&lt;br /&gt;
    parts.unshift(delta + result)&lt;br /&gt;
    diff = Math.floor(diff / 60)&lt;br /&gt;
    delta = diff % 60&lt;br /&gt;
    result = &amp;#039; &amp;#039; + (delta === 1 ? &amp;#039;minute&amp;#039; : &amp;#039;minutes&amp;#039;)&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; SHORT_FORMAT) result = result.charAt(1)&lt;br /&gt;
    parts.unshift(delta + result)&lt;br /&gt;
    diff = Math.floor(diff / 60)&lt;br /&gt;
    delta = diff % 24&lt;br /&gt;
    result = &amp;#039; &amp;#039; + (delta === 1 ? &amp;#039;hour&amp;#039; : &amp;#039;hours&amp;#039;)&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; SHORT_FORMAT) result = result.charAt(1)&lt;br /&gt;
    parts.unshift(delta + result)&lt;br /&gt;
    diff = Math.floor(diff / 24)&lt;br /&gt;
    result = &amp;#039; &amp;#039; + (diff === 1 ? &amp;#039;day&amp;#039; : &amp;#039;days&amp;#039;)&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; SHORT_FORMAT) result = result.charAt(1)&lt;br /&gt;
    parts.unshift(diff + result)&lt;br /&gt;
    result = parts.pop()&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; NO_LEADING_ZEROS) {&lt;br /&gt;
      while (parts.length &amp;amp;&amp;amp; parts[0][0] === &amp;#039;0&amp;#039;) {&lt;br /&gt;
        parts.shift()&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; NO_ZEROS) {&lt;br /&gt;
      parts = parts.filter(function (part) {&lt;br /&gt;
        return part[0] !== &amp;#039;0&amp;#039;&lt;br /&gt;
      })&lt;br /&gt;
    }&lt;br /&gt;
    if (parts.length) {&lt;br /&gt;
      if (countdowns[i].opts &amp;amp; SHORT_FORMAT) {&lt;br /&gt;
        result = parts.join(&amp;#039; &amp;#039;) + &amp;#039; &amp;#039; + result&lt;br /&gt;
      } else {&lt;br /&gt;
        result = parts.join(&amp;#039;, &amp;#039;) + &amp;#039; and &amp;#039; + result&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    countdowns[i].node.text(result)&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function end(i) {&lt;br /&gt;
    var c = countdowns[i].node.parent()&lt;br /&gt;
    var toggle&lt;br /&gt;
    switch (c.attr(&amp;#039;data-end&amp;#039;)) {&lt;br /&gt;
      case &amp;#039;remove&amp;#039;:&lt;br /&gt;
        c.remove()&lt;br /&gt;
        return true&lt;br /&gt;
      case &amp;#039;stop&amp;#039;:&lt;br /&gt;
        output(i, 0)&lt;br /&gt;
        return true&lt;br /&gt;
      case &amp;#039;toggle&amp;#039;:&lt;br /&gt;
        toggle = c.attr(&amp;#039;data-toggle&amp;#039;)&lt;br /&gt;
        if (toggle &amp;amp;&amp;amp; toggle == &amp;#039;next&amp;#039;) {&lt;br /&gt;
          c.next().css(&amp;#039;display&amp;#039;, &amp;#039;inline&amp;#039;)&lt;br /&gt;
          c.css(&amp;#039;display&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
          return true&lt;br /&gt;
        }&lt;br /&gt;
        if (toggle &amp;amp;&amp;amp; $(toggle).length) {&lt;br /&gt;
          $(toggle).css(&amp;#039;display&amp;#039;, &amp;#039;inline&amp;#039;)&lt;br /&gt;
          c.css(&amp;#039;display&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
          return true&lt;br /&gt;
        }&lt;br /&gt;
        break&lt;br /&gt;
      case &amp;#039;callback&amp;#039;:&lt;br /&gt;
        callback = c.attr(&amp;#039;data-callback&amp;#039;)&lt;br /&gt;
        if (callback &amp;amp;&amp;amp; $.isFunction(module[callback])) {&lt;br /&gt;
          output(i, 0)&lt;br /&gt;
          module[callback].call(c)&lt;br /&gt;
          return true&lt;br /&gt;
        }&lt;br /&gt;
        break&lt;br /&gt;
    }&lt;br /&gt;
    countdowns[i].countup = true&lt;br /&gt;
    output(i, 0)&lt;br /&gt;
    return false&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function update() {&lt;br /&gt;
    var now = Date.now()&lt;br /&gt;
    var countdownsToRemove = []&lt;br /&gt;
    $.each(countdowns.slice(0), function (i, countdown) {&lt;br /&gt;
      var diff = Math.floor((countdown.date - now) / 1000)&lt;br /&gt;
      if (diff &amp;lt;= 0 &amp;amp;&amp;amp; !countdown.countup) {&lt;br /&gt;
        if (end(i)) countdownsToRemove.push(i)&lt;br /&gt;
      } else {&lt;br /&gt;
        output(i, Math.abs(diff))&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
    var x&lt;br /&gt;
    while ((x = countdownsToRemove.pop()) !== undefined) {&lt;br /&gt;
      countdowns.splice(x, 1)&lt;br /&gt;
    }&lt;br /&gt;
    if (countdowns.length) {&lt;br /&gt;
      window.setTimeout(function () {&lt;br /&gt;
        update()&lt;br /&gt;
      }, 1000)&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getOptions(node) {&lt;br /&gt;
    var text = node.parent().attr(&amp;#039;data-options&amp;#039;),&lt;br /&gt;
      opts = 0&lt;br /&gt;
    if (text) {&lt;br /&gt;
      if (/no-leading-zeros/.test(text)) {&lt;br /&gt;
        opts |= NO_LEADING_ZEROS&lt;br /&gt;
      }&lt;br /&gt;
      if (/short-format/.test(text)) {&lt;br /&gt;
        opts |= SHORT_FORMAT&lt;br /&gt;
      }&lt;br /&gt;
      if (/no-zeros/.test(text)) {&lt;br /&gt;
        opts |= NO_ZEROS&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return opts&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function init() {&lt;br /&gt;
    var countdown = $(&amp;#039;.countdown:not(.handled)&amp;#039;)&lt;br /&gt;
    if (!countdown.length) return&lt;br /&gt;
    $(&amp;#039;.nocountdown&amp;#039;).css(&amp;#039;display&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
    countdown&lt;br /&gt;
      .css(&amp;#039;display&amp;#039;, &amp;#039;inline&amp;#039;)&lt;br /&gt;
      .find(&amp;#039;.countdowndate&amp;#039;)&lt;br /&gt;
      .each(function () {&lt;br /&gt;
        var $this = $(this),&lt;br /&gt;
          date = new Date($this.text()).valueOf()&lt;br /&gt;
        if (isNaN(date)) {&lt;br /&gt;
          $this.text(&amp;#039;BAD DATE&amp;#039;)&lt;br /&gt;
          return&lt;br /&gt;
        }&lt;br /&gt;
        countdowns.push({&lt;br /&gt;
          node: $this,&lt;br /&gt;
          opts: getOptions($this),&lt;br /&gt;
          date: date,&lt;br /&gt;
        })&lt;br /&gt;
      })&lt;br /&gt;
    countdown.addClass(&amp;#039;handled&amp;#039;)&lt;br /&gt;
    if (countdowns.length) {&lt;br /&gt;
      update()&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.hook(&amp;#039;wikipage.content&amp;#039;).add(init)&lt;br /&gt;
})((window.countdownTimer = window.countdownTimer || {}), mediaWiki, jQuery)&lt;/div&gt;</summary>
		<author><name>MediaWiki:Gadget-Countdown.js&gt;がか</name></author>
	</entry>
</feed>