error404.handlebars 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html lang="en">
  3. <head>
  4. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  5. <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
  6. <meta name="viewport" content="user-scalable=1.0,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0" />
  7. <meta name="apple-mobile-web-app-capable" content="yes" />
  8. <meta name="format-detection" content="telephone=no" />
  9. <meta name="robots" content="noindex,nofollow" />
  10. <link type="text/css" href="/styles/style.css" media="screen" rel="stylesheet" title="CSS" />
  11. {{{customCSSTags}}}
  12. <link rel="apple-touch-icon" href="/favicon-303x303.png" />
  13. {{{customJSTags}}}
  14. <title>{{{title}}}</title>
  15. <style nonce="{{{cspNonce}}}">
  16. #xbody {
  17. overflow: hidden;
  18. }
  19. #masthead {
  20. background: url(logo.png) 0px 0px;
  21. background-color: #036;
  22. background-repeat: no-repeat;
  23. height: 66px;
  24. width: 100%;
  25. overflow: hidden;
  26. }
  27. #title1 {
  28. float: left;
  29. text-shadow: 1px 1px 2px #000;
  30. }
  31. #title2 {
  32. float: left;
  33. height: 66px;
  34. color: #c8c8c8;
  35. padding-left: 16px;
  36. padding-top: 7px;
  37. }
  38. #title2a {
  39. font-size: 46px;
  40. font-family: Arial, Helvetica, sans-serif;
  41. text-shadow: 1px 1px 2px #000;
  42. }
  43. #title3 {
  44. float: left;
  45. height: 66px;
  46. color: #c8c8c8;
  47. padding-left: 5px;
  48. padding-top: 14px;
  49. }
  50. #title3a {
  51. font-size: 14px;
  52. font-family: Arial, Helvetica, sans-serif;
  53. text-shadow: 1px 1px 2px #000;
  54. }
  55. #footerLeft {
  56. text-align: left;
  57. }
  58. #footerRight {
  59. text-align: right;
  60. }
  61. #topbar {
  62. height: 24px;
  63. position: relative;
  64. }
  65. #page_leftbar_div {
  66. height: 16px;
  67. }
  68. #uiMenu {
  69. }
  70. #text1 {
  71. text-align: center;
  72. padding-top: 30px;
  73. font-size: 200px;
  74. font-family: Arial;
  75. color: #bbb;
  76. }
  77. #text2 {
  78. text-align: center;
  79. font-size: 20px;
  80. font-family: Arial;
  81. color: #999;
  82. }
  83. #text3 {
  84. text-align: center;
  85. padding-top: 20px;
  86. font-size: 20px;
  87. font-family: Arial;
  88. color: #999;
  89. }
  90. #column_l {
  91. max-height: calc(100vh - 135px);
  92. overflow-y: auto;
  93. }
  94. </style>
  95. </head>
  96. <body id="xbody">
  97. <div id="container">
  98. <!-- Begin Masthead -->
  99. <div id="masthead" class=noselect>
  100. <div id="title1">{{{titlehtml}}}</div>
  101. <div id="title2">
  102. <strong><font id="title2a">{{{title1}}}</font></strong>
  103. </div>
  104. <div id="title3">
  105. <strong><font id="title3a">{{{title2}}}</font></strong>
  106. </div>
  107. </div>
  108. <div id="page_leftbar">
  109. <div id="page_leftbar_div"></div>
  110. </div>
  111. <div id=topbar class="noselect style3">
  112. <div id=uiMenuButton title="User interface selection">
  113. &diams;
  114. <div id=uiMenu>
  115. <div id=uiViewButton1 class=uiSelector title="Left bar interface"><div class="uiSelector1"></div></div>
  116. <div id=uiViewButton2 class=uiSelector title="Top bar interface"><div class="uiSelector2"></div></div>
  117. <div id=uiViewButton3 class=uiSelector title="Fixed width interface"><div class="uiSelector3"></div></div>
  118. <div id=uiViewButton4 class=uiSelector title="Toggle night mode"><div class="uiSelector4"></div></div>
  119. </div>
  120. </div>
  121. </div>
  122. <div id="column_l">
  123. <div id="text1"><b>404</b></div>
  124. <div id="text2">This page does not exist</div>
  125. <div id="text3"><a href="/" style="text-decoration:none"><b>Go to main site</b></a></div>
  126. </div>
  127. <div id="footer">
  128. <table cellpadding="0" cellspacing="10" style="width: 100%">
  129. <tr>
  130. <td id="footerLeft"></td>
  131. <td id="footerRight"><a href="/">Back</a></td>
  132. </tr>
  133. </table>
  134. </div>
  135. </div>
  136. <script nonce="{{{cspNonce}}}">
  137. 'use strict';
  138. var random = '{{{randomlength}}}' // Random length string for BREACH mitigation
  139. var uiMode = parseInt(getstore('uiMode', 1));
  140. var webPageStackMenu = false;
  141. var webPageFullScreen = true;
  142. var nightMode = (getstore('_nightMode', '0') == '1');
  143. var menuVisible = false;
  144. QV('uiMenu', menuVisible);
  145. if (nightMode) { QC('xbody').add('night'); } else { QC('xbody').remove('night'); }
  146. // Setup handlers
  147. Q('uiMenuButton').onclick = showUserInterfaceSelectMenu;
  148. Q('uiViewButton1').onclick = function () { userInterfaceSelectMenu(1); }
  149. Q('uiViewButton2').onclick = function () { userInterfaceSelectMenu(2); }
  150. Q('uiViewButton3').onclick = function () { userInterfaceSelectMenu(3); }
  151. Q('uiViewButton4').onclick = toggleNightMode;
  152. var terms = '{{{terms}}}';
  153. if (terms != '') { QH('column_l', decodeURIComponent(terms)); }
  154. QV('column_l', true);
  155. userInterfaceSelectMenu();
  156. // Toggle user interface menu
  157. function showUserInterfaceSelectMenu() {
  158. Q('uiViewButton1').classList.remove('uiSelectorSel');
  159. Q('uiViewButton2').classList.remove('uiSelectorSel');
  160. Q('uiViewButton3').classList.remove('uiSelectorSel');
  161. Q('uiViewButton4').classList.remove('uiSelectorSel');
  162. try { Q('uiViewButton' + uiMode).classList.add('uiSelectorSel'); } catch (ex) { }
  163. menuVisible = !menuVisible;
  164. QV('uiMenu', menuVisible);
  165. if (nightMode) { Q('uiViewButton4').classList.add('uiSelectorSel'); }
  166. }
  167. function userInterfaceSelectMenu(s) {
  168. if (s) { uiMode = s; putstore('uiMode', uiMode); }
  169. webPageFullScreen = (uiMode < 3);
  170. webPageStackMenu = true;//(uiMode > 1);
  171. toggleFullScreen(0);
  172. toggleStackMenu(0);
  173. QC('column_l').add('room4submenu');
  174. }
  175. function toggleNightMode() {
  176. nightMode = !nightMode;
  177. if (nightMode) { QC('xbody').add('night'); } else { QC('xbody').remove('night'); }
  178. putstore('_nightMode', nightMode ? '1' : '0');
  179. }
  180. // Toggle the web page to full screen
  181. function toggleFullScreen(toggle) {
  182. if (toggle === 1) { webPageFullScreen = !webPageFullScreen; putstore('webPageFullScreen', webPageFullScreen); }
  183. var hide = 0;
  184. //if (args.hide) { hide = parseInt(args.hide); }
  185. if (webPageFullScreen == false) {
  186. QC('xbody').remove('menu_stack');
  187. QC('xbody').remove('fullscreen');
  188. QC('xbody').remove('arg_hide');
  189. //if (xxcurrentView >= 10) QC('column_l').add('room4submenu');
  190. //QV('UserDummyMenuSpan', false);
  191. //QV('page_leftbar', false);
  192. } else {
  193. QC('xbody').add('fullscreen');
  194. if (hide & 16) QC('xbody').add('arg_hide'); // This is replacement for QV('page_leftbar', !(hide & 16));
  195. //QV('UserDummyMenuSpan', (xxcurrentView < 10) && webPageFullScreen);
  196. //QV('page_leftbar', true);
  197. }
  198. QV('xbody', true);
  199. }
  200. // If FullScreen, toggle menu to be horisontal or vertical
  201. function toggleStackMenu(toggle) {
  202. if (webPageFullScreen == true) {
  203. if (toggle === 1) {
  204. webPageStackMenu = !webPageStackMenu;
  205. putstore('webPageStackMenu', webPageStackMenu);
  206. }
  207. if (webPageStackMenu == false) {
  208. QC('xbody').remove('menu_stack');
  209. } else {
  210. QC('xbody').add('menu_stack');
  211. //if (xxcurrentView >= 10) QC('column_l').remove('room4submenu');
  212. }
  213. }
  214. }
  215. function putstore(name, val) { try { if (typeof (localStorage) === 'undefined') return; localStorage.setItem(name, val); } catch (e) { } }
  216. function getstore(name, val) { try { if (typeof (localStorage) === 'undefined') return val; var v = localStorage.getItem(name); if ((v == null) || (v == null)) return val; return v; } catch (e) { return val; } }
  217. function Q(x) { return document.getElementById(x); } // "Q"
  218. function QS(x) { try { return Q(x).style; } catch (x) { } } // "Q" style
  219. function QV(x, y) { try { QS(x).display = (y ? '' : 'none'); } catch (ex) { console.log(ex); } } // "Q" visible
  220. function QH(x, y) { Q(x).innerHTML = y; } // "Q" html
  221. function QC(x) { try { return Q(x).classList; } catch (x) { } } // "Q" class
  222. </script>
  223. </body>
  224. </html>