render_namumark.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. function get_link_state(data, i = 0) {
  2. var get_class = document.getElementsByClassName(data + 'link_finder')[i];
  3. if(get_class) {
  4. get_link_state(data, i + 1);
  5. if(!get_class.href.match(/^#/)) {
  6. var xhr = new XMLHttpRequest();
  7. xhr.open("GET", get_class.href.replace('/w/', '/api/w/').replace(/#([^#]*)$/, '') + "?exist=1");
  8. xhr.send();
  9. xhr.onreadystatechange = function() {
  10. if(this.readyState === 4 && this.status === 200) {
  11. if(JSON.parse(this.responseText)['exist'] !== '1') {
  12. document.getElementsByClassName(data + 'link_finder')[i].id = "not_thing";
  13. }
  14. }
  15. }
  16. }
  17. }
  18. }
  19. function load_image_link(data) {
  20. data.innerHTML = '' +
  21. '<img style="' + data.getAttribute('under_style') + '" ' +
  22. 'alt="' + data.getAttribute('under_alt') + '" ' +
  23. 'src="' + data.getAttribute('under_src') + '">' +
  24. '';
  25. }
  26. function get_file_state_extermal(data, i) {
  27. var get_class = document.getElementsByClassName(data + 'file_finder')[i];
  28. if(
  29. document.cookie.match(main_css_regex_data('main_css_image_set')) &&
  30. document.cookie.match(main_css_regex_data('main_css_image_set'))[1] === '1'
  31. ) {
  32. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  33. '<a href="' + get_class.getAttribute('under_src') + '" ' +
  34. 'title="' + get_class.getAttribute('under_src') + '">' +
  35. '(External image link)' +
  36. '</a>' +
  37. '';
  38. } else if(
  39. document.cookie.match(main_css_regex_data('main_css_image_set')) &&
  40. document.cookie.match(main_css_regex_data('main_css_image_set'))[1] === '2'
  41. ) {
  42. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  43. '<a href="javascript:void(0);" ' +
  44. 'onclick="load_image_link(this); this.onclick = \'\';" ' +
  45. 'under_style="' + get_class.getAttribute('under_style') + '" ' +
  46. 'under_alt="' + get_class.getAttribute('under_alt') + '" ' +
  47. 'under_src="' + get_class.getAttribute('under_src') + '" ' +
  48. 'title="' + get_class.getAttribute('under_src') + '">' +
  49. '(External image load)' +
  50. '</a>' +
  51. '';
  52. } else {
  53. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  54. '<img style="' + get_class.getAttribute('under_style') + '" ' +
  55. 'alt="' + get_class.getAttribute('under_alt') + '" ' +
  56. 'src="' + get_class.getAttribute('under_src') + '">' +
  57. '';
  58. }
  59. }
  60. function get_file_state_intermal(data, i) {
  61. var get_class = document.getElementsByClassName(data + 'file_finder')[i];
  62. var file_type = get_class.getAttribute('under_src').split('.');
  63. var file_name = file_type.slice(0, file_type.length - 1).join('.');
  64. file_type = file_type[file_type.length - 1].toLowerCase();
  65. var xhr = new XMLHttpRequest();
  66. xhr.open("GET", '/api/sha224/' + file_name);
  67. xhr.send();
  68. xhr.onreadystatechange = function() {
  69. if(this.readyState === 4 && this.status === 200) {
  70. file_name = JSON.parse(this.responseText)['data'];
  71. var xhr_2 = new XMLHttpRequest();
  72. xhr_2.open("GET", '/api/image/' + file_name + '.' + file_type);
  73. xhr_2.send();
  74. xhr_2.onreadystatechange = function() {
  75. if(this.readyState === 4 && this.status === 200) {
  76. if(JSON.parse(this.responseText)['exist'] !== '1') {
  77. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  78. '<a href="' + get_class.getAttribute('under_href') + '" ' +
  79. 'id="not_thing">' +
  80. '(' + get_class.getAttribute('under_alt') + ')' +
  81. '</a>' +
  82. '';
  83. } else {
  84. if(
  85. document.cookie.match(main_css_regex_data('main_css_image_set')) &&
  86. document.cookie.match(main_css_regex_data('main_css_image_set'))[1] === '1'
  87. ) {
  88. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  89. '<a href="/image/' + file_name + '.' + file_type + '">' +
  90. '(' + get_class.getAttribute('under_alt') + ')' +
  91. '</a>' +
  92. '';
  93. } else if(
  94. document.cookie.match(main_css_regex_data('main_css_image_set')) &&
  95. document.cookie.match(main_css_regex_data('main_css_image_set'))[1] === '2'
  96. ) {
  97. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  98. '<a href="javascript:void(0);" ' +
  99. 'onclick="load_image_link(this); this.onclick = \'\';" ' +
  100. 'under_style="' + get_class.getAttribute('under_style') + '" ' +
  101. 'under_alt="' + get_class.getAttribute('under_alt') + '" ' +
  102. 'under_src="/image/' + file_name + '.' + file_type + '">' +
  103. '(' + get_class.getAttribute('under_alt') + ' load)' +
  104. '</a>' +
  105. '';
  106. } else {
  107. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  108. '<img style="' + get_class.getAttribute('under_style') + '" ' +
  109. 'alt="' + get_class.getAttribute('under_alt') + '" ' +
  110. 'src="/image/' + file_name + '.' + file_type + '">' +
  111. '';
  112. }
  113. }
  114. }
  115. }
  116. }
  117. }
  118. }
  119. function get_file_state(data, i = 0) {
  120. var get_class = document.getElementsByClassName(data + 'file_finder')[i];
  121. if(get_class) {
  122. get_file_state(data, i + 1);
  123. if(get_class.getAttribute('under_href') === 'out_link') {
  124. get_file_state_extermal(data, i);
  125. } else {
  126. get_file_state_intermal(data, i);
  127. }
  128. }
  129. }
  130. function load_include(name_doc, name_ob, data_include, name_org = '') {
  131. var change = '';
  132. for(var key in data_include) {
  133. change += '' +
  134. '@' + data_include[key][0].replace('&', '<amp>') + '@,' +
  135. data_include[key][1].replace(',', '<comma>').replace('&', '<amp>') + ',' +
  136. ''
  137. }
  138. var url = '' +
  139. "/api/w/" + encodeURI(name_doc) +
  140. "?include=" + name_ob +
  141. "&change=" + change +
  142. '&name_org=' + name_org +
  143. '';
  144. var xhr = new XMLHttpRequest();
  145. xhr.open("GET", url);
  146. xhr.send();
  147. xhr.onreadystatechange = function() {
  148. if(this.readyState === 4 && this.status === 200) {
  149. if(this.responseText === "{}\n") {
  150. document.getElementById(name_ob).innerHTML = "";
  151. document.getElementsByClassName(name_ob)[0].href = "/w/" + do_url_change(name_doc);
  152. document.getElementsByClassName(name_ob)[0].id = "not_thing";
  153. } else {
  154. var data_load = JSON.parse(this.responseText);
  155. document.getElementById(name_ob).innerHTML = data_load['data'];
  156. eval(data_load['js_data']);
  157. }
  158. }
  159. }
  160. }
  161. function page_count() {
  162. var url = "/api/title_index";
  163. var xhr = new XMLHttpRequest();
  164. xhr.open("GET", url);
  165. xhr.send();
  166. xhr.onreadystatechange = function() {
  167. if(this.readyState === 4 && this.status === 200) {
  168. var i = 0;
  169. while(document.getElementsByClassName('all_page_count')[i]) {
  170. document.getElementsByClassName('all_page_count')[i].innerHTML = JSON.parse(this.responseText)['count'];
  171. i += 1;
  172. }
  173. }
  174. }
  175. }
  176. function do_open_folding(data, element = '') {
  177. var fol = document.getElementById(data);
  178. if(fol.style.display === '' || (fol.style.display === 'inline-block' || fol.style.display === 'block')) {
  179. document.getElementById(data).style.display = 'none';
  180. } else {
  181. document.getElementById(data).style.display = 'block';
  182. }
  183. if(element != '') {
  184. var fol_data = element.innerHTML;
  185. if(fol_data != '⊖') {
  186. element.innerHTML = '⊖';
  187. } else {
  188. element.innerHTML = '⊕';
  189. }
  190. }
  191. }
  192. function do_open_foot(name, num = 0) {
  193. var found_include = name.match(/^(include_(?:[0-9]+)\-)/);
  194. if(found_include) {
  195. var include_name = name.replace(/^(?:include_(?:[0-9]+)\-)/, '');
  196. var front_data = found_include[1];
  197. } else {
  198. var include_name = name;
  199. var front_data = '';
  200. }
  201. if(
  202. document.cookie.match(main_css_regex_data('main_css_footnote_set')) &&
  203. document.cookie.match(main_css_regex_data('main_css_footnote_set'))[1] === '1'
  204. ) {
  205. if(num === 1) {
  206. document.getElementById(front_data + 'r' + include_name).focus();
  207. } else {
  208. var get_data = document.getElementById(front_data + include_name).innerHTML;
  209. var org_data = document.getElementById(front_data + 'd' + include_name).innerHTML;
  210. if(org_data === '') {
  211. document.getElementById(front_data + 'd' + include_name).innerHTML = '' +
  212. '<a href="#' + front_data + 'c' + include_name + '">(Go)</a> ' + get_data +
  213. '';
  214. document.getElementById(front_data + 'd' + include_name).className = 'spead_footnote';
  215. } else {
  216. document.getElementById(front_data + 'd' + include_name).innerHTML = '';
  217. document.getElementById(front_data + 'd' + include_name).className = '';
  218. }
  219. }
  220. } else {
  221. document.getElementById(front_data + 'r' + include_name).style.color = 'red';
  222. document.getElementById(front_data + 'c' + include_name).style.color = (num === 1 ? 'inherit' : 'red');
  223. document.getElementById(front_data + (num === 1 ? 'r' : 'c') + include_name).focus();
  224. }
  225. }