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> |