j1-template 2022.0.7 → 2022.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/ads/google_ad_content_home.html +11 -0
  3. data/_includes/themes/j1/modules/ads/google_ad_top_home.html +11 -0
  4. data/_layouts/default.html +0 -56
  5. data/apps/public/cc/index.adoc +0 -1
  6. data/assets/data/article_navigator/index.html +0 -1
  7. data/assets/data/news_panel_posts/index.html +0 -1
  8. data/assets/error_pages/HTTP444.html +4 -4
  9. data/assets/error_pages/HTTP445.html +7 -6
  10. data/assets/error_pages/HTTP446.html +110 -0
  11. data/assets/error_pages/HTTP447.html +110 -0
  12. data/assets/error_pages/HTTP448.html +111 -0
  13. data/assets/themes/j1/adapter/js/advertising.js +413 -0
  14. data/assets/themes/j1/adapter/js/algolia.js +1 -4
  15. data/assets/themes/j1/adapter/js/analytics.js +237 -0
  16. data/assets/themes/j1/adapter/js/asciidoctor.js +1 -4
  17. data/assets/themes/j1/adapter/js/attic.js +1 -4
  18. data/assets/themes/j1/adapter/js/bmd.js +1 -4
  19. data/assets/themes/j1/adapter/js/carousel.js +1 -4
  20. data/assets/themes/j1/adapter/js/clipboard.js +1 -2
  21. data/assets/themes/j1/adapter/js/comments.js +387 -0
  22. data/assets/themes/j1/adapter/js/cookieConsent.js +103 -59
  23. data/assets/themes/j1/adapter/js/fab.js +1 -1
  24. data/assets/themes/j1/adapter/js/framer.js +1 -7
  25. data/assets/themes/j1/adapter/js/j1.js +157 -354
  26. data/assets/themes/j1/adapter/js/justifiedGallery.js +1 -4
  27. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +1 -4
  28. data/assets/themes/j1/adapter/js/lightbox.js +1 -5
  29. data/assets/themes/j1/adapter/js/logger.js +1 -2
  30. data/assets/themes/j1/adapter/js/mmenu.js +2 -3
  31. data/assets/themes/j1/adapter/js/navigator.js +4 -3
  32. data/assets/themes/j1/adapter/js/quicksearch.js +1 -4
  33. data/assets/themes/j1/adapter/js/rouge.js +2 -5
  34. data/assets/themes/j1/adapter/js/rtable.js +1 -4
  35. data/assets/themes/j1/adapter/js/rtextResizer.js +1 -4
  36. data/assets/themes/j1/adapter/js/scroller.js +2 -5
  37. data/assets/themes/j1/adapter/js/themer.js +1 -1
  38. data/assets/themes/j1/adapter/js/toccer.js +1 -4
  39. data/assets/themes/j1/adapter/js/translator.js +121 -112
  40. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +6 -0
  41. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  42. data/assets/themes/j1/core/js/template.js +13 -5
  43. data/assets/themes/j1/core/js/template.min.js +1 -1
  44. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  45. data/assets/themes/j1/modules/advertising/js/google/adInitializer.js +117 -0
  46. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +29 -13
  47. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
  48. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.2.js +1 -1
  49. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.js +1 -1
  50. data/assets/themes/j1/modules/scroller/js/scroller.js +1 -1
  51. data/assets/themes/j1/modules/translator/js/translator.js +97 -62
  52. data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
  53. data/lib/j1/version.rb +1 -1
  54. data/lib/starter_web/Gemfile +1 -1
  55. data/lib/starter_web/_config.yml +1 -13
  56. data/lib/starter_web/_data/apps/carousel.yml +2 -2
  57. data/lib/starter_web/_data/apps/defaults/carousel.yml +3 -2
  58. data/lib/starter_web/_data/apps/defaults/justifiedGallery.yml +2 -2
  59. data/lib/starter_web/_data/apps/defaults/justifiedGalleryCustomizer.yml +2 -2
  60. data/lib/starter_web/_data/apps/defaults/lightGallery.yml +2 -2
  61. data/lib/starter_web/_data/apps/defaults/lightbox.yml +2 -2
  62. data/lib/starter_web/_data/apps/justifiedGallery.yml +2 -2
  63. data/lib/starter_web/_data/apps/justifiedGalleryCustomizer.yml +2 -2
  64. data/lib/starter_web/_data/apps/lightGallery.yml +2 -2
  65. data/lib/starter_web/_data/apps/lightbox.yml +2 -2
  66. data/lib/starter_web/_data/blocks/banner.yml +3 -2
  67. data/lib/starter_web/_data/blocks/defaults/banner.yml +9 -0
  68. data/lib/starter_web/_data/blocks/defaults/footer.yml +9 -0
  69. data/lib/starter_web/_data/blocks/defaults/panel.yml +9 -0
  70. data/lib/starter_web/_data/blocks/footer.yml +3 -2
  71. data/lib/starter_web/_data/blocks/panel.yml +3 -2
  72. data/lib/starter_web/_data/builder/blog_navigator.yml +3 -2
  73. data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +8 -8
  74. data/lib/starter_web/_data/j1_config.yml +0 -116
  75. data/lib/starter_web/_data/layouts/default.yml +21 -21
  76. data/lib/starter_web/_data/layouts/home.yml +24 -0
  77. data/lib/starter_web/_data/layouts/page.yml +7 -18
  78. data/lib/starter_web/_data/layouts/post.yml +0 -11
  79. data/lib/starter_web/_data/modules/advertising.yml +140 -12
  80. data/lib/starter_web/_data/modules/analytics.yml +99 -0
  81. data/lib/starter_web/_data/modules/attics.yml +3 -2
  82. data/lib/starter_web/_data/modules/comments.yml +55 -0
  83. data/lib/starter_web/_data/modules/cookieconsent.yml +2 -1
  84. data/lib/starter_web/_data/modules/cookies.yml +3 -1
  85. data/lib/starter_web/_data/modules/defaults/advertising.yml +106 -0
  86. data/lib/starter_web/_data/modules/defaults/analytics.yml +93 -0
  87. data/lib/starter_web/_data/modules/defaults/attics.yml +3 -2
  88. data/lib/starter_web/_data/modules/defaults/authentication.yml +51 -48
  89. data/lib/starter_web/_data/modules/defaults/comments.yml +114 -0
  90. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +6 -6
  91. data/lib/starter_web/_data/modules/defaults/cookies.yml +90 -6
  92. data/lib/starter_web/_data/modules/defaults/fab.yml +4 -2
  93. data/lib/starter_web/_data/modules/defaults/framer.yml +2 -3
  94. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +3 -2
  95. data/lib/starter_web/_data/modules/defaults/log4r.yml +2 -2
  96. data/lib/starter_web/_data/modules/defaults/navigator.yml +4 -2
  97. data/lib/starter_web/_data/modules/defaults/quicksearch.yml +4 -3
  98. data/lib/starter_web/_data/modules/defaults/rtable.yml +3 -2
  99. data/lib/starter_web/_data/modules/defaults/scoller.yml +3 -2
  100. data/lib/starter_web/_data/modules/defaults/themer.yml +119 -118
  101. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  102. data/lib/starter_web/_data/modules/defaults/translator.yml +1 -1
  103. data/lib/starter_web/_data/modules/fab.yml +3 -2
  104. data/lib/starter_web/_data/modules/framer.yml +3 -4
  105. data/lib/starter_web/_data/modules/log4r.yml +2 -2
  106. data/lib/starter_web/_data/modules/navigator.yml +4 -2
  107. data/lib/starter_web/_data/modules/quicksearch.yml +3 -3
  108. data/lib/starter_web/_data/modules/rtable.yml +3 -3
  109. data/lib/starter_web/_data/modules/scroller.yml +2 -3
  110. data/lib/starter_web/_data/modules/themer.yml +2 -3
  111. data/lib/starter_web/_data/modules/toccer.yml +3 -3
  112. data/lib/starter_web/_data/modules/translator.yml +1 -1
  113. data/lib/starter_web/_data/plugins/defaults/paginator.yml +2 -2
  114. data/lib/starter_web/_data/plugins/paginator.yml +2 -2
  115. data/lib/starter_web/_data/resources.yml +447 -290
  116. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  117. data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_content_home.html +11 -0
  118. data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_top_home.html +11 -0
  119. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  120. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.ads.asciidoc +196 -0
  121. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.comments.asciidoc +182 -0
  122. data/lib/starter_web/index.html +0 -1
  123. data/lib/starter_web/package.json +1 -1
  124. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +0 -1
  125. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +0 -1
  126. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +0 -1
  127. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +0 -1
  128. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +0 -1
  129. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +0 -1
  130. data/lib/starter_web/pages/public/blog/navigator/archive.html +0 -1
  131. data/lib/starter_web/pages/public/blog/navigator/index.html +0 -1
  132. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +4 -3
  133. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.ads.asciidoc +265 -0
  134. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.base.asciidoc +237 -0
  135. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.comments.asciidoc +237 -0
  136. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +62 -0
  137. data/lib/starter_web/pages/public/learn/roundtrip/_includes/google-ad.js +130 -0
  138. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +0 -1
  139. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +0 -1
  140. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +0 -1
  141. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  142. data/lib/starter_web/utilsrv/package.json +1 -1
  143. metadata +24 -70
  144. data/_includes/themes/j1/blocks/ads/ad.html +0 -64
  145. data/_includes/themes/j1/modules/boards/news_pin_board.html +0 -183
  146. data/_includes/themes/j1/modules/connectors/ad/custom-provider.html +0 -30
  147. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +0 -62
  148. data/_includes/themes/j1/modules/connectors/ads +0 -56
  149. data/_includes/themes/j1/modules/connectors/analytic/custom-provider.html +0 -32
  150. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +0 -30
  151. data/_includes/themes/j1/modules/connectors/analytics +0 -60
  152. data/_includes/themes/j1/modules/connectors/comment/commento.html +0 -31
  153. data/_includes/themes/j1/modules/connectors/comment/custom-provider.html +0 -30
  154. data/_includes/themes/j1/modules/connectors/comment/disqus.html +0 -32
  155. data/_includes/themes/j1/modules/connectors/comment/facebook.html +0 -30
  156. data/_includes/themes/j1/modules/connectors/comment/hyvor.html +0 -32
  157. data/_includes/themes/j1/modules/connectors/comment/just-comments.html +0 -31
  158. data/_includes/themes/j1/modules/connectors/comments +0 -64
  159. data/_includes/themes/j1/modules/connectors/sharing +0 -29
  160. data/_includes/themes/j1/modules/connectors/survey/custom-provider.html +0 -30
  161. data/_includes/themes/j1/modules/connectors/survey/jotform.html +0 -32
  162. data/_includes/themes/j1/modules/connectors/surveys +0 -58
  163. data/_includes/themes/j1/modules/connectors/translator +0 -58
  164. data/_includes/themes/j1/modules/connectors/translators/custom-translator.html +0 -32
  165. data/_includes/themes/j1/modules/connectors/translators/google-translator.html +0 -53
  166. data/_includes/themes/j1/modules/search/algolia.html +0 -181
  167. data/_includes/themes/j1/modules/search/docsearch.html +0 -42
  168. data/assets/data/disqus.js +0 -81
  169. data/assets/data/hyvor.js +0 -72
  170. data/lib/starter_web/pages/_test_pages/100_side-bar-tester.adoc +0 -244
  171. data/lib/starter_web/pages/_test_pages/_includes/attributes.asciidoc +0 -110
  172. data/lib/starter_web/pages/_test_pages/_includes/documents/100_gistblock.asciidoc +0 -28
  173. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_info.asciidoc +0 -14
  174. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_left_warning.asciidoc +0 -11
  175. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_right_danger.asciidoc +0 -11
  176. data/lib/starter_web/pages/_test_pages/_includes/documents/410_central_success.asciidoc +0 -11
  177. data/lib/starter_web/pages/_test_pages/_includes/documents/410_full_height_left_info.asciidoc +0 -11
  178. data/lib/starter_web/pages/_test_pages/_includes/documents/410_full_height_right_success.asciidoc +0 -11
  179. data/lib/starter_web/pages/_test_pages/_includes/documents/410_table_bs_modal_examples.asciidoc +0 -47
  180. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_info.asciidoc +0 -11
  181. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_left_info.asciidoc +0 -11
  182. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_right_success.asciidoc +0 -11
  183. data/lib/starter_web/pages/_test_pages/_includes/documents/419_advanced_modals_demo.asciidoc +0 -337
  184. data/lib/starter_web/pages/_test_pages/_includes/documents/tables/bs_modal_examples.asciidoc +0 -47
  185. data/lib/starter_web/pages/_test_pages/accordion-01-tester.adoc +0 -220
  186. data/lib/starter_web/pages/_test_pages/accordion-02-tester.adoc +0 -177
  187. data/lib/starter_web/pages/_test_pages/accordion-03-tester.adoc +0 -148
  188. data/lib/starter_web/pages/_test_pages/attribute-changes-01-tester.adoc +0 -226
  189. data/lib/starter_web/pages/_test_pages/backdrop-tester.adoc +0 -109
  190. data/lib/starter_web/pages/_test_pages/button-tester-1.adoc +0 -127
  191. data/lib/starter_web/pages/_test_pages/card-tester.adoc +0 -128
  192. data/lib/starter_web/pages/_test_pages/cookieConsent.adoc +0 -96
  193. data/lib/starter_web/pages/_test_pages/deepl.0.adoc +0 -258
  194. data/lib/starter_web/pages/_test_pages/deepl.adoc +0 -204
  195. data/lib/starter_web/pages/_test_pages/desandro-button.adoc +0 -171
  196. data/lib/starter_web/pages/_test_pages/desandro.adoc +0 -147
  197. data/lib/starter_web/pages/_test_pages/flipcard-1-tester.adoc +0 -308
  198. data/lib/starter_web/pages/_test_pages/formular-01-tester.adoc +0 -167
  199. data/lib/starter_web/pages/_test_pages/formular-02-tester.adoc +0 -727
  200. data/lib/starter_web/pages/_test_pages/google-translate-tester.0.adoc +0 -113
  201. data/lib/starter_web/pages/_test_pages/google-translate-tester.1.adoc +0 -231
  202. data/lib/starter_web/pages/_test_pages/google-translate-tester.3.adoc +0 -149
  203. data/lib/starter_web/pages/_test_pages/google-translate-tester.4.adoc +0 -237
  204. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-2.adoc +0 -183
  205. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-3.adoc +0 -235
  206. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-4.adoc +0 -222
  207. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-5.adoc +0 -119
  208. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester.1.adoc +0 -236
  209. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester.adoc +0 -225
  210. data/lib/starter_web/pages/_test_pages/list-group-tester.adoc +0 -265
  211. data/lib/starter_web/pages/_test_pages/tictok.adoc +0 -127
@@ -55,7 +55,7 @@ regenerate: true
55
55
  {% assign toccer_defaults = modules.defaults.toccer.defaults %}
56
56
 
57
57
  {% assign cookie_defaults = modules.defaults.cookies.defaults %}
58
- {% assign cookie_settings = modules.cokkies.settings %}
58
+ {% assign cookie_settings = modules.cookies.settings %}
59
59
 
60
60
  {% assign themer_defaults = modules.defaults.themer.defaults %}
61
61
  {% assign themer_settings = modules.themer.settings %}
@@ -82,24 +82,10 @@ regenerate: true
82
82
  {% assign themer_enabled = modules.themer_options.enabled %}
83
83
  {% assign themer_reloadPageOnChange = modules.themer_options.reloadPageOnChange %}
84
84
  {% assign themer_hideOnReload = modules.themer_options.hideOnReload %}
85
- {% assign comment_provider = template_config.comments.provider %}
85
+
86
86
 
87
87
  {% comment %} Set variables
88
88
  -------------------------------------------------------------------------------- {% endcomment %}
89
- {% if comment_provider == 'disqus' %}
90
- {% assign site_id = template_config.comments.disqus.site_id %}
91
- {% elsif comment_provider == 'hyvor' %}
92
- {% assign site_id = template_config.comments.hyvor.site_id %}
93
- {% elsif comment_provider == 'commento' %}
94
- {% assign site_id = template_config.comments.commento.site_id %}
95
- {% elsif comment_provider == 'just-comments' %}
96
- {% assign site_id = template_config.comments.just-comments.site_id %}
97
- {% elsif comment_provider == 'facebook' %}
98
- {% assign site_id = template_config.comments.facebook.site_id %}
99
- {% else %}
100
- {% assign site_id = false %}
101
- {% endif %}
102
-
103
89
  {% assign production = false %}
104
90
  {% if environment == 'prod' or environment == 'production' %}
105
91
  {% assign production = true %}
@@ -115,14 +101,6 @@ regenerate: true
115
101
  {% assign language = "en" %}
116
102
  {% endif %}
117
103
 
118
- {% if language == "en" %}
119
- {% assign comments_headline = template_config.comments.comments_headline.en %}
120
- {% endif %}
121
-
122
- {% if language == "de" %}
123
- {% assign comments_headline = template_config.comments.comments_headline.de %}
124
- {% endif %}
125
-
126
104
  /*
127
105
  # -----------------------------------------------------------------------------
128
106
  # ~/assets/themes/j1/adapter/js/j1_template.js
@@ -151,7 +129,6 @@ regenerate: true
151
129
  /* eslint semi: "off" */
152
130
  // -----------------------------------------------------------------------------
153
131
  'use strict';
154
-
155
132
  var j1 = (function () {
156
133
 
157
134
  // ---------------------------------------------------------------------------
@@ -174,9 +151,7 @@ var j1 = (function () {
174
151
  // Default comment provider information
175
152
  var comment_provider = '{{comment_provider}}';
176
153
  var site_id = '{{site_id}}';
177
-
178
- // Default translator settings (currently NOT supported)
179
- // var translation_enabled = {{template_config.translation.enabled}};
154
+ var check_cookies = {{cookie_options.check_cookies}};
180
155
 
181
156
  var current_user_data;
182
157
  var current_page;
@@ -309,7 +284,7 @@ var j1 = (function () {
309
284
  j1['xhrDOMState'] = {};
310
285
 
311
286
  // -----------------------------------------------------------------------
312
- // update cookies if browser window get closed
287
+ // final updates before browser page|tab
313
288
  // see: https://stackoverflow.com/questions/3888902/detect-browser-or-tab-closing
314
289
  // -----------------------------------------------------------------------
315
290
  window.addEventListener('beforeunload', function (event) {
@@ -322,49 +297,27 @@ var j1 = (function () {
322
297
  var url;
323
298
  var baseUrl;
324
299
 
325
- // final update of the user state cookie before browser page|tab
326
- // get closed
327
- if (user_state) {
328
- user_state.session_active = false;
329
- user_state.last_session_ts = timestamp_now;
300
+ // final update of the user state cookie
301
+ user_state.session_active = false;
302
+ user_state.last_session_ts = timestamp_now;
330
303
 
331
- if (!user_consent.analysis || !user_consent.personalization) {
332
- // rewrite consent|state cookies to session
333
- logger.debug('\n' + 'write to cookie : ' + cookie_names.user_consent);
334
- cookie_written = j1.writeCookie({
335
- name: cookie_names.user_consent,
336
- data: user_consent,
337
- secure: secure,
338
- expires: 0
339
- });
340
- if (!cookie_written) {
341
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_consent);
342
- }
343
- logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
344
- cookie_written = j1.writeCookie({
345
- name: cookie_names.user_state,
346
- data: user_state,
347
- secure: secure,
348
- expires: 0
349
- });
350
- if (!cookie_written) {
351
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_consent);
352
- }
353
- } else {
354
- logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
355
- cookie_written = j1.writeCookie({
356
- name: cookie_names.user_state,
357
- data: user_state,
358
- secure: secure,
359
- expires: 365
360
- });
361
- if (!cookie_written) {
362
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_state);
363
- }
364
- }
304
+ if (!user_consent.analysis || !user_consent.personalization) {
305
+ logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
306
+
307
+ cookie_written = j1.writeCookie({
308
+ name: cookie_names.user_state,
309
+ data: user_state,
310
+ secure: secure,
311
+ expires: 0
312
+ });
365
313
  } else {
366
- // jadams, 2021-07-11: on beforeunload, a user state cookie is expected
367
- logger.error('\n' + 'missing cookie detected: ' + cookie_names.user_state);
314
+ logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
315
+ cookie_written = j1.writeCookie({
316
+ name: cookie_names.user_state,
317
+ data: user_state,
318
+ secure: secure,
319
+ expires: 365
320
+ });
368
321
  }
369
322
  }); // END beforeunload
370
323
 
@@ -383,9 +336,6 @@ var j1 = (function () {
383
336
  secure: secure,
384
337
  expires: 0
385
338
  });
386
- if (!cookie_written) {
387
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
388
- }
389
339
 
390
340
  user_state = j1.existsCookie(cookie_names.user_state)
391
341
  ? j1.readCookie(cookie_names.user_state)
@@ -395,96 +345,25 @@ var j1 = (function () {
395
345
  secure: secure,
396
346
  expires: 365
397
347
  });
398
- if (!cookie_written) {
399
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_state);
400
- }
401
348
 
402
- // jadams, 2021-07-11: Found situation that user_state NOT initialized
403
- // correctly (user_state == false).
404
- // TODO: Check if/why user state (cookie NOT created?) NOT initialized
405
- // for what reason.
406
- if (!user_state) {
407
- logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
408
- logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
409
- j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
410
- logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
411
- gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
412
- user_state = j1.readCookie(cookie_names.user_state);
413
- user_state.session_active = true;
349
+ // jadams, 2021-12-06: Check if access to cookies for this site failed.
350
+ // Possibly, a third-party domain or an attacker tries to access it.
351
+ if (check_cookies) {
352
+ if (!user_state) {
353
+ logger.error('\n' + 'Access to cookie failed or cookie not found: ' + cookie_names.user_state);
354
+ logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
355
+ // redirect to error page: blocked content
356
+ window.location.href = '/446.html';
357
+ }
414
358
  }
415
359
 
416
360
  if (!user_consent.analysis || !user_consent.personalization) {
417
- // rewrite consent|state cookies to session
418
- logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
419
- cookie_written = j1.writeCookie({
420
- name: cookie_names.user_state,
421
- data: user_state,
422
- secure: secure,
423
- expires: 0
424
- });
425
- if (!cookie_written) {
426
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_state);
427
- }
428
- } else {
429
- logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
430
- cookie_written = j1.writeCookie({
431
- name: cookie_names.user_state,
432
- data: user_state,
433
- secure: secure,
434
- expires: 365
435
- });
436
- if (!cookie_written) {
437
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_state);
438
- }
361
+ // expire permanent cookies to session
362
+ j1.expireCookie({ name: cookie_names.user_state });
363
+ j1.expireCookie({ name: cookie_names.user_consent });
364
+ j1.expireCookie({ name: cookie_names.user_translate });
439
365
  }
440
366
 
441
- // jadams, 2021-11-10: anchor links of type #void are used/managed
442
- // by the FAB module. No geneneraL use for NOW.
443
- // -----------------------------------------------------------------------
444
- // initialize event handler for smooth scroll on in-page anchors
445
- // $('a[href*=\\#]').on('click', function (event) {
446
- // // ignore void links
447
- // if (window.location.href.includes('#void')||this.href.includes('#void')) {
448
- // return false;
449
- // }
450
- // // for external links, redirect to this page
451
- // if (window.location.pathname !== this.pathname) {
452
- // window.location.href = this.href;
453
- // } else {
454
- // // continue on in-page anchor
455
- // var toccerScrollDuration = 300;
456
- // var toccerScrollOffset = 10;
457
- //
458
- // // calculate offset value for correct (smooth) scroll position
459
- // //
460
- // var $pagehead = $('.attic');
461
- // var $navbar = $('nav.navbar');
462
- // var $adblock = $('#adblock');
463
- // var navbarType = $navbar.hasClass('navbar-fixed') ? 'fixed' : 'scrolled';
464
- // var fontSize = $('body').css('font-size').replace('px','');
465
- // var start = window.pageYOffset;
466
- // var l = parseInt(fontSize);
467
- // var h = $pagehead.length ? $pagehead.height() : 0;
468
- // var n = $navbar.length ? $navbar.height() : 0;
469
- // var a = $adblock.length ? $adblock.height() : 0;
470
- // var scrollOffset = navbarType == 'fixed' ? -1*(n + a + l) : -1*(h + n + a + l);
471
- //
472
- // // TODO: to be checked why this static offset (toccerScrollOffset)
473
- // // is needed
474
- // scrollOffset = scrollOffset + toccerScrollOffset;
475
- //
476
- // logger.debug('\n' + 'scroll to anchor: ' + this.hash);
477
- // $("html, body").animate({
478
- // scrollTop: $($(this).attr("href")).offset().top + scrollOffset + "px"
479
- // }, {
480
- // duration: toccerScrollDuration,
481
- // easing: "swing"
482
- // });
483
- // // disable bubble up the event
484
- // return false;
485
- // } // End in-page link
486
- // }); // END click event on anchors
487
-
488
367
  // initialize event handler for window/history/back on <ESC>
489
368
  // -----------------------------------------------------------------------
490
369
  window.onkeyup = function (event) {
@@ -523,10 +402,6 @@ var j1 = (function () {
523
402
  expires: 0
524
403
  });
525
404
 
526
- if (!cookie_written) {
527
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
528
- }
529
-
530
405
  j1.setState(curr_state);
531
406
  logger.info('\n' + 'state: ' + j1.getState());
532
407
 
@@ -570,9 +445,6 @@ var j1 = (function () {
570
445
  secure: secure,
571
446
  expires: 0
572
447
  });
573
- if (!cookie_written) {
574
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
575
- }
576
448
 
577
449
  j1.setState(curr_state);
578
450
  logger.info('\n' + 'state: ' + j1.getState());
@@ -601,7 +473,8 @@ var j1 = (function () {
601
473
  themeName = user_session.theme_name;
602
474
  themeCss = user_session.theme_css;
603
475
 
604
- // save last page access
476
+ // -----------------------------------------------------------------------
477
+ // Save last page access
605
478
  // see: https://stackoverflow.com/questions/3528324/how-to-get-the-previous-url-in-javascript
606
479
  // see: https://developer.mozilla.org/de/docs/Web/API/Window/history
607
480
  //
@@ -633,10 +506,6 @@ var j1 = (function () {
633
506
  expires: 0
634
507
  });
635
508
 
636
- if (!cookie_written) {
637
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
638
- }
639
-
640
509
  // NOTE: asynchronous calls should be rewitten to xhrData
641
510
  // initialize page resources for blocks
642
511
  j1.initBanner(settings);
@@ -645,7 +514,6 @@ var j1 = (function () {
645
514
 
646
515
  state = 'running';
647
516
  logger.info('\n' + 'state: ' + state);
648
- // logger.info(logText);
649
517
 
650
518
  user_session.timestamp = timestamp_now;
651
519
  logger.debug('\n' + 'write to cookie : ' + cookie_names.user_session);
@@ -655,9 +523,6 @@ var j1 = (function () {
655
523
  secure: secure,
656
524
  expires: 0
657
525
  });
658
- if (!cookie_written) {
659
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
660
- }
661
526
 
662
527
  // -----------------------------------------------------------------------
663
528
  // additional BS helpers from j1.core
@@ -779,7 +644,6 @@ var j1 = (function () {
779
644
  // initPanel()
780
645
  // AJAX fetcher to load and place all panel used for a page
781
646
  // -------------------------------------------------------------------------
782
- // ToDo:
783
647
  initPanel: function ( options ) {
784
648
  var logger = log4javascript.getLogger('j1.initPanel');
785
649
  var panel = [];
@@ -961,6 +825,7 @@ var j1 = (function () {
961
825
  var categoryAllowed;
962
826
 
963
827
  // provider APIs require user consent
828
+ // -----------------------------------------------------------------------
964
829
  var meta_analytics = $('meta[name=analytics]').attr('content');
965
830
  var analytics = (meta_analytics === 'true') ? true: false;
966
831
  var meta_comments = $('meta[name=comments]').attr('content');
@@ -977,6 +842,7 @@ var j1 = (function () {
977
842
  var personalization = (meta_personalization === 'true') ? true: false;
978
843
 
979
844
  // if personalized content detected, page requires user consent
845
+ // -----------------------------------------------------------------------
980
846
  if (personalization && !user_consent.personalization) {
981
847
  // redirect to error page: blocked content
982
848
  window.location.href = '/444.html';
@@ -986,7 +852,9 @@ var j1 = (function () {
986
852
  logText= '\n' + 'loading page partials: started';
987
853
  logger.info(logText);
988
854
 
989
- if (j1.appDetected()) { // app mode
855
+ if (j1.appDetected()) {
856
+ // app mode
857
+ // ---------------------------------------------------------------------
990
858
  logger.info('\n' + 'mode detected: app');
991
859
 
992
860
  $.when ($.ajax(ep_status))
@@ -1003,16 +871,14 @@ var j1 = (function () {
1003
871
  secure: secure,
1004
872
  expires: 0
1005
873
  });
1006
- if (!cookie_written) {
1007
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
1008
- }
1009
874
 
1010
875
  providerPermissions = user_session.provider_permissions;
1011
876
  categoryAllowed = providerPermissions.includes(user_session.page_permission);
1012
877
 
878
+ // -------------------------------------------------------------------
1013
879
  // check protected pages (applies for APP only)
1014
880
  // make sure that protected pages are ALWAYS checked for permissions
1015
- // -------------------------------------------------------------------
881
+ //
1016
882
  if (
1017
883
  j1.authEnabled() &&
1018
884
  user_session.page_permission !== 'public' &&
@@ -1031,78 +897,22 @@ var j1 = (function () {
1031
897
 
1032
898
  // show the page delayed
1033
899
  setTimeout (function() {
1034
- // Manage providers for personalization OptIn/Out (Comments|Ads)
1035
- if (!user_consent.personalization) {
1036
- logger.debug('\n' + 'disable comment provider: ' + comment_provider);
1037
- logger.debug('\n' + 'personalization not allowed, privacy settings for personalization: ' + user_consent.personalization);
1038
- $('#leave-a-comment').remove();
1039
- if (comment_provider === 'disqus') {
1040
- $('#dsq-count-scr').remove();
1041
- $('#disqus-thread').remove();
1042
- }
1043
- if (comment_provider === 'hyvor') {
1044
- $('#hyvor-embed').remove();
1045
- $('#hyvor-talk-view').remove();
1046
- }
1047
- } else {
1048
- if (comments) {
1049
- logger.info('\n' + 'enable comment provider: ' + comment_provider);
1050
- $('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
1051
- if (comment_provider === 'disqus') {
1052
- logger.info('\n' + 'load comment provider code: ' + comment_provider);
1053
- $('#main-content').append('<div id="disqus_thread"></div>');
1054
- $('body').append('<script async id="dsq-count-scr" src="//' + site_id + '.disqus.com/count.js"></script>');
1055
- j1.loadJS({
1056
- xhr_data_path: '/assets/data/' + comment_provider + '.js',
1057
- xhr_data_element: comment_provider
1058
- });
1059
- }
1060
- if (comment_provider === 'hyvor') {
1061
- $('body').append('<script> var HYVOR_TALK_WEBSITE = ' + site_id + '; var HYVOR_TALK_CONFIG = { url: false, id: false };');
1062
- $('#main-content').append('<div id="hyvor-talk-view"></div>');
1063
- $('body').append('<script async id="hyvor-embed" type="text/javascript" src="//talk.hyvor.com/web-api/embed.js"></script>');
1064
- }
1065
- }
1066
- }
1067
-
1068
900
  // display page
1069
- $('#no_flicker').css('display', 'block');
901
+ $('#no_flicker').css('display', 'block');
1070
902
 
1071
- // no dropcaps if translation enabled
1072
- if (user_translate.translationEnabled) {
903
+ // manage Dropcaps if translation is enabled|disabled
904
+ // -----------------------------------------------------------------
905
+ if (user_translate.translationEnabled) {
1073
906
  logger.info('\n' + 'translation enabled: ' + user_translate.translationEnabled);
1074
907
  logger.debug('\n' + 'skipped processing of dropcaps');
1075
- } else {
908
+ } else {
1076
909
  // initialize dropcaps
1077
910
  logger.info('\n' + 'post processing: createDropCap');
1078
911
  j1.core.createDropCap();
1079
- }
1080
-
1081
- // add recommended title to hyvor iframe for SEO optimization (if loadad)
1082
- if (comment_provider === 'hyvor') {
1083
- var dependencies_met_load_finished = setInterval (function () {
1084
- if ($('#hyvor-talk-view').children().length) {
1085
- $('#hyvor-talk-iframe').prop('title', 'Hyvor talk iframe');
1086
- clearInterval(dependencies_met_load_finished);
1087
- }
1088
- }, 25);
1089
- }
1090
- // NOTE: Placed tracking warning/info here because page may reloaded
1091
- // after cookie consent selection
1092
- if (user_consent.analysis) {
1093
- logger.info('\n' + 'tracking allowed, privacy settings for analysis: ' + user_consent.analysis);
1094
- if (tracking_enabled && !tracking_id_valid) {
1095
- logger.error('\n' + 'tracking enabled, but invalid tracking id found: ' + tracking_id);
1096
- } else if (tracking_enabled && tracking_id_valid) {
1097
- logger.info('\n' + 'tracking enabled, tracking id found: ' + tracking_id);
1098
- } else {
1099
- logger.info('\n' + 'tracking disabled, tracking id found: ' + tracking_id);
1100
- }
1101
- } else {
1102
- logger.debug('\n' + 'tracking not allowed, privacy settings for analysis: ' + user_consent.analysis);
1103
912
  }
1104
913
 
1105
- // show|hide cookie icon (should MOVED to Cookiebar ???)
914
+ // TODO: should MOVED to Cookiebar ???
915
+ // show|hide cookie icon
1106
916
  if (j1.existsCookie(cookie_names.user_consent)) {
1107
917
  // Display cookie icon
1108
918
  logText = '\n' + 'show cookie icon';
@@ -1115,13 +925,8 @@ var j1 = (function () {
1115
925
  $('#quickLinksCookieButton').css('display', 'none');
1116
926
  }
1117
927
 
1118
- // show|hide translator icon (currently NOT supported)
1119
- // if (translation_enabled) {
1120
- // logger.info('\n' + 'translator detected: google');
1121
- // logger.info('\n' + 'initialize language selector');
1122
- // $('.goog-te-combo').addClass('form-control');
1123
- // }
1124
-
928
+ // TODO: should MOVED to ControlCenter Adapter ???
929
+ // -----------------------------------------------------------------
1125
930
  // show cc icon (currently NOT supported)
1126
931
  // $('#quickLinksControlCenterButton').css('display', 'block');
1127
932
 
@@ -1141,6 +946,7 @@ var j1 = (function () {
1141
946
  $('#quickLinksSignInOutButton').css('display', 'block');
1142
947
  }
1143
948
 
949
+ // TODO: should MOVED to Themer ???
1144
950
  // jadams, 2021-07-25: hide|show themes menu on cookie consent
1145
951
  // (analysis|personalization) settings. BootSwatch is a 3rd party
1146
952
  // is using e.g GA. Because NO control is possible on 3rd parties,
@@ -1154,10 +960,7 @@ var j1 = (function () {
1154
960
  $("#themes_menu").show();
1155
961
  }
1156
962
 
1157
- // if the page requested contains an anchor element,
1158
- // do a smooth scroll to
1159
- j1.scrollTo();
1160
-
963
+ // detect if a loaded page has been chenged
1161
964
  if (user_session.previous_page !== user_session.current_page) {
1162
965
  logText = '\n' + 'page change detected';
1163
966
  logger.info(logText);
@@ -1173,56 +976,34 @@ var j1 = (function () {
1173
976
  current_user_data = j1.mergeData(user_session, user_state);
1174
977
  j1.core.navigator.updateSidebar(current_user_data);
1175
978
 
1176
- // Set|Log status
979
+ // set|log status
1177
980
  state = 'finished';
981
+ j1.setState(state);
1178
982
  logText = '\n' + 'state: ' + state;
1179
983
  logger.info(logText);
1180
984
  logText = '\n' + 'page finalized successfully';
1181
985
  logger.info(logText);
986
+
987
+ // do a (smooth) scroll if all nav elements ready
988
+ // -----------------------------------------------------------------
989
+ var dependencies_met_navigator_finished = setInterval(function() {
990
+ if (j1.adapter.navigator.getState() == 'finished') {
991
+ // if a page requested contains an anchor element, do a smooth scroll
992
+ j1.scrollTo();
993
+ clearInterval(dependencies_met_navigator_finished);
994
+ }
995
+ }, 25);
1182
996
  }, flickerTimeout);
1183
997
  });
1184
998
  } else {
1185
999
  // web mode
1000
+ // ---------------------------------------------------------------------
1186
1001
  setTimeout (function() {
1187
- j1.setState('finished');
1002
+ // j1.setState('finished');
1188
1003
  logger.info('\n' + 'state: finished');
1189
1004
  logger.info('\n' + 'page initialization: finished');
1190
1005
 
1191
- // Manage providers for personalization OptIn/Out (Comments|Ads)
1192
- if (!user_consent.personalization) {
1193
- logger.debug('\n' + 'disable comment provider: ' + comment_provider);
1194
- logger.debug('\n' + 'personalization not allowed, privacy settings for personalization: ' + user_consent.personalization);
1195
- $('#leave-a-comment').remove();
1196
- if (comment_provider === 'disqus') {
1197
- $('#dsq-count-scr').remove();
1198
- $('#disqus-thread').remove();
1199
- }
1200
- if (comment_provider === 'hyvor') {
1201
- $('#hyvor-embed').remove();
1202
- $('#hyvor-talk-view').remove();
1203
- }
1204
- } else {
1205
- if (comments) {
1206
- logger.info('\n' + 'enable comment provider: ' + comment_provider);
1207
- $('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
1208
- if (comment_provider === 'disqus') {
1209
- logger.info('\n' + 'load comment provider code: ' + comment_provider);
1210
- $('#main-content').append('<div id="disqus_thread"></div>');
1211
- $('body').append('<script async id="dsq-count-scr" src="//' + site_id + '.disqus.com/count.js"></script>');
1212
- j1.loadJS({
1213
- xhr_data_path: '/assets/data/' + comment_provider + '.js',
1214
- xhr_data_element: comment_provider
1215
- });
1216
- }
1217
- if (comment_provider === 'hyvor') {
1218
- $('body').append('<script> var HYVOR_TALK_WEBSITE = ' + site_id + '; var HYVOR_TALK_CONFIG = { url: false, id: false };');
1219
- $('#main-content').append('<div id="hyvor-talk-view"></div>');
1220
- $('body').append('<script async id="hyvor-embed" type="text/javascript" src="//talk.hyvor.com/web-api/embed.js"></script>');
1221
- }
1222
- }
1223
- }
1224
-
1225
- // display page
1006
+ // display the page loaded
1226
1007
  $('#no_flicker').css('display', 'block');
1227
1008
 
1228
1009
  // jadams, 2021-11-19: test code for 'tapTarget' of 'materializeCss'
@@ -1249,7 +1030,8 @@ var j1 = (function () {
1249
1030
  $(this).parents(".card-header").toggleClass("highlight");
1250
1031
  });
1251
1032
 
1252
- // no dropcaps if translation enabled
1033
+ // manage Dropcaps if translation is enabled|disabled
1034
+ // -------------------------------------------------------------------
1253
1035
  if (user_translate.translationEnabled) {
1254
1036
  logger.info('\n' + 'translation enabled: ' + user_translate.translationEnabled);
1255
1037
  logger.debug('\n' + 'skipped processing of dropcaps');
@@ -1259,31 +1041,6 @@ var j1 = (function () {
1259
1041
  j1.core.createDropCap();
1260
1042
  }
1261
1043
 
1262
- // add recommended title to hyvor iframe for SEO optimization (if loadad)
1263
- if (comment_provider === 'hyvor') {
1264
- var dependencies_met_load_finished = setInterval (function () {
1265
- if ($('#hyvor-talk-view').children().length) {
1266
- $('#hyvor-talk-iframe').prop('title', 'Hyvor talk iframe');
1267
- clearInterval(dependencies_met_load_finished);
1268
- }
1269
- }, 25);
1270
- }
1271
-
1272
- // NOTE: Placed tracking warning/info here because page may reloaded
1273
- // after cookie consent selection
1274
- if (user_consent.analysis) {
1275
- logger.info('\n' + 'tracking allowed, privacy settings for analysis: ' + user_consent.analysis);
1276
- if (tracking_enabled && !tracking_id_valid) {
1277
- logger.error('\n' + 'tracking enabled, but invalid tracking id found: ' + tracking_id);
1278
- } else if (tracking_enabled && tracking_id_valid) {
1279
- logger.info('\n' + 'tracking enabled, tracking id found: ' + tracking_id);
1280
- } else {
1281
- logger.info('\n' + 'tracking disabled, tracking id found: ' + tracking_id);
1282
- }
1283
- } else {
1284
- logger.debug('\n' + 'tracking not allowed, privacy settings for analysis: ' + user_consent.analysis);
1285
- }
1286
-
1287
1044
  logger.info('\n' + 'mode detected: web');
1288
1045
  logger.info('\n' + 'hide signin icon');
1289
1046
  $('#quickLinksSignInOutButton').css('display', 'none');
@@ -1296,20 +1053,13 @@ var j1 = (function () {
1296
1053
  secure: secure,
1297
1054
  expires: 0
1298
1055
  });
1299
- if (!cookie_written) {
1300
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
1301
- }
1302
-
1303
- // show|hide translator icon (currently NOT supported)
1304
- // if (translation_enabled) {
1305
- // logger.info('\n' + 'translator detected: google');
1306
- // logger.info('\n' + 'initialize language selector');
1307
- // $('.goog-te-combo').addClass('form-control');
1308
- // }
1309
1056
 
1057
+ // TODO: should MOVED to ControlCenter Adapter ???
1058
+ // -----------------------------------------------------------------
1310
1059
  // show cc icon (currently NOT supported)
1311
1060
  // $('#quickLinksControlCenterButton').css('display', 'block');
1312
1061
 
1062
+ // TODO: should MOVED to Cookiebar ???
1313
1063
  // show|hide cookie icon
1314
1064
  if (j1.existsCookie(cookie_names.user_consent)) {
1315
1065
  // Display cookie icon
@@ -1323,6 +1073,7 @@ var j1 = (function () {
1323
1073
  $('#quickLinksCookieButton').css('display', 'none');
1324
1074
  }
1325
1075
 
1076
+ // TODO: should MOVED to Themer ???
1326
1077
  // jadams, 2021-07-25: hide|show themes menu on cookie consent
1327
1078
  // (analysis|personalization) settings. BootSwatch is a 3rd party
1328
1079
  // is using e.g GA. Because NO control is possible on 3rd parties,
@@ -1336,10 +1087,7 @@ var j1 = (function () {
1336
1087
  $("#themes_menu").show();
1337
1088
  }
1338
1089
 
1339
- // If the page requested contains an anchor element,
1340
- // do a smooth scroll
1341
- j1.scrollTo();
1342
-
1090
+ // detect if a loaded page has been chenged
1343
1091
  if (user_session.previous_page !== user_session.current_page) {
1344
1092
  logText = '\n' + 'page change detected';
1345
1093
  logger.info(logText);
@@ -1357,10 +1105,21 @@ var j1 = (function () {
1357
1105
 
1358
1106
  // set|log status
1359
1107
  state = 'finished';
1108
+ j1.setState(state);
1360
1109
  logText = '\n' + 'state: ' + state;
1361
1110
  logger.info(logText);
1362
1111
  logText = '\n' + 'page finalized successfully';
1363
1112
  logger.info(logText);
1113
+
1114
+ // do a (smooth) scroll if all nav elements ready
1115
+ // -------------------------------------------------------------------
1116
+ var dependencies_met_navigator_finished = setInterval(function() {
1117
+ if (j1.adapter.navigator.getState() == 'finished') {
1118
+ // if a page requested contains an anchor element, do a smooth scroll
1119
+ j1.scrollTo();
1120
+ clearInterval(dependencies_met_navigator_finished);
1121
+ }
1122
+ }, 25);
1364
1123
  }, flickerTimeout);
1365
1124
  }
1366
1125
  },
@@ -1441,6 +1200,7 @@ var j1 = (function () {
1441
1200
 
1442
1201
  return scrollOffset;
1443
1202
  },
1203
+
1444
1204
  // -------------------------------------------------------------------------
1445
1205
  // scrollTo()
1446
1206
  // Scrolls smooth to any anchor referenced by an page URL on
@@ -1452,9 +1212,9 @@ var j1 = (function () {
1452
1212
  var anchor = window.location.href.split('#')[1];
1453
1213
  var anchor_id = typeof anchor !== 'undefined' ? '#' + anchor : false;
1454
1214
  var scrollDuration = {{toccer_options.scrollSmoothDuration}};
1215
+ var scrollOffset = j1.getScrollOffset();
1455
1216
  var isSlider = false;
1456
1217
  var selector;
1457
- var scrollOffset;
1458
1218
 
1459
1219
  if (typeof anchor === 'undefined') {
1460
1220
  return false;
@@ -1462,15 +1222,13 @@ var j1 = (function () {
1462
1222
  return false;
1463
1223
  }
1464
1224
 
1465
- scrollOffset = j1.getScrollOffset();
1466
-
1467
1225
  // Check if the anchor is an slider/gallery element
1468
1226
  if (typeof anchor !== 'undefined') {
1469
- isSlider = anchor.includes('slide');
1227
+ isSlider = anchor.includes('slide');
1470
1228
  }
1471
1229
 
1472
1230
  if (anchor_id && anchor_id !== '#' && !isSlider) {
1473
- // scroll only, if an anchor is given with URL
1231
+ // scroll only, if an anchor is given with an URL
1474
1232
  selector = $(anchor_id);
1475
1233
  if (selector.length) {
1476
1234
  j1.core.scrollSmooth.scroll(anchor_id, {
@@ -1745,13 +1503,18 @@ var j1 = (function () {
1745
1503
  // context/HTTPS).
1746
1504
  // -------------------------------------------------------------------------
1747
1505
  writeCookie: function (options /*name, data, [path, expires, domain, samesite, http_only, secure]*/) {
1748
- var date = new Date();
1749
- var timestamp_now = date.toISOString();
1750
- var cookie_data = {};
1506
+ var date = new Date();
1507
+ var timestamp_now = date.toISOString()
1508
+ var url = new liteURL(window.location.href);
1509
+ var baseUrl = url.origin;;
1510
+ var hostname = url.hostname;
1511
+ var domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
1512
+ var stringifiedAttributes = '';
1513
+ var cookie_data = {};
1751
1514
  var data_json;
1752
1515
  var data_encoded;
1753
1516
  var expires;
1754
- var stringifiedAttributes = '';
1517
+ var domainAttribute;
1755
1518
 
1756
1519
  var defaults = {
1757
1520
  data: {},
@@ -1763,7 +1526,6 @@ var j1 = (function () {
1763
1526
  http_only: '{{cookie_options.http_only}}',
1764
1527
  secure: '{{cookie_options.secure}}'
1765
1528
  };
1766
-
1767
1529
  var settings = $.extend(defaults, options);
1768
1530
 
1769
1531
  cookie_data.timestamp = timestamp_now;
@@ -1779,17 +1541,26 @@ var j1 = (function () {
1779
1541
  data_encoded = window.btoa(data_json);
1780
1542
  }
1781
1543
 
1782
- stringifiedAttributes += '; ' + 'path=' + settings.path;
1544
+ stringifiedAttributes += '; ' + 'Path=' + settings.path;
1783
1545
 
1784
1546
  if (settings.expires > 0) {
1785
1547
  date.setTime(date.getTime() + (settings.expires * 24 * 60 * 60 * 1000));
1786
- stringifiedAttributes += '; ' + 'expires=' + date.toUTCString();
1548
+ stringifiedAttributes += '; ' + 'Expires=' + date.toUTCString();
1787
1549
  }
1788
1550
 
1789
1551
  stringifiedAttributes += '; ' + 'SameSite=' + settings.samesite;
1790
1552
 
1791
- if (settings.secure) {
1792
- stringifiedAttributes += '; ' + 'secure=' + settings.secure;
1553
+ // set domain used by cookies
1554
+ if (settings.domain == 'auto') {
1555
+ domainAttribute = domain;
1556
+ stringifiedAttributes += '; ' + 'Domain=' + domainAttribute;
1557
+ } else {
1558
+ domainAttribute = 'localhost';
1559
+ stringifiedAttributes += '; ' + 'Domain=' + domainAttribute;
1560
+ }
1561
+
1562
+ if (settings.secure == true) {
1563
+ stringifiedAttributes += '; ' + 'Secure=' + settings.secure;
1793
1564
  }
1794
1565
 
1795
1566
  // write the cookie
@@ -1824,16 +1595,31 @@ var j1 = (function () {
1824
1595
  // removeCookie (Vanilla JS)
1825
1596
  // -------------------------------------------------------------------------
1826
1597
  removeCookie: function (options /*name, [path, domain]*/) {
1827
- var cookieExists;
1598
+ var domainAttribute;
1599
+
1828
1600
  var defaults = {
1829
- domain: 'localhost',
1830
- path: '/'
1601
+ path: '{{cookie_options.path}}',
1602
+ expires: '{{cookie_options.expires}}',
1603
+ domain: '{{cookie_options.domain}}',
1604
+ samesite: '{{cookie_options.same_site}}',
1605
+ http_only: '{{cookie_options.http_only}}',
1606
+ secure: '{{cookie_options.secure}}'
1831
1607
  };
1608
+ var cookieExists;
1609
+
1832
1610
  var settings = $.extend(defaults, options);
1833
1611
 
1612
+ // set domain used by cookies
1613
+ if (settings.domain == 'auto') {
1614
+ domainAttribute = domain ;
1615
+ } else {
1616
+ // domainAttribute = hostname;
1617
+ domainAttribute = '';
1618
+ }
1619
+
1834
1620
  if (j1.findCookie(settings.name)) {
1835
1621
  // clear cookie CONTENT and set expiry date in the PAST
1836
- document.cookie = settings.name + '=; domain=' + settings.domain + '; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
1622
+ document.cookie = settings.name + '=; Domain=' + domainAttribute + '; Expires=Thu, 01 Jan 1970 00:00:00 UTC; Path=/;';
1837
1623
  return true;
1838
1624
  } else {
1839
1625
  return false;
@@ -1859,13 +1645,30 @@ var j1 = (function () {
1859
1645
  // to JavaScript. For that reason, attributes needs to be set explicitly.
1860
1646
  // -------------------------------------------------------------------------
1861
1647
  expireCookie: function (options /*name [,path, samesite, secure]*/) {
1648
+ var url = new liteURL(window.location.href);
1649
+ var baseUrl = url.origin;;
1650
+ var hostname = url.hostname;
1651
+ var domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
1652
+ var domainAttribute;
1653
+
1862
1654
  var defaults = {
1863
- path: '/',
1864
- samesite: 'Lax',
1865
- secure: false
1655
+ path: '{{cookie_options.path}}',
1656
+ expires: '{{cookie_options.expires}}',
1657
+ domain: '{{cookie_options.domain}}',
1658
+ samesite: '{{cookie_options.same_site}}',
1659
+ http_only: '{{cookie_options.http_only}}',
1660
+ secure: '{{cookie_options.secure}}'
1866
1661
  };
1867
1662
  var settings = $.extend(defaults, options);
1868
1663
 
1664
+ // set domain used by cookies
1665
+ if (settings.domain == 'auto') {
1666
+ domainAttribute = domain ;
1667
+ } else {
1668
+ // domainAttribute = hostname;
1669
+ domainAttribute = '';
1670
+ }
1671
+
1869
1672
  var dc = document.cookie; // all cookies in page
1870
1673
  var end = dc.length; // default to end of the string
1871
1674
  var prefix = settings.name + '='; // search string for the cookie name given
@@ -1893,10 +1696,10 @@ var j1 = (function () {
1893
1696
 
1894
1697
  // expire cookie to session
1895
1698
  content = decodeURI(dc.substring(begin + prefix.length, end) ).replace(/"/g, '');
1896
- if (settings.secure) {
1897
- document.cookie = settings.name + '=' + content +'; path=' + settings.path + '; ' + 'SameSite=' + settings.samesite + '; secure';
1699
+ if (settings.secure == 'true') {
1700
+ document.cookie = settings.name + '=' + content +'; Path=' + settings.path + '; ' + 'SameSite=' + settings.samesite + '; ' + 'Domain=' + domainAttribute + '; Secure' + '; ';
1898
1701
  } else {
1899
- document.cookie = settings.name + '=' + content +'; path=' + settings.path + '; ' + 'SameSite=' + settings.samesite;
1702
+ document.cookie = settings.name + '=' + content +'; Path=' + settings.path + '; ' + 'SameSite=' + settings.samesite + '; ' + 'Domain=' + domainAttribute + '; ';
1900
1703
  }
1901
1704
 
1902
1705
  return true;