| 19 /* Regex */ |
19 /* Regex */ |
| 20 div.hide{display:none;} |
20 div.hide{display:none;} |
| 21 span.regex{background-color:#ffafaf;font-weight:bold;} |
21 span.regex{background-color:#ffafaf;font-weight:bold;} |
| 22 </style> |
22 </style> |
| 23 <script> |
23 <script> |
| |
24 function nearBottom() { |
| |
25 return ( document.body.scrollTop >= ( document.body.offsetHeight - ( window.innerHeight * 1.5 ) ) ); |
| |
26 } |
| |
27 |
| |
28 function scrollToBottom() { |
| |
29 document.body.scrollTop = document.body.offsetHeight; |
| |
30 } |
| |
31 |
| 24 regex = { |
32 regex = { |
| 25 clear: function () { |
33 clear: function () { |
| 26 var list, i; |
34 var list, i; |
| |
35 var scroll = nearBottom(); |
| |
36 |
| 27 /* Remove highlighting SPANs */ |
37 /* Remove highlighting SPANs */ |
| 28 list = document.getElementsByClassName('regex'); |
38 list = document.getElementsByClassName('regex'); |
| 29 i = list.length; |
39 i = list.length; |
| 30 while (i--) { |
40 while (i--) { |
| 31 var span = list[i]; |
41 var span = list[i]; |
| 40 i = list.length; |
50 i = list.length; |
| 41 while (i--) { |
51 while (i--) { |
| 42 list[i].classList.remove('hide'); |
52 list[i].classList.remove('hide'); |
| 43 } |
53 } |
| 44 |
54 |
| |
55 if (scroll) |
| |
56 scrollToBottom(); |
| 45 this.enabled = false; |
57 this.enabled = false; |
| 46 }, |
58 }, |
| 47 |
59 |
| 48 highlightTextNodes: function (div, start_pos, end_pos) { |
60 highlightTextNodes: function (div, start_pos, end_pos) { |
| 49 var data = [], node, range, span, contents; |
61 var data = [], node, range, span, contents; |
| 184 } |
196 } |
| 185 |
197 |
| 186 function append(level, time, cat, msg) { |
198 function append(level, time, cat, msg) { |
| 187 var div = document.createElement('div'); |
199 var div = document.createElement('div'); |
| 188 div.className = 'l' + level; |
200 div.className = 'l' + level; |
| |
201 |
| 189 div.appendChild(document.createTextNode('(' + time + ') ')); |
202 div.appendChild(document.createTextNode('(' + time + ') ')); |
| |
203 |
| 190 if (cat) { |
204 if (cat) { |
| 191 var cat_n = document.createElement('b'); |
205 var cat_n = document.createElement('b'); |
| 192 cat_n.appendChild(document.createTextNode(cat + ':')); |
206 cat_n.appendChild(document.createTextNode(cat + ':')); |
| 193 div.appendChild(cat_n); |
207 div.appendChild(cat_n); |
| 194 div.appendChild(document.createTextNode(' ')); |
208 div.appendChild(document.createTextNode(' ')); |
| 195 } |
209 } |
| |
210 |
| 196 div.appendChild(document.createTextNode(msg)); |
211 div.appendChild(document.createTextNode(msg)); |
| |
212 |
| 197 if (regex.enabled) |
213 if (regex.enabled) |
| 198 regex.match(div); |
214 regex.match(div); |
| |
215 |
| |
216 var scroll = nearBottom(); |
| 199 document.body.appendChild(div); |
217 document.body.appendChild(div); |
| |
218 if (scroll) |
| |
219 scrollToBottom(); |
| 200 } |
220 } |
| 201 |
221 |
| 202 function clear() { |
222 function clear() { |
| 203 document.body.innerHTML = ''; |
223 document.body.innerHTML = ''; |
| 204 } |
224 } |
| 210 function resumeOutput() { |
230 function resumeOutput() { |
| 211 var pause = document.getElementById('pause'); |
231 var pause = document.getElementById('pause'); |
| 212 if (pause) { |
232 if (pause) { |
| 213 var parent = pause.parentNode; |
233 var parent = pause.parentNode; |
| 214 parent.removeChild(pause); |
234 parent.removeChild(pause); |
| |
235 scrollToBottom(); |
| 215 } |
236 } |
| 216 } |
237 } |
| 217 |
238 |
| 218 function setFilterLevel(l) { |
239 function setFilterLevel(l) { |
| |
240 var scroll = nearBottom(); |
| |
241 |
| 219 document.body.className = 'l'+l; |
242 document.body.className = 'l'+l; |
| |
243 |
| |
244 if (scroll) |
| |
245 scrollToBottom(); |
| 220 } |
246 } |
| 221 </script> |
247 </script> |
| 222 </head> |
248 </head> |
| 223 <body class=l0></body> |
249 <body class=l0></body> |
| 224 </html> |
250 </html> |