error404.handlebars 9.2 KB

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