Difference between revisions of "MediaWiki:Common.js"

m
m
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
+
// window.onload = function() {
 +
countUpFromTime2("Jan 12, 2015 15:19:00", 'countup1',"Oct 17, 2022 08:48:00", 'countup2');
 +
// };
 +
function countUpFromTime2(countFrom1, id1, countFrom2, id2) {
 +
  countUpFromTime(countFrom1, id1);
 +
  countUpFromTime(countFrom2, id2);
 +
  clearTimeout(countUpFromTime2.interval);
 +
  countUpFromTime.interval = setTimeout(function(){ countUpFromTime2(countFrom1, id1, countFrom2, id2); }, 1000);
 +
}
 +
function countUpFromTime(countFrom, id) {
 +
  countFrom = new Date(countFrom).getTime();
 +
  var now = new Date(),
 +
      countFrom = new Date(countFrom),
 +
      timeDifference = (now - countFrom);
 +
   
 +
  var secondsInADay = 60 * 60 * 1000 * 24,
 +
      secondsInAHour = 60 * 60 * 1000;
 +
   
 +
  days = Math.floor(timeDifference / (secondsInADay) * 1);
 +
  years = Math.floor(days / 365);
 +
  if (years >= 1){ days = days - (years * 365) }
 +
  hours = Math.floor((timeDifference % (secondsInADay)) / (secondsInAHour) * 1);
 +
  mins = Math.floor(((timeDifference % (secondsInADay)) % (secondsInAHour)) / (60 * 1000) * 1);
 +
  secs = Math.floor((((timeDifference % (secondsInADay)) % (secondsInAHour)) % (60 * 1000)) / 1000 * 1);
  
 
+
  var idEl = document.getElementById(id);
 
+
  if (idEl != null) {
 
+
    idEl.getElementsByClassName('years')[0].innerHTML = years;
 
+
    idEl.getElementsByClassName('days')[0].innerHTML = days;
function Pager(tableName, itemsPerPage)
+
    idEl.getElementsByClassName('hours')[0].innerHTML = hours;
{
+
    idEl.getElementsByClassName('minutes')[0].innerHTML = mins;
this.tableName = tableName;
+
    idEl.getElementsByClassName('seconds')[0].innerHTML = secs;
this.itemsPerPage = itemsPerPage;
+
  }
this.currentPage = 1;
+
}
this.pages = 0;
 
this.inited = false;
 
this.showRecords = function(from, to)
 
{
 
var rows = document.getElementById(tableName).rows;
 
/* i starts from 1 to skip table header row */
 
for (var i = 1; i < rows.length; i++)  
 
{
 
if (i < from || i > to)
 
rows[i].style.display = 'none';
 
else
 
rows[i].style.display = '';
 
};
 
};
 
this.showPage = function(pageNumber)
 
{
 
if (! this.inited)
 
{
 
/*alert("not inited");*/
 
return;
 
};
 
var oldPageAnchor = document.getElementById('pg'+this.currentPage);
 
oldPageAnchor.className = 'ref-pg-normal';
 
this.currentPage = pageNumber;
 
var newPageAnchor = document.getElementById('pg'+this.currentPage);
 
newPageAnchor.className = 'ref-pg-selected';
 
var from = (pageNumber - 1) * itemsPerPage + 1;
 
var to = from + itemsPerPage - 1;
 
this.showRecords(from, to);
 
};
 
this.prev = function()
 
{
 
if (this.currentPage > 1) this.showPage(this.currentPage - 1);
 
};
 
this.next = function()
 
{
 
if (this.currentPage < this.pages)
 
{
 
this.showPage(this.currentPage + 1);
 
};
 
};
 
this.init = function()
 
{
 
var rows = document.getElementById(tableName).rows;
 
var records = (rows.length - 1);
 
this.pages = Math.ceil(records / itemsPerPage);
 
this.inited = true;
 
};
 
this.showPageNav = function(pagerName, positionId)
 
{
 
if (! this.inited)
 
{
 
/*alert("not inited");*/
 
return;
 
};
 
var element = document.getElementById(positionId);
 
var pagerHtml = '<span onclick="' + pagerName + '.prev();" class="ref-pg-normal"> &#x226a Prev </span> ';
 
for (var page = 1; page <= this.pages; page++)
 
pagerHtml += '<span id="pg' + page + '" class="ref-pg-normal" onclick="' + pagerName + '.showPage(' + page + ');">' + page + '</span> ';
 
pagerHtml += '<span onclick="'+pagerName+'.next();" class="ref-pg-normal"> Next &#x226b</span>';
 
element.innerHTML = pagerHtml;
 
};
 
};
 

Latest revision as of 20:42, 17 December 2023

// window.onload = function() {
countUpFromTime2("Jan 12, 2015 15:19:00", 'countup1',"Oct 17, 2022 08:48:00", 'countup2'); 
// };
function countUpFromTime2(countFrom1, id1, countFrom2, id2) {
  countUpFromTime(countFrom1, id1);
  countUpFromTime(countFrom2, id2);
  clearTimeout(countUpFromTime2.interval);
  countUpFromTime.interval = setTimeout(function(){ countUpFromTime2(countFrom1, id1, countFrom2, id2); }, 1000);
}
function countUpFromTime(countFrom, id) {
  countFrom = new Date(countFrom).getTime();
  var now = new Date(),
      countFrom = new Date(countFrom),
      timeDifference = (now - countFrom);
    
  var secondsInADay = 60 * 60 * 1000 * 24,
      secondsInAHour = 60 * 60 * 1000;
    
  days = Math.floor(timeDifference / (secondsInADay) * 1);
  years = Math.floor(days / 365);
  if (years >= 1){ days = days - (years * 365) }
  hours = Math.floor((timeDifference % (secondsInADay)) / (secondsInAHour) * 1);
  mins = Math.floor(((timeDifference % (secondsInADay)) % (secondsInAHour)) / (60 * 1000) * 1);
  secs = Math.floor((((timeDifference % (secondsInADay)) % (secondsInAHour)) % (60 * 1000)) / 1000 * 1);

  var idEl = document.getElementById(id);
  if (idEl != null) {
    idEl.getElementsByClassName('years')[0].innerHTML = years;
    idEl.getElementsByClassName('days')[0].innerHTML = days;
    idEl.getElementsByClassName('hours')[0].innerHTML = hours;
    idEl.getElementsByClassName('minutes')[0].innerHTML = mins;
    idEl.getElementsByClassName('seconds')[0].innerHTML = secs;
  }
}