Rev 231 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 231 | Rev 235 | ||
|---|---|---|---|
| Line 53... | Line 53... | ||
| 53 | </div>
|
53 | </div>
|
| 54 | */ ?> |
54 | */ ?> |
| 55 | <div id="bow"> |
55 | <div id="bow"> |
| 56 | <div id="bow-top"> |
56 | <div id="bow-top"> |
| 57 | <div class="separator-left"> </div> |
57 | <div class="separator-left"> </div> |
| 58 | <div class="text"> |
58 | <div class="text" lang="<?php echo $language; ?>"> |
| 59 | <span>PointedEars’ Website</span> |
59 | <span><?php echo tr("PointedEars' Website"); ?></span> |
| 60 | </div> |
60 | </div> |
| 61 | </div> |
61 | </div> |
| 62 | <div id="bow-top-left"> |
62 | <div id="bow-top-left"> |
| 63 | <div class="concave"> </div> |
63 | <div class="concave"> </div> |
| 64 | <div |
64 | <div |
| Line 123... | Line 123... | ||
| 123 | </div> |
123 | </div> |
| 124 | <ul> |
124 | <ul> |
| 125 | <li><a |
125 | <li><a |
| 126 | href="http://climateapps2.oerc.ox.ac.uk/cpdnboinc/show_user.php?userid=648544" |
126 | href="http://climateapps2.oerc.ox.ac.uk/cpdnboinc/show_user.php?userid=648544" |
| 127 | target="_top" class="button secondary" |
127 | target="_top" class="button secondary" |
| 128 | title="<?php echo tr("The world’s largest climate forecasting experiment for the 21st century"); ?>" |
128 | title="<?php echo tr("The world's largest climate forecasting experiment for the 21st century"); ?>" |
| 129 | ><span class="text">climateprediction.net</span></a></li> |
129 | ><span class="text">climateprediction.net</span></a></li> |
| 130 | <li><a |
130 | <li><a |
| 131 | href="http://fah-web2.stanford.edu/cgi-bin/main.py?qtype=userpage&username=Thomas_Lahn" |
131 | href="http://fah-web2.stanford.edu/cgi-bin/main.py?qtype=userpage&username=Thomas_Lahn" |
| 132 | target="_top" class="button secondary" |
132 | target="_top" class="button secondary" |
| 133 | title="<?php echo tr("Distributed computing to understand protein folding, protein aggregation, and related diseases"); ?>" |
133 | title="<?php echo tr("Distributed computing to understand protein folding, protein aggregation, and related diseases"); ?>" |
| Line 204... | Line 204... | ||
| 204 | </div> |
204 | </div> |
| 205 | <div class="analysis" id="analysis"> |
205 | <div class="analysis" id="analysis"> |
| 206 | <table> |
206 | <table> |
| 207 | <tr> |
207 | <tr> |
| 208 | <th lang="<?php echo $language; ?>"><span class="text"><?php echo tr('Display'); ?></span></th> |
208 | <th lang="<?php echo $language; ?>"><span class="text"><?php echo tr('Display'); ?></span></th> |
| 209 | <td lang="<?php echo $language; ?>"><script |
209 | <td lang="<?php echo $language; ?>"><script type="text/javascript"> |
| 210 | type="text/javascript" |
- | |
| 211 | > |
- | |
| 212 | var _addEventListener = jsx.dom.addEventListener; |
210 | var _addEventListener = jsx.dom.addEventListener; |
| 213 | var _runAsync = jsx.dom.timeout.runAsync; |
211 | var _runAsync = jsx.dom.timeout.runAsync; |
| 214 | var ID_SCREEN_DIM = 'screenDim'; |
212 | var ID_SCREEN_DIM = 'screenDim'; |
| 215 | var ID_AVAIL_DIM = 'availDim'; |
213 | var ID_AVAIL_DIM = 'availDim'; |
| 216 | var ID_INNER_DIM = 'innerDim'; |
214 | var ID_INNER_DIM = 'innerDim'; |
| Line 247... | Line 245... | ||
| 247 | var screenDimText = dim.getScreenText(); |
245 | var screenDimText = dim.getScreenText(); |
| 248 | var availDimText = dim.getAvailText(); |
246 | var availDimText = dim.getAvailText(); |
| 249 | var innerDimText = dim.getInnerText(); |
247 | var innerDimText = dim.getInnerText(); |
| 250 | var colorDepthText = dim.getColorDepthText(); |
248 | var colorDepthText = dim.getColorDepthText(); |
| 251 | var displayInfo = (screenDimText || availDimText || innerDimText || colorDepthText) |
249 | var displayInfo = (screenDimText || availDimText || innerDimText || colorDepthText) |
| 252 | ? (screenDimText ? <?php echo sprintf("'" . tr('%s pixels') . "'", "<span id=\"' + ID_SCREEN_DIM + '\">' + screenDimText + '<\/span>' + '"); ?> : "") |
250 | ? (screenDimText ? <?php echo sprintf("'" . tr('%s pixels') . '"', "<span id=\"' + ID_SCREEN_DIM + '\">' + screenDimText + '<\/span>' + \""); ?> : "") |
| 253 | + (availDimText ? ' (<span id="' + ID_AVAIL_DIM + '">' + availDimText + "<\/span>" : "") |
251 | + (availDimText ? ' (<span id="' + ID_AVAIL_DIM + '">' + availDimText + "<\/span>" : "") |
| 254 | + (innerDimText ? '<span id="' + ID_INNER_DIM + '">' + innerDimText + "<\/span>)" : "") |
252 | + (innerDimText ? '<span id="' + ID_INNER_DIM + '">' + innerDimText + "<\/span>)" : "") |
| 255 | + (colorDepthText ? ' × <span id="colorDepth">' + colorDepthText + "<\/span>" : "") |
253 | + (colorDepthText ? ' × <span id="colorDepth">' + colorDepthText + "<\/span>" : "") |
| 256 | : TEXT_NOT_AVAILABLE; |
254 | : TEXT_NOT_AVAILABLE; |
| 257 | 255 | ||
| Line 313... | Line 311... | ||
| 313 | var cookies = document.cookie; |
311 | var cookies = document.cookie; |
| 314 | cookies = cookies.split(/\s*;\s*/); |
312 | cookies = cookies.split(/\s*;\s*/); |
| 315 | features.push('<a href="#" title="'
|
313 | features.push('<a href="#" title="'
|
| 316 | + cookies.join(" ")
|
314 | + cookies.join(" ")
|
| 317 | + '"' |
315 | + '"' |
| - | 316 | + ' onclick=\'window.alert(<?php
|
|
| 318 | + ' onclick="window.alert(\'<?php echo tr('Cookies for'); ?> ' + document.domain + '\\n\\n' + cookies.join("\\n") + '\'); return false">' + cookiesText + '<\/a>'); |
317 | echo htmlspecialchars(sprintf(tr('"Cookies for " + %s + "'), 'document.domain'), ENT_QUOTES); |
| - | 318 | ?>'
|
|
| - | 319 | + '\\n\\n' |
|
| - | 320 | + cookies.join("\\n")
|
|
| - | 321 | + '"); return false\'><span class=\'text\' lang=\'<?php
|
|
| - | 322 | echo $language; |
|
| - | 323 | ?>\'>' + cookiesText + '<\/span><\/a>');
|
|
| 319 | } |
324 | } |
| 320 | else |
325 | else |
| 321 | {
|
326 | {
|
| 322 | features.push('<span class="unavailable"'
|
327 | features.push('<span class="unavailable"'
|
| 323 | + ' title="<?php echo tr('Cookies supported, but no data for this site'); ?>"' |
328 | + ' title="<?php echo htmlspecialchars(tr('Cookies supported, but no data for this site'), ENT_QUOTES); ?>"' |
| 324 | + '>' + cookiesText + '<\/span>'); |
329 | + '>' + cookiesText + '<\/span>'); |
| 325 | } |
330 | } |
| 326 | } |
331 | } |
| 327 | else |
332 | else |
| 328 | {
|
333 | {
|
| 329 | features.push('<span class="offline"'
|
334 | features.push('<span class="offline"'
|
| 330 | + ' title="<?php echo tr('Cookies supported, but disabled'); ?>"' |
335 | + ' title="<?php echo htmlspecialchars(tr('Cookies supported, but disabled'), ENT_QUOTES); ?>"' |
| 331 | + '>' + cookiesText + '<\/span>'); |
336 | + '>' + cookiesText + '<\/span>'); |
| 332 | } |
337 | } |
| 333 | } |
338 | } |
| 334 | 339 | ||
| 335 | if (fullscreen.isSupportedBy(document.documentElement)) |
340 | if (fullscreen.isSupportedBy(document.documentElement)) |
| 336 | {
|
341 | {
|
| 337 | features.push("<span lang='<?php echo $language; ?>'><span class='text'><?php echo tr('Fullscreen'); ?><\/span><\/span>");
|
342 | features.push("<span class='text' lang='<?php echo $language; ?>'><?php echo tr('Fullscreen'); ?><\/span>");
|
| 338 | } |
343 | } |
| 339 | 344 | ||
| 340 | if (navigator.webkitGetGamepads && navigator.webkitGetGamepads().length) |
345 | if (navigator.webkitGetGamepads && navigator.webkitGetGamepads().length) |
| 341 | {
|
346 | {
|
| 342 | features.push("<?php echo tr('Gamepad'); ?>");
|
347 | features.push("<span class='text' lang='<?php echo $language; ?>'><?php echo tr('Gamepad'); ?></span>");
|
| 343 | } |
348 | } |
| 344 | 349 | ||
| 345 | if (jsx.dom.geolocation.isAvailable()) |
350 | if (jsx.dom.geolocation.isAvailable()) |
| 346 | {
|
351 | {
|
| 347 | features.push('<a href="#" title="<?php echo htmlspecialchars(tr('Get location'), ENT_QUOTES); ?>"'
|
352 | features.push('<a href="#" title="<?php echo htmlspecialchars(tr('Get location'), ENT_QUOTES); ?>"'
|
| Line 362... | Line 367... | ||
| 362 | {
|
367 | {
|
| 363 | if (navigator.plugins.length > 0) |
368 | if (navigator.plugins.length > 0) |
| 364 | {
|
369 | {
|
| 365 | features.push('<span title="'
|
370 | features.push('<span title="'
|
| 366 | + navigator.plugins.length |
371 | + navigator.plugins.length |
| 367 | + ' <?php echo tr('plugins installed'); ?>">Plugins<\/span>'); |
372 | + ' <?php echo htmlspecialchars(tr('plugins installed'), ENT_QUOTES); ?>">Plugins<\/span>'); |
| 368 | } |
373 | } |
| 369 | else |
374 | else |
| 370 | {
|
375 | {
|
| 371 | features.push('<span class="unavailable"'
|
376 | features.push('<span class="unavailable"'
|
| 372 | + ' title="<?php echo tr('Plugins supported, but none detected'); ?>"' |
377 | + ' title="<?php echo htmlspecialchars(tr('Plugins supported, but none detected'), ENT_QUOTES); ?>"' |
| 373 | + '>Plugins<\/span>'); |
378 | + '>Plugins<\/span>'); |
| 374 | } |
379 | } |
| 375 | } |
380 | } |
| 376 | 381 | ||
| 377 | if (storage.sessionStorage.isSupported()) |
382 | if (storage.sessionStorage.isSupported()) |
| Line 383... | Line 388... | ||
| 383 | return features.join(" • ");
|
388 | return features.join(" • ");
|
| 384 | } |
389 | } |
| 385 | 390 | ||
| 386 | function stripTags (s) |
391 | function stripTags (s) |
| 387 | {
|
392 | {
|
| 388 | return s.replace(/<[^>]+>/g, ""); |
393 | return s.replace(/<(br|p)\s*\/?>/ig, "\\n").replace(/<[^>]*>/g, ""); |
| 389 | } |
394 | } |
| 390 | 395 | ||
| 391 | var sFeatures = getFeatures(); |
396 | var sFeatures = getFeatures(); |
| 392 | document.write('<span id="features" title="' + stripTags(sFeatures) + '">' + sFeatures + '<\/span>');
|
397 | document.write('<span id="features" title="' + stripTags(sFeatures) + '">' + sFeatures + '<\/span>');
|
| 393 | 398 | ||
| Line 449... | Line 454... | ||
| 449 | onmouseout="return resetStatus()" |
454 | onmouseout="return resetStatus()" |
| 450 | onfocus="return this.onmouseover()" |
455 | onfocus="return this.onmouseover()" |
| 451 | onblur="return this.onmouseout()" |
456 | onblur="return this.onmouseout()" |
| 452 | ><abbr class="text" title="Language selection">Language</abbr></a></li> |
457 | ><abbr class="text" title="Language selection">Language</abbr></a></li> |
| 453 | <li id="cmd2"><a |
458 | <li id="cmd2"><a |
| 454 | href="index.<?php echo $language; ?>?printable=1" |
459 | href="index.<?php echo language_key_short($language); ?>?printable=1" |
| 455 | title="<?php echo tr('Printable version'); ?>" tabindex="1" |
460 | title="<?php echo tr('Printable version'); ?>" tabindex="1" |
| 456 | class="button left right" |
461 | class="button left right" |
| 457 | onmouseover="return setStatus(this.title + ': ' + this.href)" |
462 | onmouseover="return setStatus(this.title + ': ' + this.href)" |
| 458 | onmouseout="return resetStatus()" |
463 | onmouseout="return resetStatus()" |
| 459 | onfocus="return this.onmouseover()" |
464 | onfocus="return this.onmouseover()" |
| 460 | onblur="return this.onmouseout()" |
465 | onblur="return this.onmouseout()" |
| 461 | lang="<?php echo $language; ?>" |
466 | lang="<?php echo $language; ?>" |
| 462 | ><span class="text"><?php echo tr("Printable"); ?></span></a></li> |
467 | ><span class="text"><?php echo tr("Printable"); ?></span></a></li> |
| 463 | <li id="cmd3"><script type="text/javascript"> |
- | |
| 464 | function toggleFullscreen (button) |
- | |
| 465 | {
|
- | |
| 466 | var nowIsFullscreen = fullscreen.isFullscreen(); |
- | |
| 467 | - | ||
| 468 | if (nowIsFullscreen) |
- | |
| 469 | {
|
- | |
| 470 | fullscreen.cancel(); |
- | |
| 471 | } |
- | |
| 472 | else |
- | |
| 473 | {
|
- | |
| 474 | fullscreen.requestOn(document.documentElement, button); |
- | |
| 475 | } |
- | |
| 476 | } |
- | |
| 477 | </script><div class="button left right" |
468 | <li id="cmd3"><div class="button left right" |
| 478 | style="cursor: not-allowed !important" |
469 | style="cursor: not-allowed !important" |
| 479 | onclick="toggleFullscreen(this)" |
470 | onclick="toggleFullscreen(this)" |
| 480 | onkeyup="if (event.keyCode == 13) { this.click(); }"
|
471 | onkeyup="if (event.keyCode == 13) { this.click(); }"
|
| 481 | lang="<?php echo $language; ?>" |
472 | lang="<?php echo $language; ?>" |
| 482 | ><span class="text"><script type="text/javascript"> |
- | |
| 483 | var cmd3; |
- | |
| 484 | if (fullscreen.isSupportedBy(document.documentElement)) |
- | |
| 485 | {
|
- | |
| 486 | _addEventListener(window, "load", function () {
|
- | |
| 487 | if (typeof cmd3 == "undefined") |
- | |
| 488 | {
|
- | |
| 489 | cmd3 = jsx.dom.getElementById("cmd3");
|
- | |
| 490 | } |
- | |
| 491 | - | ||
| 492 | if (cmd3) |
- | |
| 493 | {
|
- | |
| 494 | cmd3.lastChild.tabIndex = "1"; |
- | |
| 495 | } |
- | |
| 496 | }); |
- | |
| 497 | - | ||
| 498 | var fullscreenText = "<?php echo tr("Fullscreen"); ?>"; |
- | |
| 499 | document.write(fullscreenText); |
- | |
| 500 | } |
- | |
| 501 | - | ||
| 502 | var oScreenDim; |
- | |
| 503 | var oAvailDim; |
- | |
| 504 | var oInnerDim; |
- | |
| 505 | var _gEBI = jsx.dom.getElementById; |
- | |
| 506 | var previousIsFullscreen; |
- | |
| 507 | var oldHandler; |
- | |
| 508 | - | ||
| 509 | _addEventListener(window, "resize", function () {
|
- | |
| 510 | <?php /* FIXME: Also update title attribute value */ ?> |
- | |
| 511 | if (typeof oScreenDim == "undefined") oScreenDim = _gEBI(ID_SCREEN_DIM); |
- | |
| 512 | if (oScreenDim) oScreenDim.innerHTML = dim.getScreenText(); |
- | |
| 513 | - | ||
| 514 | if (typeof oAvailDim == "undefined") oAvailDim = _gEBI(ID_AVAIL_DIM); |
- | |
| 515 | if (oAvailDim) oAvailDim.innerHTML = dim.getAvailText(); |
- | |
| 516 | - | ||
| 517 | if (typeof oInnerDim == "undefined") oInnerDim = _gEBI(ID_INNER_DIM); |
- | |
| 518 | if (oInnerDim) oInnerDim.innerHTML = dim.getInnerText(); |
- | |
| 519 | - | ||
| 520 | if (fullscreen.isSupportedBy(document.documentElement)) |
- | |
| 521 | {
|
- | |
| 522 | var nowIsFullscreen = fullscreen.isFullscreen(); |
- | |
| 523 | if (nowIsFullscreen != previousIsFullscreen) |
- | |
| 524 | {
|
- | |
| 525 | if (typeof cmd3 == "undefined") |
- | |
| 526 | {
|
- | |
| 527 | cmd3 = document.getElementById("cmd3");
|
- | |
| 528 | } |
- | |
| 529 | - | ||
| 530 | var textTarget = cmd3.lastChild.firstChild; |
- | |
| 531 | if (nowIsFullscreen) |
- | |
| 532 | {
|
- | |
| 533 | textTarget.innerHTML = "<?php echo tr("Window"); ?>"; |
- | |
| 534 | } |
- | |
| 535 | else |
- | |
| 536 | {
|
- | |
| 537 | textTarget.innerHTML = fullscreenText; |
- | |
| 538 | } |
- | |
| 539 | - | ||
| 540 | previousIsFullscreen = nowIsFullscreen; |
- | |
| 541 | } |
- | |
| 542 | } |
- | |
| 543 | }); |
- | |
| 544 | </script></span></div></li> |
473 | ><span class="text"></span></div></li> |
| 545 | <li id="cmd4"><script type="text/javascript"> |
- | |
| 546 | var LANG_KLINGON = "<?php echo $klingon; ?>"; |
- | |
| 547 | var LANG_VULCAN = "<?php echo $vulcan; ?>"; |
- | |
| 548 | lcars.language = "<?php echo $language; ?>"; |
- | |
| 549 | </script> |
- | |
| 550 | <script type="text/javascript" src="application/scripts/klingon.js"></script> |
- | |
| 551 | <script type="text/javascript" src="application/scripts/vulcan-media-script.js"></script> |
- | |
| 552 | <script type="text/javascript"> |
- | |
| 553 | function toggleScript (button) |
- | |
| 554 | {
|
- | |
| 555 | var is_alien_language = (lcars.language == LANG_KLINGON |
- | |
| 556 | || lcars.language == LANG_VULCAN); |
- | |
| 557 | - | ||
| 558 | if (media_script_used) |
- | |
| 559 | {
|
- | |
| 560 | klingonLatinScript(button); |
- | |
| 561 | latinScript(button); |
- | |
| 562 | - | ||
| 563 | if (!is_alien_language) |
- | |
| 564 | {
|
- | |
| 565 | button.firstChild.textContent = button.getAttribute("data-caption");
|
- | |
| 566 | } |
- | |
| 567 | } |
- | |
| 568 | else |
- | |
| 569 | {
|
- | |
| 570 | pIqaD(button); |
- | |
| 571 | mediaScript(button); |
- | |
| 572 | - | ||
| 573 | if (!is_alien_language) |
- | |
| 574 | {
|
- | |
| 575 | button.setAttribute("data-caption", button.firstChild.textContent);
|
- | |
| 576 | button.firstChild.textContent = "<?php echo tr('Latin'); ?>"; |
- | |
| 577 | } |
- | |
| 578 | } |
- | |
| 579 | } |
- | |
| 580 | </script> |
- | |
| 581 | <div class="button left right"<?php
|
474 | <li id="cmd4"><div class="button left right"<?php
|
| 582 | // $language_keys = array_keys($languages);
|
475 | // $language_keys = array_keys($languages);
|
| 583 | if (in_array($language, array(@$klingon, @$vulcan))) |
476 | if (in_array($language, array(@$klingon, @$vulcan))) |
| 584 | {
|
477 | {
|
| 585 | ?> tabindex="1" onclick="return toggleScript(this)"<?php |
478 | ?> tabindex="1" onclick="return toggleScript(this)"<?php |
| 586 | }
|
479 | }
|
| Line 593... | Line 486... | ||
| 593 | ><span class="text" lang="<?php echo $language; ?>"><?php |
486 | ><span class="text" lang="<?php echo $language; ?>"><?php |
| 594 | switch ($language) |
487 | switch ($language) |
| 595 | {
|
488 | {
|
| 596 | case $klingon: echo 'pIqaD'; break; |
489 | case $klingon: echo 'pIqaD'; break; |
| 597 | case $vulcan: echo 'Hitra-Zukitan'; break; |
490 | case $vulcan: echo 'Hitra-Zukitan'; break; |
| 598 | // default: echo tr('Original');
|
491 | // default: echo tr('Original');
|
| 599 | }
|
492 | }
|
| 600 | ?></span>
|
- | |
| 601 | </div></li> |
493 | ?></span></div></li>
|
| 602 | </ul> |
494 | </ul> |
| 603 | </div> |
495 | </div> |
| 604 | <div class="elbo-button"> |
496 | <div class="elbo-button"> |
| 605 | <span class="text" lang="<?php echo $language; ?>" |
497 | <span class="text" lang="<?php echo $language; ?>" |
| 606 | title="<?php echo tr("Date of last modification"); ?>" |
498 | title="<?php echo tr("Date of last modification"); ?>" |
| 607 | ><?php echo gmdate('Ym.d', $modi); ?></span> |
499 | ><?php echo gmdate('Ym.d', $modi); ?></span> |
| 608 | </div> |
500 | </div> |
| 609 | <div class="elbo" lang="<?php echo $language; ?>"> |
501 | <div class="elbo" lang="<?php echo $language; ?>"> |
| 610 | <span class="text"><abbr |
502 | <span class="text"><abbr |
| 611 | title="<?php echo tr('Library Computer Access and Retrieval System'); ?>" |
503 | title="<?php echo tr('Library Computer Access and Retrieval System'); ?>" |
| 612 | ><?php echo tr('LCARS'); ?></abbr> PE-22A</span> |
504 | ><?php echo tr('LCARS'); ?></abbr> <span lang="en">PE-</span>22<span style="text-transform: uppercase">a</span></span> |
| 613 | <div class="concave"> </div> |
505 | <div class="concave"> </div> |
| 614 | </div> |
506 | </div> |
| 615 | <div class="border"> |
507 | <div class="border"> |
| 616 | <div class="left"> </div> |
508 | <div class="left"> </div> |
| 617 | <div class="right"> </div> |
509 | <div class="right"> </div> |