Rev 231 | Go to most recent revision | Show entire file | Regard 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 595... | Line 488... | ||
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> |