{% raw %} /* * main.js - This file is compiled and contains code from the following scripts, concatenated together in order: * {% endraw %}{{ config.additional_javascript|join(', ') }}{% raw %} * Please see those files for licensing and authorship information. * Compiled on {% endraw %}{{ time()|date("%c") }}{% raw %} */ /* gettext-compatible _ function, example of usage: * * > // Loading pl_PL.json here (containing polish translation strings generated by tools/i18n_compile.php) * > alert(_("Hello!")); * Witaj! */ function _(s) { return (typeof l10n != 'undefined' && typeof l10n[s] != 'undefined') ? l10n[s] : s; } /* printf-like formatting function, example of usage: * * > alert(fmt("There are {0} birds on {1} trees", [3,4])); * There are 3 birds on 4 trees * > // Loading pl_PL.json here (containing polish translation strings generated by tools/locale_compile.php) * > alert(fmt(_("{0} users"), [3])); * 3 uzytkownikow */ function fmt(s,a) { return s.replace(/\{([0-9]+)\}/g, function(x) { return a[x[1]]; }); } function until($timestamp) { var $difference = $timestamp - Date.now()/1000|0, $num; switch(true){ case ($difference < 60): return "" + $difference + ' ' + _('second(s)'); case ($difference < 3600): //60*60 = 3600 return "" + ($num = Math.round($difference/(60))) + ' ' + _('minute(s)'); case ($difference < 86400): //60*60*24 = 86400 return "" + ($num = Math.round($difference/(3600))) + ' ' + _('hour(s)'); case ($difference < 604800): //60*60*24*7 = 604800 return "" + ($num = Math.round($difference/(86400))) + ' ' + _('day(s)'); case ($difference < 31536000): //60*60*24*365 = 31536000 return "" + ($num = Math.round($difference/(604800))) + ' ' + _('week(s)'); default: return "" + ($num = Math.round($difference/(31536000))) + ' ' + _('year(s)'); } } function ago($timestamp) { var $difference = (Date.now()/1000|0) - $timestamp, $num; switch(true){ case ($difference < 60) : return "" + $difference + ' ' + _('second(s)'); case ($difference < 3600): //60*60 = 3600 return "" + ($num = Math.round($difference/(60))) + ' ' + _('minute(s)'); case ($difference < 86400): //60*60*24 = 86400 return "" + ($num = Math.round($difference/(3600))) + ' ' + _('hour(s)'); case ($difference < 604800): //60*60*24*7 = 604800 return "" + ($num = Math.round($difference/(86400))) + ' ' + _('day(s)'); case ($difference < 31536000): //60*60*24*365 = 31536000 return "" + ($num = Math.round($difference/(604800))) + ' ' + _('week(s)'); default: return "" + ($num = Math.round($difference/(31536000))) + ' ' + _('year(s)'); } } var datelocale = { days: [_('Sunday'), _('Monday'), _('Tuesday'), _('Wednesday'), _('Thursday'), _('Friday'), _('Saturday')] , shortDays: [_("Sun"), _("Mon"), _("Tue"), _("Wed"), _("Thu"), _("Fri"), _("Sat")] , months: [_('January'), _('February'), _('March'), _('April'), _('May'), _('June'), _('July'), _('August'), _('September'), _('October'), _('November'), _('December')] , shortMonths: [_('Jan'), _('Feb'), _('Mar'), _('Apr'), _('May'), _('Jun'), _('Jul'), _('Aug'), _('Sep'), _('Oct'), _('Nov'), _('Dec')] , AM: _('AM') , PM: _('PM') , am: _('am') , pm: _('pm') }; function alert(a, do_confirm, confirm_ok_action, confirm_cancel_action) { var handler, div, bg, closebtn, okbtn; var close = function() { handler.fadeOut(400, function() { handler.remove(); }); return false; }; handler = $("
").hide().appendTo('body'); bg = $("
").appendTo(handler); div = $("
").appendTo(handler); closebtn = $("") .appendTo(div); $("
").html(a).appendTo(div); okbtn = $("").appendTo(div); if (do_confirm) { confirm_ok_action = (typeof confirm_ok_action !== "function") ? function(){} : confirm_ok_action; confirm_cancel_action = (typeof confirm_cancel_action !== "function") ? function(){} : confirm_cancel_action; okbtn.click(confirm_ok_action); $("").click(confirm_cancel_action).click(close).appendTo(div); bg.click(confirm_cancel_action); okbtn.click(confirm_cancel_action); closebtn.click(confirm_cancel_action); } bg.click(close); okbtn.click(close); closebtn.click(close); handler.fadeIn(400); } var saved = {}; if (typeof board_name === "undefined") { var matches = document.URL.match({% endraw %}/\/([0-9a-zA-Z\+$_\u0080-\uFFFF]{1,58})\/($|{{ config.dir.res|replace({'/': '\\/'}) }}{{ config.file_page|replace({'%d': '\\d+', '.': '\\.'}) }}|{{ config.file_index|replace({'.': '\\.'}) }}|{{ config.dir.res|replace({'/': '\\/'}) }}{{ config.file_page50|replace({'+': '\\+', '%d': '\\d+', '.': '\\.'}) }}|{{ config.file_page|replace({'%d': '\\d+', '.': '\\.'}) }}|{{ config.catalog_link|replace({'.': '\\.'}) }})/{% raw %}); var board_name = (matches ? matches[1] : false); } function get_cookie(cookie_name) { var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)'); if (results) { return (unescape(results[2])); } else { return null; } } function highlightReply(id, event) { // check if external post var post_list, arr, i; id = id.toString(); post_list = document.querySelectorAll('a.post_no'); for (i = 0, arr = []; i