+++ /dev/null
-(function($) {
- $(function() {
-
-
-
-$('.open-player').click(function(event) {
- event.preventDefault();
- window.open($(this).attr('href'),
- 'player',
- 'width=422, height=500, scrollbars=1'
- );
-});
-
-
-
- });
-})(jQuery);
-
+++ /dev/null
-#player h1 {
- font-size: 2em;
- margin: .5em;
-}
-
-.player-info {
- margin: 1em;
-}
-
-
-.play {
- cursor: pointer;
-}
-
-.play:hover {
- color: #0D7E85;
-}
-
-.daisy-list {
- list-style: none;
-}
+++ /dev/null
-(function($) {
- $(function() {
-
- $(".jp-jplayer").each(function() {
- var $self = $(this);
- var $root = $self.parent();
- var $number = $('.number', $root);
- $self.jPlayer({
- swfPath: "/static/jplayer/",
- solution: "html,flash",
- supplied: $self.attr('data-supplied'),
- cssSelectorAncestor: "#" + $self.attr("data-player"),
-
- ready: function() {
- var player = $(this);
- var setMedia = function(elem, time=0) {
- var li = $(elem).parent();
- var media = {}
-
- media['mp3'] = li.attr('data-mp3');
- media['oga'] = li.attr('data-ogg');
- media['id'] = li.attr('data-media-id');
-
- $(".title", $root).html(li.html());
- player.jPlayer("setMedia", media);
- player.jPlayer("pause", time);
- return player;
- };
-
- $('.play-next', $root).click(function() {
- var next = parseInt($number.text()) + 1;
- var p = $('.jp-playlist .play:eq(' + (next - 1) + ')', $root);
- if (p.length) {
- setMedia(p).jPlayer("play");
- $number.text(next)
- }
- });
- $('.play-prev', $root).click(function() {
- var next = parseInt($number.text()) - 1;
- if (next < 1)
- return;
- var p = $('.jp-playlist .play:eq(' + (next - 1) + ')', $root);
- setMedia(p).jPlayer("play");
- $number.text(next)
- });
-
- var initialElem = $('.jp-playlist .play', $root).first();
- var initialTime = 0;
- if (Modernizr.localstorage) {
- try {
- audiobooks = JSON.parse(localStorage["audiobook-history"]);
- } catch {
- audiobooks = {};
- }
- last = audiobooks[$root.attr("data-book-slug")]
- // Fallback for book id;
- if (!last) {
- last = audiobooks[$root.attr("data-book-id")]
- }
-
- if (last) {
- initialElem = $('[data-media-id="' + last[1] + '"] .play', $root).first();
- initialTime = last[2];
- $number.text($(".jp-playlist .play", $root).index(initialElem) + 1);
- }
- }
- setMedia(initialElem, initialTime);
- },
-
- timeupdate: function(event) {
- if (event.jPlayer.status.currentTime && Modernizr.localstorage) {
- try {
- audiobooks = JSON.parse(localStorage["audiobook-history"]);
- } catch {
- audiobooks = {};
- }
- t = event.jPlayer.status.currentTime;
- if (t && event.jPlayer.status.duration - t > 10) {
- audiobooks[$root.attr("data-book-slug")] = [
- Date.now(),
- event.jPlayer.status.media.id,
- event.jPlayer.status.currentTime
- ];
- } else {
- delete audiobooks[$root.attr("data-book-slug")];
- }
- // Remove old book id, if present.
- delete audiobooks[$root.attr("data-book-id")];
- localStorage["audiobook-history"] = JSON.stringify(audiobooks);
- }
- }
- });
- });
-
-
-
- });
-})(jQuery)
<p>Dziękujemy za wsparcie — przeczytaj w prezencie już dzisiaj!</p>
{% else %}
<p>Aby przeczytać prapremierę, <strong>dorzuć</strong> się do Wolnych Lektur dowolną wpłatą. Ustaw stałe wsparcie, a będziesz mieć dostęp do kolejnych <strong>prapremier</strong>.</p>
- <a href="#" class="l-button l-button--default l-button--default--dark">Dorzuć się</a>
+ <a href="{{ book.get_absolute_url }}" class="l-button l-button--default l-button--default--dark">Dorzuć się</a>
{% endif %}
</div>
</div>
+++ /dev/null
-{% load catalogue_tags %}
-
-{% audiobook_tree orphans books_by_parent %}
-{% for author, group in books_by_author.items %}
- {% if group %}
- <a name="{{ author.slug }}"></a>
- <div class="group">
- <h2><a href="{{ author.get_absolute_url }}">{{ author }}</a></h2>
- {% audiobook_tree group books_by_parent %}
- </div>
- {% endif %}
-{% endfor %}
return ''
-@register.simple_tag
-def audiobook_tree(book_list, books_by_parent):
- text = "".join("<li><a class='open-player' href='%s'>%s</a>%s</li>" % (
- reverse("book_player", args=[book.slug]), book.title,
- audiobook_tree(books_by_parent.get(book, ()), books_by_parent)
- ) for book in book_list)
-
- if text:
- return mark_safe("<ol>%s</ol>" % text)
- else:
- return ''
-
-
@register.simple_tag
def book_tree_texml(book_list, books_by_parent, depth=1):
return mark_safe("".join("""
+++ /dev/null
-.plan-select {
- margin-bottom: 15px;
-}
-
-.methods {
- color: #888;
- line-height: 30px;
-}
-.methods .method {
- border: 1px solid #888;
- border-radius: 5px;
- display: inline-block;
- padding: 0 5px;
-}
-
-.methods img {
- height: 30px;
- margin-right: 5px;
- vertical-align: middle;
-}
-
-.payment-method.disabled {
- opacity: .5;
- filter: grayscale(100%);
-}
-
-.button {
- box-sizing: border-box;
- display: inline-block;
- text-align: center;
-}
-.kwota, .inna .button, .plan-toggle, .inna input {
- border: 1px solid black;
- border-radius: 8px;
- background: none;
- cursor: pointer;
- padding: 0;
- margin-right: 3%;
- margin-bottom: 10px;
- line-height: 3em;
- font-size: 20px;
-}
-.plan-toggle {
- width: 46.5%;
-}
-.kwota {
- width: 30%;
-}
-.kwota:after {
- content: " zł";
-}
-.kwota.yearly {
- background: orange;
-
-}
-.inna .button {
- width: 63%;
-}
-.inna input {
- width: 60%;
- padding-left: 1.5%;
- padding-right: 1.5%;
- height: 3em !important;
- text-align: center;
-}
-.chunk-alt {
- position: relative;
- overflow: hidden;
-}
-.chunk-alt .chunk {
- top: 0;
-}
-
-.kwota.active, .plan-toggle.active {
- background: #9ACD32;
-}
-.inna input {display: none;}
-.inna.active input {display: inline;}
-.inna.active .button {display: none;}
-
-.ambassador {
- padding: 2em;
- margin-bottom: 1em;
- border: 1px solid #ddd;
- position: relative;
- min-height: 100px;
-}
-.ambassador.with-photo {
- padding-right: 145px;
-}
-.ambassador img {
- border-radius: 100%;
- height: 100px;
- width: 100px;
- position: absolute;
- top: 35px;
- right: 30px;
-}
-.ambassador div {
- text-align: right;
- line-height: 1.5em;
-}
-
-.club-form-info {
- line-height: 1.5em;
-}
-
-@media screen and (max-width: 1023px) {
- .club-form-info {
- margin-top: 2em;
- }
-}
-
-
-@media screen and (min-width: 1024px) {
- .club-form-info {
- border-left: 1px solid #ddd;
- padding-left: 2em;
- margin-left: 2em;
- }
- .twocol {
- display: flex;
- }
- .twocol > form, .twocol > div {
- flex: 1;
- }
-}
-
-
-.methods {
- .button {
- border: 1px solid black;
- border-radius: 10px;
- padding: 10px;
- margin-right: 3%;
- cursor: pointer;
-
- &.active {
- background: #9ACD3240;
- }
- }
-}
-
-
-label.required {
- &::before {
- content: " * ";
- color: red;
- }
-}
-
-
-
-.helptext {
- position: relative;
-
- .short {
- height: 1.5em;
- overflow: hidden;
- position: relative;
-
- &:after {
- content:' ';
- position:absolute;
- bottom:0;
- width:25%;
- height:20px;
- background-color:transparent;
- overflow: hidden;
- /* assume ltr */
- right:0;
- background-image:-webkit-linear-gradient(to right,rgba(255,255,255,0),#ffffff 50%);
- background-image:-moz-linear-gradient(to right,rgba(255,255,255,0),#ffffff 50%);
- background-image:-o-linear-gradient(to right,rgba(255,255,255,0),#ffffff 50%);
- background-image:linear-gradient(to right,rgba(255,255,255,0),#ffffff 50%)
- }
- }
-
- .morelink {
- position: absolute;
- top: 0;
- right: 0;
- &:after {
- content: " ↓";
- }
- }
-}
-
-
-#payment-form {
- textarea {
- box-sizing: border-box;
- padding: 8px;
- width: 400px;
- height: 4em;
- }
- input[type="text"], input[type="email"] {
- box-sizing: border-box;
- width: 400px;
- padding: 8px;
- &#id_postal_code {
- width: 100px;
- }
- &#id_postal_town {
- width: 300px;
- }
- }
- select {
- box-sizing: border-box;
- width: 400px;
- padding: 8px;
- }
-}
+++ /dev/null
-$(function() {
-
- function update_methods() {
- $("#payment-form .payment-method").addClass("disabled");
- $("#payment-form .payment-method input").prop("disabled", true);
- var plan = $("#payment-form .plan:checked");
- if (plan.length) {
- $.each(
- $("#payment-form .plan:checked").attr('data-methods').trim().split(" "),
- function(i, slug) {
- $("#payment-method-" + slug).removeClass("disabled");
- $("#payment-method-" + slug + " input").prop("disabled", false);
- }
- );
- }
- }
- update_methods();
- $("#payment-form .plan").change(update_methods);
-
-
- function qs(key) {
- key = key.replace(/[*+?^$.\[\]{}()|\\\/]/g, "\\$&"); // escape RegEx meta chars
- var match = location.search.match(new RegExp("[?&]"+key+"=([^&]+)(&|$)"));
- return match && decodeURIComponent(match[1].replace(/\+/g, " "));
- }
-
- $("#payment-form").submit(function() {
- let camp = qs('pk_campaign');
- if (!camp && window.location.pathname !== "/pomagam/") {
- camp = window.location.pathname;
- }
- let dims = camp ? {dimension1: camp} : {};
- _paq.push(['trackGoal', 12, parseFloat($("#id_amount").val()), dims]);
- });
-});
+++ /dev/null
-$(function() {
- $('.funding .close').click(function(e) {\r
- e.preventDefault();
- var fundNode = $(e.target).parent();\r
- fundNode.slideUp(function(){fundingHandle.show()});
- if(Modernizr.localstorage)
- localStorage['hide-offer-id'] = fundNode.attr('data-offer-id');\r
- });
-
- var fundingTopHeader = $('#funding-closeable');
- var fundingHandle = $('#funding-handle');
- fundingHandle.click(function(e) {
- fundingTopHeader.slideDown();
- $(e.target).hide();
- if(Modernizr.localstorage)
- localStorage.removeItem('hide-offer-id');
- });\r
-});
\ No newline at end of file
],
'output_filename': 'css/compressed/2022.css',
},
- 'main': {
- # styles both for mobile and for big screen
- 'source_filenames': [
- 'css/import/gelasio.css',
-
- 'css/jquery.countdown.css',
- 'jplayer/jplayer.blue.monday.css',
-
- 'sponsors/css/sponsors.css',
-
- 'annoy/banner.scss',
-
- 'css/ui-lightness/jquery-ui-1.8.16.custom.css',
-
- 'css/tlite.css',
-
- 'scss/main.scss',
- 'club/club.scss',
- ],
- 'output_filename': 'css/compressed/main.css',
- },
- 'book': {
- 'source_filenames': [
- 'css/import/gelasio.css',
- 'css/master.book.css',
- ],
- 'output_filename': 'css/compressed/book.css',
- },
'book_text': {
'source_filenames': [
'css/import/gelasio.css',
],
'output_filename': 'css/compressed/book_text.css',
},
- 'forum': {
- 'source_filenames': [
- 'scss/forum.scss',
- ],
- 'output_filename': 'css/compressed/compressed/forum.css',
- },
- 'picture': {
- 'source_filenames': [
- 'css/import/gelasio.css',
- 'css/master.book.css',
- 'css/master.picture.css',
- ],
- 'output_filename': 'css/compressed/picture.css',
- },
- 'player': {
- 'source_filenames': [
- 'jplayer/jplayer.blue.monday.css',
- 'player/player.css',
- ],
- 'output_filename': 'css/compressed/player.css',
- },
- 'simple': {
- 'source_filenames': ('css/simple.css',),
- 'output_filename': 'css/compressed/simple.css',
- },
'widget': {
'source_filenames': ('scss/widget.scss',),
'output_filename': 'css/compressed/widget.css',
},
},
'JAVASCRIPT': {
- 'base': {
- 'source_filenames': (
- 'js/contrib/jquery.cycle2.min.js',
- 'js/contrib/jquery.jqmodal.js',
- 'js/contrib/jquery.form.js',
- 'js/contrib/jquery.paging.min.js',
- 'js/contrib/jquery.countdown.js', 'js/contrib/jquery.countdown-pl.js',
- 'js/contrib/jquery.countdown-de.js', 'js/contrib/jquery.countdown-uk.js',
- 'js/contrib/jquery.countdown-es.js', 'js/contrib/jquery.countdown-lt.js',
- 'js/contrib/jquery.countdown-ru.js', 'js/contrib/jquery.countdown-fr.js',
- 'js/contrib/jquery.shorten.js',
-
- 'js/contrib/jquery-ui-1.8.16.custom.min.js',
-
- 'js/contrib/tlite.min.js',
-
- 'jplayer/jquery.jplayer.min.js',
- 'jplayer/jplayer.playlist.min.js',
- 'player/player.js',
-
- 'js/locale.js',
- 'js/dialogs.js',
- 'js/base.js',
- 'pdcounter/pdcounter.js',
- 'sponsors/js/sponsors.js',
- 'player/openplayer.js',
- 'js/search.js',
- 'funding/funding.js',
- 'club/form.js',
-
- 'annoy/banner.js',
- ),
- 'output_filename': 'js/base.min.js',
- },
'2022': {
'source_filenames': [
'2022/scripts/vendor.js',
],
'output_filename': 'js/2022.min.js'
},
- 'player': {
- 'source_filenames': [
- 'jplayer/jquery.jplayer.min.js',
- 'jplayer/jplayer.playlist.min.js',
- 'player/player.js',
- ],
- 'output_filename': 'js/player.min.js',
- },
'2022_player': {
'source_filenames': [
'js/contrib/jplayer/jquery.jplayer.min.js',
],
'output_filename': 'js/2022_player.min.js',
},
- 'book': {
- 'source_filenames': [
- 'js/contrib/jquery.eventdelegation.js',
- 'js/contrib/jquery.scrollto.js',
- 'js/contrib/jquery.highlightfade.js',
- 'js/book_text/other.js',
- 'js/book.js',
-
- 'js/contrib/raphael-min.js',
- 'js/contrib/progressSpin.min.js',
- 'js/picture.js',
- ],
- 'output_filename': 'js/book.min.js',
- },
'book_text': {
'source_filenames': [
- 'js/contrib/jquery.cycle2.min.js',
'js/contrib/jquery.form.js',
'js/contrib/jquery.jqmodal.js',
'js/book_text/info.js',
'js/contrib/jquery.highlightfade.js',
'js/contrib/raphael-min.js',
- 'player/openplayer.js',
'js/contrib/progressSpin.min.js',
'annoy/banner.js',
],
'output_filename': 'js/book_text.js',
},
- 'picture': {
- 'source_filenames': [
- 'js/picture.js',
- ],
- 'output_filename': 'js/picture.min.js',
- },
- 'book_ie': {
- 'source_filenames': ('js/contrib/ierange-m2.js',),
- 'output_filename': 'js/book_ie.min.js',
- },
'widget': {
'source_filenames': (
'js/contrib/jquery.js',
+++ /dev/null
-/* Legacy simple style for some very old pages. */
-
-html {
- margin: 0;
-}
-
-body {
- margin: 0;
- padding: 1em;
- color: #2F4110;
- background: #FFF url(/static/img/bg.png) repeat-x;
- font-size: .75em;
- font-family: Verdana,Arial,Helvetica,sans-serif;
-}
-
-
-
-#body {
- margin-top: 2em;
-/*
- max-width: 900px;
- margin:auto;
-*/
- margin-left: 400px;
-}
-
-#logo {
- float: left;
- margin-left: 100px;
- margin-top: 4em;
-}
-
-h1 {
- font: bold 2.2em Arial,sans-serif;
- padding-top: .7em;
- margin-bottom: .2em;
-}
-
-
-h2 {
- font-size: 1.1em;
- margin:0;
-}
-
-a {
- color: #295158;
- text-decoration: none;
-}
-
-
-.plain li {
- list-style: none;
-}
-
-li {
- margin: 1em;
-}
-
-.clr {
- clear: both;
-}
-
-
-.more {
- text-align: right;
-}
-
-table {
- margin-top: 1em;
-}
-
-th {
- font-weight: normal;
- text-align: left;
-}
+++ /dev/null
-.tlite {
- background: #111;
- color: white;
- font-family: sans-serif;
- font-size: 0.8rem;
- font-weight: normal;
- text-decoration: none;
- text-align: left;
- padding: 0.6em 0.75rem;
- border-radius: 4px;
- position: absolute;
- opacity: 0;
- visibility: hidden;
- transition: opacity 0.4s;
- white-space: nowrap;
- box-shadow: 0 0.5rem 1rem -0.5rem black;
- z-index: 1000;
- -webkit-backface-visibility: hidden;
-}
-
-.tlite-table td,
-.tlite-table th {
- position: relative;
-}
-
-.tlite-visible {
- visibility: visible;
- opacity: 0.9;
-}
-
-.tlite::before {
- content: ' ';
- display: block;
- background: inherit;
- width: 10px;
- height: 10px;
- position: absolute;
- transform: rotate(45deg);
-}
-
-.tlite-n::before {
- top: -3px;
- left: 50%;
- margin-left: -5px;
-}
-
-.tlite-nw::before {
- top: -3px;
- left: 10px;
-}
-
-.tlite-ne::before {
- top: -3px;
- right: 10px;
-}
-
-.tlite-s::before {
- bottom: -3px;
- left: 50%;
- margin-left: -5px;
-}
-
-.tlite-se::before {
- bottom: -3px;
- right: 10px;
-}
-
-.tlite-sw::before {
- bottom: -3px;
- left: 10px;
-}
-
-.tlite-w::before {
- left: -3px;
- top: 50%;
- margin-top: -5px;
-}
-
-.tlite-e::before {
- right: -3px;
- top: 50%;
- margin-top: -5px;
-}
+++ /dev/null
-(function($) {
- $(function() {
- $.fn.toggle_slide = function(p) {
- var cont = $(this);
- var short_el = p['short_el'] || $(':first-child', this);
- var long_el = p['long_el'] || short_el.next();
- var button = p['button'];
- var short_text = p['short_text'];
- var long_text = p['long_text'];
-
- var toggle_fun = function(cont, short_el, long_el, button, short_text, long_text) {
- return function () {
- if (cont.hasClass('short')) {
- cont.animate({"height": long_el.attr("cont_h") + 'px'}, {duration: "fast"})
- .removeClass('short');
- short_el.hide();
- long_el.show();
- if (button && long_text) button.html(long_text);
- } else {
- cont.animate({"height": short_el.attr("cont_h") + 'px'}, {duration: "fast"}).addClass('short');
- long_el.hide();
- short_el.show();
- if (button && short_text) button.html(short_text);
- }
- return false;
- };
- };
- if (long_el.html().length <= short_el.html().length)
- return;
-
- // ensure long element shown first
- long_el.show();short_el.hide();
- long_el.attr("cont_h", $(this).height()).hide();
- short_el.show().attr("cont_h", $(this).height());
- $(this).addClass('short');
-
- if (button && short_text)
- button.html(short_text);
- if (button)
- button.click(toggle_fun(cont, short_el, long_el, button, short_text, long_text));
- };
-
-
- // Fragments
- $('.fragment-with-short').each(function() {
- $(this).toggle_slide({
- short_el: $('.fragment-short-text', this),
- long_el: $('.fragment-long-text', this),
- button: $('.toggle', this)
- })
- });
- $('#description').each(function() {
- $(this).toggle_slide({
- short_el: $('#description-short', this),
- long_el: $('#description-long', this),
- button: $(this)
- })
- });
-
- $('.more-expand').each(function () {
- $(this).shorten({
- showChars: 150,
- moreText: "więcej",
- lessText: "mniej"
- });
- });
-
-
- $('.carousel').on('cycle-before', function(event, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag) {
- $("iframe", outgoingSlideEl).attr("src", '');
- $("iframe", incomingSlideEl).attr("src", $("iframe", incomingSlideEl).attr('data-src'));
- });
- $('.carousel section').first().each(function() {
- $("iframe", this).attr("src", $("iframe", this).attr('data-src'));
- });
-
- $(".carousel").each(function() {
- opts = {};
- if ($('html').hasClass('media-eink')) {
- opts.fx = 'none'
- }
- $(this).cycle(opts);
- });
-
-
- (function() {
- var $current = null;
- var menu_loaded = false;
- $('.hidden-box-wrapper').each(function() {
- var $hidden = $('.hidden-box', this);
- $('.hidden-box-trigger', this).click(function(event) {
- event.preventDefault();
- if ($current == $hidden) {
- $current = null;
- $hidden.hide('fast');
- } else {
- $current && $current.hide('fast');
- $hidden.show('fast');
- $current = $hidden;
- if ($(this).hasClass('load-menu') && !menu_loaded) {
- $.ajax({
- url: '/katalog/' + LANGUAGE_CODE + '.json',
- dataType: "json"
- }).done(function(data) {
- $.each(data, function(index, value) {
- var $menuitem = $('#menu-' + index);
- $menuitem.html(value);
- var $minisearch = $("<input class='mini-search' style='margin-bottom: 1em' />");
- $minisearch.keyup(function() {
- var s = $(this).val().toLowerCase();
- if (s) {
- $("li", $menuitem).each(function() {
- if ($("a", this).text().toLowerCase().indexOf(s) != -1)
- $(this).show();
- else
- $(this).hide();
- });
- }
- else {
- $("li", $menuitem).css("display", "");
- }
- });
- $menuitem.prepend($minisearch);
- });
- menu_loaded = true;
- });
- }
- }
- });
- });
- /* this kinda breaks the whole page. */
- $('body').click(function(e) {
- if ($current == null) return;
- var p = $(e.target);
- while (p.length) {
- if (p == $current)
- return;
- if (p.hasClass('hidden-box-trigger')
- || p.hasClass('simple-toggler')
- || p.hasClass('mini-search'))
- return;
- p = p.parent();
- }
- $current.hide('fast');
- $current = null;
- });
- })();
-
-
- $('#show-menu').click(function(event) {
- event.preventDefault();
- //$('#menu').toggle('fast');
- $('body').toggleClass('menu-on');
- });
-
-
- $('#book-list-nav').find('h2').click(function(event) {
- event.preventDefault();
- $('#book-list-nav-index').toggle();
- });
-
-
- $('#themes-list-toggle').click(function(event) {
- event.preventDefault();
- $('#themes-list').toggle('fast');
- });
-
-
- $('.book-list-index').click(function(){
- $('.book-list-show-index').hide('fast');
- var books_ul = $(this).parent().next().children().first();
- if(books_ul.first().is(':hidden')){
- books_ul.toggle('fast');
- }
- return false;
- });
-
- $('.hoverclick').click(function() {$(this).closest('.hoverget').toggleClass('hover');});
- $('.hoverclick').keydown(function(event){
- var keyCode = (event.keyCode ? event.keyCode : event.which);
- if (keyCode == 13) {
- $(this).trigger('click');
- }
- });
-
- $(function(){
- $("#search").search();
- });
-
- $('body').on('click', '.simple-toggler' , function(ev) {
- ev.preventDefault();
- var scope = $(this).closest('.simple-toggler-scope');
- scope.find('.simple-hidden-box').each(function() {
- var $this = $(this);
- if ($this.is(':hidden')) {
- $this.show();
- } else {
- $this.hide();
- }
- });
- });
-
-
- $('.tabbed-filter').each(function() {
- var tf = this;
- $('.tab').click(function() {
- if ($(this).hasClass('active')) {
- $(this).removeClass('active');
- $('#' + $(this).attr('data-id')).hide();
- }
- else {
- var $active = $('.active', tf);
- $active.removeClass('active');
- $('#' + $active.attr('data-id')).hide();
- $(this).addClass('active');
- $('#' + $(this).attr('data-id')).show();
- }
- });
- });
-
-
- $('.plain-list-paged').each(function() {
- // should change on resize?
- var $plc = $(this);
- var $pl = $('.plain-list', this);
-
- var $items = $('p', $pl);
-
- if ($items.length > 40) {
- $items.hide();
- var prev = [0, 0];
-
- $('.pager', $plc).paging($items.length, {
- format: '[< ncnnn >]', // define how the navigation should look like and in which order onFormat() get's called
- perpage: 40,
- lapping: 0, // don't overlap pages for the moment
- page: 1, // start at page, can also be "null" or negative
- onSelect: function (page) {
- var data = this.slice;
- $items.slice(prev[0], prev[1]).hide();
- $items.slice(data[0], data[1]).show();
- prev = data;
- },
- onFormat: function (type) {
- switch (type) {
- case 'block': // n and c
- return ' <li><a href="#"' + (this.value == this.page ? ' class="current"' : '') + '>' +
- this.value + '</a></li>';
- case 'next': // >
- return '<li><a href="#">›</a></li>';
- case 'prev': // <
- return '<li><a href="#">‹</a></li>';
- case 'first': // [
- return '<li><a href="#">«</a></li>';
- case 'last': // ]
- return '<li><a href="#">»</a></li>';
- }
- }
- });
- }
- });
-
- /* global tlite */
- tlite(function (el) {
- return $(el).hasClass('tlite-tooltip');
- });
-
- /* more/less switch from https://codepen.io/JoshBlackwood/pen/pEwHe */
- // Hide the extra content initially, using JS so that if JS is disabled, no problemo:
- $('.read-more-content').addClass('hide');
- $('.read-more-show, .read-more-hide').removeClass('hide');
-
- // Set up the toggle effect:
- $('.read-more-show').on('click', function(e) {
- $(this).next('.read-more-content').removeClass('hide');
- $(this).addClass('hide');
- e.preventDefault();
- });
-
- // Changes contributed by @diego-rzg
- $('.read-more-hide').on('click', function(e) {
- var p = $(this).parent('.read-more-content');
- p.addClass('hide');
- p.prev('.read-more-show').removeClass('hide'); // Hide only the preceding "Read More"
- e.preventDefault();
- });
-
-
- function update_info() {
- var amount = parseInt($("#id_amount").val());
- var monthly = $("#id_monthly").val() == 'True';
- if (monthly) slug = "monthly";
- else if (amount >= parseInt($("#plan-single").attr('data-min-for-year'))) slug = 'single-year';
- else slug = 'single';
-
- var chunk = $('.club-form-info .chunk-' + slug);
- if (chunk.css('display') == 'none') {
- $('.chunk-alt').css('height', $('.chunk-alt').height());
- $('.chunk-alt .chunk').css('position', 'absolute');
-
- $('.club-form-info .chunk').fadeOut();
- $('.club-form-info .chunk.chunk-' + slug).fadeIn(function() {
- $('.chunk-alt .chunk').css('position', 'static');
- $('.chunk-alt').css('height', 'auto');
- });
- $('.chunk-alt').animate({height: chunk.height()}, 100);
- }
- }
-
- $("#id_amount").val($("#plan-monthly").attr('data-amount'));
-
- $(".button.kwota").click(function() {
- var plan = $(this).closest('.plan');
- $('.kwota', plan).removeClass('active')
- $('.inna', plan).removeClass('active')
- $(this).addClass('active');
-
- var amount = $(this).text();
- plan.attr("data-amount", amount);
- $("#id_amount").val(amount);
-
- update_info();
- return false;
- });
-
- $(".plan-toggle").click(function() {
- $(".plan-toggle").removeClass('active');
- $(this).addClass('active')
- $(".plan").hide();
- var plan = $("#" + $(this).attr('data-plan'));
- plan.show();
- $("#id_amount").val(plan.attr('data-amount'));
- $("#id_monthly").val(plan.attr('data-monthly'));
-
- update_info();
- return false;
- });
-
- $(".inna .button").click(function() {
- var plan = $(this).closest('.plan');
- $('.kwota', plan).removeClass('active');
- $(this).parent().addClass('active');
- $('input', plan).focus();
-
- var amount = $('input', $(this).parent()).val();
- plan.attr("data-amount", amount);
- $("#id_amount").val(amount);
-
- update_info();
- return false;
- });
-
- $(".inna input").on('input', function() {
- var plan = $(this).closest('.plan');
- $('.kwota', plan).removeClass('active');
- var amount = $(this).val();
- plan.attr("data-amount", amount);
- $("#id_amount").val(amount);
-
- update_info();
- return false;
- });
-
- $("#id_method").val('payu-re');
- $(".methods .button").click(function() {
- $("#id_method").val($(this).attr('data-method'));
- $(".methods .button").removeClass('active');
- $(this).addClass("active");
- });
-
-
- $("#skiplink-search").click(function() {
- console.log('skiplink search');
- $("#search").focus();
- return false;
- });
-
- // experiments
- $(".experiment input").on('change', function() {
- let name = $(this).attr('name');
- let val = $(this).val();
- document.cookie = 'EXPERIMENT_' + name + '=' + val + '; path=/; max-age=31536000';
- window.location.reload(true);
- });
- });
-})(jQuery);
-
+++ /dev/null
-/*
- DOM Ranges for Internet Explorer (m2)
-
- Copyright (c) 2009 Tim Cameron Ryan
- Released under the MIT/X License
- */
-
-/*
- Range reference:
- http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html
- http://mxr.mozilla.org/mozilla-central/source/content/base/src/nsRange.cpp
- https://developer.mozilla.org/En/DOM:Range
- Selection reference:
- http://trac.webkit.org/browser/trunk/WebCore/page/DOMSelection.cpp
- TextRange reference:
- http://msdn.microsoft.com/en-us/library/ms535872.aspx
- Other links:
- http://jorgenhorstink.nl/test/javascript/range/range.js
- http://jorgenhorstink.nl/2006/07/05/dom-range-implementation-in-ecmascript-completed/
- http://dylanschiemann.com/articles/dom2Range/dom2RangeExamples.html
-*/
-
-//[TODO] better exception support
-
-(function () { // sandbox
-
-/*
- DOM functions
- */
-
-var DOMUtils = {
- findChildPosition: function (node) {
- for (var i = 0; node = node.previousSibling; i++)
- continue;
- return i;
- },
- isDataNode: function (node) {
- return node && node.nodeValue !== null && node.data !== null;
- },
- isAncestorOf: function (parent, node) {
- return !DOMUtils.isDataNode(parent) &&
- (parent.contains(DOMUtils.isDataNode(node) ? node.parentNode : node) ||
- node.parentNode == parent);
- },
- isAncestorOrSelf: function (root, node) {
- return DOMUtils.isAncestorOf(root, node) || root == node;
- },
- findClosestAncestor: function (root, node) {
- if (DOMUtils.isAncestorOf(root, node))
- while (node && node.parentNode != root)
- node = node.parentNode;
- return node;
- },
- getNodeLength: function (node) {
- return DOMUtils.isDataNode(node) ? node.length : node.childNodes.length;
- },
- splitDataNode: function (node, offset) {
- if (!DOMUtils.isDataNode(node))
- return false;
- var newNode = node.cloneNode(false);
- node.deleteData(offset, node.length);
- newNode.deleteData(0, offset);
- node.parentNode.insertBefore(newNode, node.nextSibling);
- }
-};
-
-/*
- Text Range utilities
- functions to simplify text range manipulation in ie
- */
-
-var TextRangeUtils = {
- convertToDOMRange: function (textRange, document) {
- function adoptBoundary(domRange, textRange, bStart) {
- // iterate backwards through parent element to find anchor location
- var cursorNode = document.createElement('a'), cursor = textRange.duplicate();
- cursor.collapse(bStart);
- var parent = cursor.parentElement();
- do {
- parent.insertBefore(cursorNode, cursorNode.previousSibling);
- cursor.moveToElementText(cursorNode);
- } while (cursor.compareEndPoints(bStart ? 'StartToStart' : 'StartToEnd', textRange) > 0 && cursorNode.previousSibling);
-
- // when we exceed or meet the cursor, we've found the node
- if (cursor.compareEndPoints(bStart ? 'StartToStart' : 'StartToEnd', textRange) == -1 && cursorNode.nextSibling) {
- // data node
- cursor.setEndPoint(bStart ? 'EndToStart' : 'EndToEnd', textRange);
- domRange[bStart ? 'setStart' : 'setEnd'](cursorNode.nextSibling, cursor.text.length);
- } else {
- // element
- domRange[bStart ? 'setStartBefore' : 'setEndBefore'](cursorNode);
- }
- cursorNode.parentNode.removeChild(cursorNode);
- }
-
- // return a DOM range
- var domRange = new DOMRange(document);
- adoptBoundary(domRange, textRange, true);
- adoptBoundary(domRange, textRange, false);
- return domRange;
- },
-
- convertFromDOMRange: function (domRange) {
- function adoptEndPoint(textRange, domRange, bStart) {
- // find anchor node and offset
- var container = domRange[bStart ? 'startContainer' : 'endContainer'];
- var offset = domRange[bStart ? 'startOffset' : 'endOffset'], textOffset = 0;
- var anchorNode = DOMUtils.isDataNode(container) ? container : container.childNodes[offset];
- var anchorParent = DOMUtils.isDataNode(container) ? container.parentNode : container;
- // visible data nodes need a text offset
- if (container.nodeType == 3 || container.nodeType == 4)
- textOffset = offset;
-
- // create a cursor element node to position range (since we can't select text nodes)
- var cursorNode = domRange._document.createElement('a');
- anchorParent.insertBefore(cursorNode, anchorNode);
- var cursor = domRange._document.body.createTextRange();
- cursor.moveToElementText(cursorNode);
- cursorNode.parentNode.removeChild(cursorNode);
- // move range
- textRange.setEndPoint(bStart ? 'StartToStart' : 'EndToStart', cursor);
- textRange[bStart ? 'moveStart' : 'moveEnd']('character', textOffset);
- }
-
- // return an IE text range
- var textRange = domRange._document.body.createTextRange();
- adoptEndPoint(textRange, domRange, true);
- adoptEndPoint(textRange, domRange, false);
- return textRange;
- }
-};
-
-/*
- DOM Range
- */
-
-function DOMRange(document) {
- // save document parameter
- this._document = document;
-
- // initialize range
-//[TODO] this should be located at document[0], document[0]
- this.startContainer = this.endContainer = document.body;
- this.endOffset = DOMUtils.getNodeLength(document.body);
-}
-DOMRange.START_TO_START = 0;
-DOMRange.START_TO_END = 1;
-DOMRange.END_TO_END = 2;
-DOMRange.END_TO_START = 3;
-
-DOMRange.prototype = {
- // public properties
- startContainer: null,
- startOffset: 0,
- endContainer: null,
- endOffset: 0,
- commonAncestorContainer: null,
- collapsed: false,
- // private properties
- _document: null,
-
- // private methods
- _refreshProperties: function () {
- // collapsed attribute
- this.collapsed = (this.startContainer == this.endContainer && this.startOffset == this.endOffset);
- // find common ancestor
- var node = this.startContainer;
- while (node && node != this.endContainer && !DOMUtils.isAncestorOf(node, this.endContainer))
- node = node.parentNode;
- this.commonAncestorContainer = node;
- },
-
- // range methods
-//[TODO] collapse if start is after end, end is before start
- setStart: function(container, offset) {
- this.startContainer = container;
- this.startOffset = offset;
- this._refreshProperties();
- },
- setEnd: function(container, offset) {
- this.endContainer = container;
- this.endOffset = offset;
- this._refreshProperties();
- },
- setStartBefore: function (refNode) {
- // set start to beore this node
- this.setStart(refNode.parentNode, DOMUtils.findChildPosition(refNode));
- },
- setStartAfter: function (refNode) {
- // select next sibling
- this.setStart(refNode.parentNode, DOMUtils.findChildPosition(refNode) + 1);
- },
- setEndBefore: function (refNode) {
- // set end to beore this node
- this.setEnd(refNode.parentNode, DOMUtils.findChildPosition(refNode));
- },
- setEndAfter: function (refNode) {
- // select next sibling
- this.setEnd(refNode.parentNode, DOMUtils.findChildPosition(refNode) + 1);
- },
- selectNode: function (refNode) {
- this.setStartBefore(refNode);
- this.setEndAfter(refNode);
- },
- selectNodeContents: function (refNode) {
- this.setStart(refNode, 0);
- this.setEnd(refNode, DOMUtils.getNodeLength(refNode));
- },
- collapse: function (toStart) {
- if (toStart)
- this.setEnd(this.startContainer, this.startOffset);
- else
- this.setStart(this.endContainer, this.endOffset);
- },
-
- // editing methods
- cloneContents: function () {
- // clone subtree
- return (function cloneSubtree(iterator) {
- for (var node, frag = document.createDocumentFragment(); node = iterator.next(); ) {
- node = node.cloneNode(!iterator.hasPartialSubtree());
- if (iterator.hasPartialSubtree())
- node.appendChild(cloneSubtree(iterator.getSubtreeIterator()));
- frag.appendChild(node);
- }
- return frag;
- })(new RangeIterator(this));
- },
- extractContents: function () {
- // cache range and move anchor points
- var range = this.cloneRange();
- if (this.startContainer != this.commonAncestorContainer)
- this.setStartAfter(DOMUtils.findClosestAncestor(this.commonAncestorContainer, this.startContainer));
- this.collapse(true);
- // extract range
- return (function extractSubtree(iterator) {
- for (var node, frag = document.createDocumentFragment(); node = iterator.next(); ) {
- iterator.hasPartialSubtree() ? node = node.cloneNode(false) : iterator.remove();
- if (iterator.hasPartialSubtree())
- node.appendChild(extractSubtree(iterator.getSubtreeIterator()));
- frag.appendChild(node);
- }
- return frag;
- })(new RangeIterator(range));
- },
- deleteContents: function () {
- // cache range and move anchor points
- var range = this.cloneRange();
- if (this.startContainer != this.commonAncestorContainer)
- this.setStartAfter(DOMUtils.findClosestAncestor(this.commonAncestorContainer, this.startContainer));
- this.collapse(true);
- // delete range
- (function deleteSubtree(iterator) {
- while (iterator.next())
- iterator.hasPartialSubtree() ? deleteSubtree(iterator.getSubtreeIterator()) : iterator.remove();
- })(new RangeIterator(range));
- },
- insertNode: function (newNode) {
- // set original anchor and insert node
- if (DOMUtils.isDataNode(this.startContainer)) {
- DOMUtils.splitDataNode(this.startContainer, this.startOffset);
- this.startContainer.parentNode.insertBefore(newNode, this.startContainer.nextSibling);
- } else {
- this.startContainer.insertBefore(newNode, this.startContainer.childNodes[this.startOffset]);
- }
- // resync start anchor
- this.setStart(this.startContainer, this.startOffset);
- },
- surroundContents: function (newNode) {
- // extract and surround contents
- var content = this.extractContents();
- this.insertNode(newNode);
- newNode.appendChild(content);
- this.selectNode(newNode);
- },
-
- // other methods
- compareBoundaryPoints: function (how, sourceRange) {
- // get anchors
- var containerA, offsetA, containerB, offsetB;
- switch (how) {
- case DOMRange.START_TO_START:
- case DOMRange.START_TO_END:
- containerA = this.startContainer;
- offsetA = this.startOffset;
- break;
- case DOMRange.END_TO_END:
- case DOMRange.END_TO_START:
- containerA = this.endContainer;
- offsetA = this.endOffset;
- break;
- }
- switch (how) {
- case DOMRange.START_TO_START:
- case DOMRange.END_TO_START:
- containerB = sourceRange.startContainer;
- offsetB = sourceRange.startOffset;
- break;
- case DOMRange.START_TO_END:
- case DOMRange.END_TO_END:
- containerB = sourceRange.endContainer;
- offsetB = sourceRange.endOffset;
- break;
- }
-
- // compare
- return containerA.sourceIndex < containerB.sourceIndex ? -1 :
- containerA.sourceIndex == containerB.sourceIndex ?
- offsetA < offsetB ? -1 : offsetA == offsetB ? 0 : 1
- : 1;
- },
- cloneRange: function () {
- // return cloned range
- var range = new DOMRange(this._document);
- range.setStart(this.startContainer, this.startOffset);
- range.setEnd(this.endContainer, this.endOffset);
- return range;
- },
- detach: function () {
-//[TODO] Releases Range from use to improve performance.
- },
- toString: function () {
- return TextRangeUtils.convertFromDOMRange(this).text;
- },
- createContextualFragment: function (tagString) {
- // parse the tag string in a context node
- var content = (DOMUtils.isDataNode(this.startContainer) ? this.startContainer.parentNode : this.startContainer).cloneNode(false);
- content.innerHTML = tagString;
- // return a document fragment from the created node
- for (var fragment = this._document.createDocumentFragment(); content.firstChild; )
- fragment.appendChild(content.firstChild);
- return fragment;
- }
-};
-
-/*
- Range iterator
- */
-
-function RangeIterator(range) {
- this.range = range;
- if (range.collapsed)
- return;
-
-//[TODO] ensure this works
- // get anchors
- var root = range.commonAncestorContainer;
- this._next = range.startContainer == root && !DOMUtils.isDataNode(range.startContainer) ?
- range.startContainer.childNodes[range.startOffset] :
- DOMUtils.findClosestAncestor(root, range.startContainer);
- this._end = range.endContainer == root && !DOMUtils.isDataNode(range.endContainer) ?
- range.endContainer.childNodes[range.endOffset] :
- DOMUtils.findClosestAncestor(root, range.endContainer).nextSibling;
-}
-
-RangeIterator.prototype = {
- // public properties
- range: null,
- // private properties
- _current: null,
- _next: null,
- _end: null,
-
- // public methods
- hasNext: function () {
- return !!this._next;
- },
- next: function () {
- // move to next node
- var current = this._current = this._next;
- this._next = this._current && this._current.nextSibling != this._end ?
- this._current.nextSibling : null;
-
- // check for partial text nodes
- if (DOMUtils.isDataNode(this._current)) {
- if (this.range.endContainer == this._current)
- (current = current.cloneNode(true)).deleteData(this.range.endOffset, current.length - this.range.endOffset);
- if (this.range.startContainer == this._current)
- (current = current.cloneNode(true)).deleteData(0, this.range.startOffset);
- }
- return current;
- },
- remove: function () {
- // check for partial text nodes
- if (DOMUtils.isDataNode(this._current) &&
- (this.range.startContainer == this._current || this.range.endContainer == this._current)) {
- var start = this.range.startContainer == this._current ? this.range.startOffset : 0;
- var end = this.range.endContainer == this._current ? this.range.endOffset : this._current.length;
- this._current.deleteData(start, end - start);
- } else
- this._current.parentNode.removeChild(this._current);
- },
- hasPartialSubtree: function () {
- // check if this node be partially selected
- return !DOMUtils.isDataNode(this._current) &&
- (DOMUtils.isAncestorOrSelf(this._current, this.range.startContainer) ||
- DOMUtils.isAncestorOrSelf(this._current, this.range.endContainer));
- },
- getSubtreeIterator: function () {
- // create a new range
- var subRange = new DOMRange(this.range._document);
- subRange.selectNodeContents(this._current);
- // handle anchor points
- if (DOMUtils.isAncestorOrSelf(this._current, this.range.startContainer))
- subRange.setStart(this.range.startContainer, this.range.startOffset);
- if (DOMUtils.isAncestorOrSelf(this._current, this.range.endContainer))
- subRange.setEnd(this.range.endContainer, this.range.endOffset);
- // return iterator
- return new RangeIterator(subRange);
- }
-};
-
-/*
- DOM Selection
- */
-
-//[NOTE] This is a very shallow implementation of the Selection object, based on Webkit's
-// implementation and without redundant features. Complete selection manipulation is still
-// possible with just removeAllRanges/addRange/getRangeAt.
-
-function DOMSelection(document) {
- // save document parameter
- this._document = document;
-
- // add DOM selection handler
- var selection = this;
- document.attachEvent('onselectionchange', function () { selection._selectionChangeHandler(); });
-}
-
-DOMSelection.prototype = {
- // public properties
- rangeCount: 0,
- // private properties
- _document: null,
-
- // private methods
- _selectionChangeHandler: function () {
- // check if there exists a range
- this.rangeCount = this._selectionExists(this._document.selection.createRange()) ? 1 : 0;
- },
- _selectionExists: function (textRange) {
- // checks if a created text range exists or is an editable cursor
- return textRange.compareEndPoints('StartToEnd', textRange) != 0 ||
- textRange.parentElement().isContentEditable;
- },
-
- // public methods
- addRange: function (range) {
- // add range or combine with existing range
- var selection = this._document.selection.createRange(), textRange = TextRangeUtils.convertFromDOMRange(range);
- if (!this._selectionExists(selection))
- {
- // select range
- textRange.select();
- }
- else
- {
- // only modify range if it intersects with current range
- if (textRange.compareEndPoints('StartToStart', selection) == -1)
- if (textRange.compareEndPoints('StartToEnd', selection) > -1 &&
- textRange.compareEndPoints('EndToEnd', selection) == -1)
- selection.setEndPoint('StartToStart', textRange);
- else
- if (textRange.compareEndPoints('EndToStart', selection) < 1 &&
- textRange.compareEndPoints('EndToEnd', selection) > -1)
- selection.setEndPoint('EndToEnd', textRange);
- selection.select();
- }
- },
- removeAllRanges: function () {
- // remove all ranges
- this._document.selection.empty();
- },
- getRangeAt: function (index) {
- // return any existing selection, or a cursor position in content editable mode
- var textRange = this._document.selection.createRange();
- if (this._selectionExists(textRange))
- return TextRangeUtils.convertToDOMRange(textRange, this._document);
- return null;
- },
- toString: function () {
- // get selection text
- return this._document.selection.createRange().text;
- }
-};
-
-/*
- scripting hooks
- */
-
-document.createRange = function () {
- return new DOMRange(document);
-};
-
-var selection = new DOMSelection(document);
-window.getSelection = function () {
- return selection;
-};
-
-//[TODO] expose DOMRange/DOMSelection to window.?
-
-})();
+++ /dev/null
-/*
- * jQuery Event Delegation Plugin - jquery.eventdelegation.js
- * Fast flexible event handling
- *
- * January 2008 - Randy Morey (http://dev.distilldesign.com/)
- */
-
-(function ($) {
- /* setup list of allowed events for event delegation
- * only events that bubble are appropriate
- */
- var allowed = {};
- $.each([
- 'click',
- 'dblclick',
- 'mousedown',
- 'mouseup',
- 'mousemove',
- 'mouseover',
- 'mouseout',
- 'keydown',
- 'keypress',
- 'keyup'
- ], function(i, eventName) {
- allowed[eventName] = true;
- });
-
- $.fn.extend({
- delegate: function (event, selector, f) {
- return $(this).each(function () {
- if (allowed[event])
- $(this).bind(event, function (e) {
- var el = $(e.target),
- result = false;
-
- while (!$(el).is('body')) {
- if ($(el).is(selector)) {
- result = f.apply($(el)[0], [e]);
- if (result === false)
- e.preventDefault();
- return;
- }
-
- el = $(el).parent();
- }
- });
- });
- },
- undelegate: function (event) {
- return $(this).each(function () {
- $(this).unbind(event);
- });
- }
- });
-})(jQuery);
\ No newline at end of file
+++ /dev/null
-/*
-jQuery paging plugin v1.3.0 23/06/2014
-http://www.xarg.org/2011/09/jquery-pagination-revised/
-
-Copyright (c) 2011, Robert Eisele (robert@xarg.org)
-Dual licensed under the MIT or GPL Version 2 licenses.
-*/
-(function(n,v,r){n.fn.paging=function(z,A){var t=this,b={setOptions:function(a){b.a=n.extend(b.a||{lapping:0,perpage:10,page:1,refresh:{interval:10,url:null},format:"",lock:!1,circular:!1,onClick:null,onFormat:function(){},onSelect:function(){return!0},onRefresh:function(){}},a||{});b.a.lapping|=0;b.a.perpage|=0;null!==b.a.page&&(b.a.page|=0);1>b.a.perpage&&(b.a.perpage=10);b.interval&&v.clearInterval(b.interval);b.a.refresh.url&&(b.interval=v.setInterval(function(){n.ajax({url:b.a.refresh.url,success:function(a){if("string"===
-typeof a)try{a=n.parseJSON(a)}catch(m){return}b.a.onRefresh(a)}})},1E3*b.a.refresh.interval));b.format=function(a){for(var b=0,f=0,h=1,g={g:[],i:0,h:0,b:5,current:3,l:0,m:0},c,p=/[*<>pq\[\]().-]|[nc]+!?/g,n={"[":"first","]":"last","<":"prev",">":"next",q:"left",p:"right","-":"fill",".":"leap"},e={};c=p.exec(a);)c=""+c,r===n[c]?"("===c?f=++b:")"===c?f=0:h&&("*"===c?(g.i=1,g.h=0):(g.i=0,g.h="!"===c.charAt(c.length-1),g.b=c.length-g.h,(g.current=1+c.indexOf("c"))||(g.current=1+g.b>>1)),g.g.push({f:"block",
-j:0,c:0}),h=0):(g.g.push({f:n[c],j:f,c:r===e[c]?e[c]=1:++e[c]}),"q"===c?++g.m:"p"===c&&++g.l);return g}(b.a.format);return b},setNumber:function(a){b.s=r===a||0>a?-1:a;return b},setPage:function(a){function w(a,b,c){c=""+a.onFormat.call(b,c);p=b.value?p+c.replace(/<a/i,'<a data-page="'+b.value+'"'):p+c}if(b.a.lock)return b.a.onSelect(0,t),b;if(r===a){if(a=b.a.page,null===a)return b}else if(b.a.page==a)return b;b.a.page=a|=0;var m=b.s,f=b.a,h,g,c,p,x=1,e=b.format,d,k,l,q,y=e.g.length,u=y;f.perpage<=
-f.lapping&&(f.lapping=f.perpage-1);q=m<=f.lapping?0:f.lapping|0;0>m?(c=m=-1,h=Math.max(1,a-e.current+1-q),g=h+e.b):(c=1+Math.ceil((m-f.perpage)/(f.perpage-q)),a=Math.max(1,Math.min(0>a?1+c+a:a,c)),e.i?(h=1,g=1+c,e.current=a,e.b=c):(h=Math.max(1,Math.min(a-e.current,c-e.b)+1),g=e.h?h+e.b:Math.min(h+e.b,1+c)));for(;u--;){k=0;l=e.g[u];switch(l.f){case "left":k=l.c<h;break;case "right":k=g<=c-e.l+l.c;break;case "first":k=e.current<a;break;case "last":k=e.b<e.current+c-a;break;case "prev":k=1<a;break;
-case "next":k=a<c}x|=k<<l.j}d={number:m,lapping:q,pages:c,perpage:f.perpage,page:a,slice:[(k=a*(f.perpage-q)+q)-f.perpage,Math.min(k,m)]};for(p="";++u<y;){l=e.g[u];k=x>>l.j&1;switch(l.f){case "block":for(;h<g;++h)d.value=h,d.pos=1+e.b-g+h,d.active=h<=c||0>m,d.first=1===h,d.last=h===c&&0<m,w(f,d,l.f);continue;case "left":d.value=l.c;d.active=l.c<h;break;case "right":d.value=c-e.l+l.c;d.active=g<=d.value;break;case "first":d.value=1;d.active=k&&1<a;break;case "prev":(d.active=f.circular)?d.value=1===
-a?c:a-1:(d.value=Math.max(1,a-1),d.active=k&&1<a);break;case "last":(d.active=0>m)?d.value=1+a:(d.value=c,d.active=k&&a<c);break;case "next":(d.active=f.circular)?d.value=1+a%c:(d.active=0>m)?d.value=1+a:(d.value=Math.min(1+a,c),d.active=k&&a<c);break;case "leap":case "fill":d.pos=l.c;d.active=k;w(f,d,l.f);continue}d.pos=l.c;d.last=d.first=r;w(f,d,l.f)}t.length&&(n("a",t.html(p)).click(f.onClick||function(a){a.preventDefault();a=this;do if("a"===a.nodeName.toLowerCase())break;while(a=a.parentNode);
-b.setPage(n(a).data("page"));b.o&&(v.location=a.href)}),b.o=f.onSelect.call({number:m,lapping:q,pages:c,slice:d.slice},a,t));return b}};return b.setNumber(z).setOptions(A).setPage()}})(jQuery,this);
+++ /dev/null
-function tlite(t){document.addEventListener("mouseover",function(e){var i=e.target,n=t(i);n||(i=i.parentElement,n=i&&t(i)),n&&tlite.show(i,n,!0)})}tlite.show=function(t,e,i){function n(t,e){function n(){u=t.title||t.getAttribute(l)||u,t.title="",t.setAttribute(l,""),u&&!a&&(a=setTimeout(d,i?150:1))}function r(){tlite.hide(t,!0)}function s(e){i===e&&(a=clearTimeout(a),f&&t.removeChild(f),f=void 0)}function d(){f||(f=o(t,u,e))}var f,a,u;return t.addEventListener("mousedown",r),t.addEventListener("mouseleave",r),t.tooltip={show:n,hide:s}}function o(t,e,i){function n(){o.className="tlite tlite-"+r+s;var e=10,i=t.offsetTop,n=t.offsetLeft;o.offsetParent===t&&(i=n=0);var l=t.offsetWidth,d=t.offsetHeight,f=o.offsetHeight,a=o.offsetWidth,u=n+l/2;o.style.top=("s"===r?i-f-e:"n"===r?i+d+e:i+d/2-f/2)+"px",o.style.left=("w"===s?n:"e"===s?n+l-a:"w"===r?n+l+e:"e"===r?n-a-e:u-a/2)+"px"}var o=document.createElement("span"),l=i.grav||t.getAttribute("data-tlite")||"n";o.innerHTML=e,t.appendChild(o);var r=l[0]||"",s=l[1]||"";n();var d=o.getBoundingClientRect();return"s"===r&&d.top<0?(r="n",n()):"n"===r&&d.bottom>window.innerHeight?(r="s",n()):"e"===r&&d.left<0?(r="w",n()):"w"===r&&d.right>window.innerWidth&&(r="e",n()),o.className+=" tlite-visible",o}var l="data-tlite";e=e||{},(t.tooltip||n(t,e)).show()},tlite.hide=function(t,e){t.tooltip&&t.tooltip.hide(e)},"undefined"!=typeof module&&module.exports&&(module.exports=tlite);
+++ /dev/null
-.navbar {
- .navbar-brand {
- padding-top: 0;
- padding-bottom: 0;
- margin-top: -2px;
- margin-bottom: -2px;
- }
-}