MediaWiki:Gadget-bwtimer.js
Материал из Абсурдопедии
Перейти к навигацииПерейти к поискуЗамечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
- Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
- Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
/**
Backward timer -- 13 May 2012.
Автор: [[Участник:Edward Chernenko]].
Ведёт таймер обратного отсчёта ({{обратный отсчёт}}).
*/
/* Функция plural() может пригодиться где-то ещё.
Внимание: гаджет, её использующий, обязан затребовать ext.gadget.main
(иначе эта функция может не успеть загрузиться до его выполнения)
*/
window.plural = function(num, one, two_three_four, many)
{
if(num > 10 && num < 19) return many;
var re = num % 10;
if(re == 1) return one;
if(re >= 2 && re <= 4) return two_three_four;
return many;
}
window.bwtimer = {
update: function() {
var LEFT = Math.round($('#bw_timer_end').html().match('[0-9]{8,}') - ((new Date()).getTime() / 1000));
if(LEFT <= 0)
{
$('#backward-counter').html('');
$('#backward-counter-hide').hide();
return;
}
var LEFT_sec = LEFT % 60;
var LEFT_min = Math.floor(LEFT / 60) % 60;
var LEFT_hour = Math.floor(LEFT / 3600);
$('#bw_timer_left').html(LEFT_hour + " " + plural(LEFT_hour, "час", "часа", "часов") + ", " + LEFT_min + " " + plural(LEFT_min, "минута", "минуты", "минут") + ", " + LEFT_sec + " " + plural(LEFT_sec, "секунда", "секунды", "секунд"));
setTimeout('bwtimer.update()', 1000);
}
};
$(function(){
var BOX = $('#backward-counter')[0];
if(!BOX) return;
var END = BOX.innerHTML.match('[0-9]{8,}');
if(!END)
{
BOX.innerHTML = "<span style='color: red;'>Ошибка: внутри backward-counter должно быть число секунд</span>";
return;
}
var NOW = (new Date()).getTime() / 1000;
if(END < NOW)
{
BOX.innerHTML = "";
$('#backward-counter-hide').hide();
return;
}
BOX.innerHTML = "<span id='bw_timer_end' style='display: none;'>" + END + "</span><span id='bw_timer_left'></span>";
BOX.style.display = "inline";
bwtimer.update();
});