Subversion Repositories LCARS

Rev

Rev 153 | Rev 159 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 153 Rev 158
Line 368... Line 368...
368
            <div class="analysis">
368
            <div class="analysis">
369
              <table>
369
              <table>
370
                <tr>
370
                <tr>
371
                  <th><?php echo tr('Display'); ?>:</th>
371
                  <th><?php echo tr('Display'); ?>:</th>
372
                  <td><script type="text/javascript">
372
                  <td><script type="text/javascript">
-
 
373
                    var _addEventListener = jsx.dom.addEventListener;
373
                    var runAsync = jsx.dom.timeout.runAsync;
374
                    var _runAsync = jsx.dom.timeout.runAsync;
374
                    var ID_SCREEN_DIM = 'screenDim';
375
                    var ID_SCREEN_DIM = 'screenDim';
375
                    var ID_AVAIL_DIM = 'availDim';
376
                    var ID_AVAIL_DIM = 'availDim';
376
                    var ID_INNER_DIM = 'innerDim';
377
                    var ID_INNER_DIM = 'innerDim';
-
 
378
                    var TEXT_NOT_AVAILABLE = "<?php echo tr('N/A'); ?>";
377
                   
379
                   
378
                    var dim = (function () {
380
                    var dim = (function () {
379
                      var screenInfo = jsx.dom.window.screenInfo;
381
                      var screenInfo = jsx.dom.window.screenInfo;
380
382
381
                      return {
383
                      return {
Line 402... Line 404...
402
                        }
404
                        }
403
                      };
405
                      };
404
                    }());
406
                    }());
405
                   
407
                   
406
                    (function () {
408
                    (function () {
407
-
 
408
                      var screenDimText = dim.getScreenText();
409
                      var screenDimText = dim.getScreenText();
409
                      var availDimText = dim.getAvailText();
410
                      var availDimText = dim.getAvailText();
410
                      var innerDimText = dim.getInnerText();
411
                      var innerDimText = dim.getInnerText();
411
                      var colorDepthText = dim.getColorDepthText();
412
                      var colorDepthText = dim.getColorDepthText();
412
                      var displayInfo = (screenDimText || availDimText || innerDimText || colorDepthText)
413
                      var displayInfo = (screenDimText || availDimText || innerDimText || colorDepthText)
413
                        ?   (screenDimText ? '<span id="' + ID_SCREEN_DIM + '">' + screenDimText + '<\/span> <?php echo tr('pixels'); ?>' : "")
414
                        ?   (screenDimText ? '<span id="' + ID_SCREEN_DIM + '">' + screenDimText + '<\/span> <?php echo tr('pixels'); ?>' : "")
414
                          + (availDimText ? ' (<span id="' + ID_AVAIL_DIM + '">' + availDimText + "<\/span>" : "")
415
                          + (availDimText ? ' (<span id="' + ID_AVAIL_DIM + '">' + availDimText + "<\/span>" : "")
415
                          + (innerDimText ? '<span id="' + ID_INNER_DIM + '">' + innerDimText + "<\/span>)" : "")
416
                          + (innerDimText ? '<span id="' + ID_INNER_DIM + '">' + innerDimText + "<\/span>)" : "")
416
                          + (colorDepthText ? ' ×&nbsp;<span id="colorDepth">' + colorDepthText + "<\/span>" : "")
417
                          + (colorDepthText ? ' ×&nbsp;<span id="colorDepth">' + colorDepthText + "<\/span>" : "")
417
                        : "<?php echo tr('N/A'); ?>";
418
                        : TEXT_NOT_AVAILABLE;
418
 
419
 
419
                      /* FIXME: Convert HTML to text, update whole title text */
420
                      /* FIXME: Convert HTML to text, update whole title text */
420
                      document.write('<span>' + displayInfo + '<\/span>');
421
                      document.write('<span>' + displayInfo + '<\/span>');
421
422
422
                      var oColorDepth;
423
                      var oColorDepth;
423
                      runAsync(function () {
424
                      var tColor = _runAsync(function () {
424
                        if (typeof oColorDepth == "undefined")
425
                        if (typeof oColorDepth == "undefined")
425
                        {
426
                        {
426
                          oColorDepth = document.getElementById("colorDepth");
427
                          oColorDepth = document.getElementById("colorDepth");
427
                        }
428
                        }
428
 
429
 
429
                        if (oColorDepth)
430
                        if (oColorDepth)
430
                        {
431
                        {
431
                          var colorDepthText = dim.getColorDepthText();
432
                          var colorDepthText = dim.getColorDepthText();
432
                          /* FIXME: Also update title attribute value */
433
                          <?php /* FIXME: Also update title attribute value */ ?>
433
                          if (oColorDepth.innerHTML != colorDepthText)
434
                          if (oColorDepth.innerHTML != colorDepthText)
434
                          {
435
                          {
435
                            oColorDepth.innerHTML = colorDepthText;
436
                            oColorDepth.innerHTML = colorDepthText;
436
                          }
437
                          }
437
                        }
438
                        }
438
439
439
                        this.run();
440
                        tColor = this.run();
440
                      }, 1000);
441
                      }, 1000);
-
 
442
-
 
443
                      _addEventListener(document, "unload", function () {
-
 
444
                        tColor.unset();
-
 
445
                        tColor = null;
-
 
446
                      });
441
                    }());
447
                    }());
442
                  </script><noscript><?php echo tr('N/A'); ?></noscript></td>
448
                  </script><noscript><?php echo tr('N/A'); ?></noscript></td>
443
                </tr>
449
                </tr>
444
                <tr>
450
                <tr>
445
                  <th><?php echo tr('User Agent'); ?>:</th>
451
                  <th><?php echo tr('User Agent'); ?>:</th>
Line 447... Line 453...
447
                    (function () {
453
                    (function () {
448
                      var ua = navigator.userAgent;
454
                      var ua = navigator.userAgent;
449
                      document.write('<span id="ua" title="' + ua + '">' + ua + '<\/span>');
455
                      document.write('<span id="ua" title="' + ua + '">' + ua + '<\/span>');
450
456
451
                      var oUA;
457
                      var oUA;
452
                      runAsync(function () {
458
                      var tUA = _runAsync(function () {
453
                        if (typeof oUA == "undefined")
459
                        if (typeof oUA == "undefined")
454
                        {
460
                        {
455
                          oUA = document.getElementById("ua");
461
                          oUA = document.getElementById("ua");
456
                        }
462
                        }
457
                       
463
                       
Line 462... Line 468...
462
                          if (oUA.innerHTML != ua)
468
                          if (oUA.innerHTML != ua)
463
                          {
469
                          {
464
                            oUA.innerHTML = ua;
470
                            oUA.innerHTML = ua;
465
                          }
471
                          }
466
472
467
                          /* Converts CREs */
473
                          <?php /* Converts CREs */ ?>
468
                          var oUAhtml = oUA.innerHTML
474
                          var oUAhtml = oUA.innerHTML
469
                          if (oUA.title != oUAhtml)
475
                          if (oUA.title != oUAhtml)
470
                          {
476
                          {
471
                            oUA.title = oUAhtml;
477
                            oUA.title = oUAhtml;
472
                          }
478
                          }
473
                        }
479
                        }
474
480
475
                        this.run();
481
                        tUA = this.run();
476
                      }, 1000);
482
                      }, 1000);
-
 
483
-
 
484
                      _addEventListener(document, "unload", function () {
-
 
485
                        tUA.unset();
-
 
486
                        tUA = null;
-
 
487
                      });
477
                    }());
488
                    }());
478
                  </script><noscript><?php echo tr('N/A'); ?></noscript></td>
489
                  </script><noscript><?php echo tr('N/A'); ?></noscript></td>
479
                </tr>
490
                </tr>
480
                <tr>
491
                <tr>
481
                  <th><?php echo tr('Features'); ?>:</th>
492
                  <th><?php echo tr('Features'); ?>:</th>
482
                  <td><script type="text/javascript">
493
                  <td><script type="text/javascript">
483
                    var fullscreen = jsx.dom.window.fullscreen;
494
                    var fullscreen = jsx.dom.window.fullscreen;
484
                 
495
-
 
496
                    jsx.dom.geolocation = {
-
 
497
                      getText: function (position) {
-
 
498
                        var coords = position.coords;
-
 
499
                        var latitude = coords.latitude;
-
 
500
                        var longitude = coords.longitude;
-
 
501
                        var altitude = coords.altitude;
-
 
502
                        var altitudeAccuracy = coords.altitudeAccuracy;
-
 
503
                        var speed = coords.speed;
-
 
504
                        var heading = coords.heading;
-
 
505
                       
-
 
506
                        return [
-
 
507
                          "<?php echo tr('Latitude:'); ?> " + (latitude != null ? latitude + "°" : TEXT_NOT_AVAILABLE),
-
 
508
                          "<?php echo tr('Longitude:'); ?> " + (longitude != null ? longitude + "°" : TEXT_NOT_AVAILABLE),
-
 
509
                          "<?php echo tr('Lat/Lng Accuracy:'); ?> " + coords.accuracy + " m",
-
 
510
                          "<?php echo tr('Altitude:'); ?> " + (altitude != null ? altitude + " m": TEXT_NOT_AVAILABLE),
-
 
511
                          "<?php echo tr('Alt. Accuracy:'); ?> " + (altitudeAccuracy != null ? altitudeAccuracy + " m": TEXT_NOT_AVAILABLE),
-
 
512
                          "<?php echo tr('Speed:'); ?> " + (speed != null && !isNaN(speed) ? speed + " m∕s": TEXT_NOT_AVAILABLE),
-
 
513
                          "<?php echo tr('Heading:'); ?> " + (heading != null && !isNaN(heading) ? heading + "°" : TEXT_NOT_AVAILABLE)
-
 
514
                        ].join("\n");
-
 
515
                      },
-
 
516
-
 
517
                      show: function (position) {
-
 
518
                        window.alert("<?php echo tr('Your current coordinates on Terra'); ?>\n\n" + this.getText(position));
-
 
519
                      }
-
 
520
                    };
-
 
521
                   
485
                    (function () {
522
                    (function () {
486
                      function getFeatures ()
523
                      function getFeatures ()
487
                      {
524
                      {
488
                        var features = [];
525
                        var features = [];
489
                        if (typeof document.cookie != "undefined")
526
                        if (typeof document.cookie != "undefined")
Line 491... Line 528...
491
                          var cookiesText = "<?php echo tr('Cookies'); ?>"
528
                          var cookiesText = "<?php echo tr('Cookies'); ?>"
492
                          if (navigator.cookieEnabled)
529
                          if (navigator.cookieEnabled)
493
                          {
530
                          {
494
                            if (document.cookie)
531
                            if (document.cookie)
495
                            {
532
                            {
-
 
533
                              var cookies = document.cookie;
-
 
534
                              cookies = cookies.split(/\s*;\s*/);
496
                              features.push(cookiesText);
535
                              features.push('<a href="#" title="'
-
 
536
                                + cookies.join("&#13;&#10;")
-
 
537
                                + '"'
-
 
538
                                + ' onclick="window.alert(\'<?php echo tr('Cookies for'); ?> ' + document.domain + '\\n\\n' + cookies.join("\\n") + '\'); return false">' + cookiesText + '<\/a>');
497
                            }
539
                            }
498
                            else
540
                            else
499
                            {
541
                            {
500
                              features.push('<span class="unavailable"'
542
                              features.push('<span class="unavailable"'
501
                                + ' title="<?php echo tr('Cookies supported, but no data for this site'); ?>"'
543
                                + ' title="<?php echo tr('Cookies supported, but no data for this site'); ?>"'
Line 520... Line 562...
520
                          features.push("<?php echo tr('Gamepad'); ?>");
562
                          features.push("<?php echo tr('Gamepad'); ?>");
521
                        }
563
                        }
522
                       
564
                       
523
                        if (navigator.geolocation)
565
                        if (navigator.geolocation)
524
                        {
566
                        {
525
                          features.push("<?php echo tr('Geolocation'); ?>");
567
                          features.push('<a href="#" title="<?php echo tr('Get location'); ?>"'
-
 
568
                            + ' onclick="navigator.geolocation.getCurrentPosition('
-
 
569
                            + 'function (position) { jsx.dom.geolocation.show(position); }); return false"'
-
 
570
                            + '><?php echo tr('Geolocation'); ?><\/a>');
526
                        }
571
                        }
527
572
528
                        if (typeof navigator.javaEnabled != "undefined" && navigator.javaEnabled())
573
                        if (typeof navigator.javaEnabled != "undefined" && navigator.javaEnabled())
529
                        {
574
                        {
530
                          features.push("Java");
575
                          features.push("Java");
Line 558... Line 603...
558
                        return features.join(" &#8226; ");
603
                        return features.join(" &#8226; ");
559
                      }
604
                      }
560
605
561
                      function stripTags (s)
606
                      function stripTags (s)
562
                      {
607
                      {
563
                        return s.replace(/<[^>]+>/g, "")
608
                        return s.replace(/<[^>]+>/g, "");
564
                      }
609
                      }
565
                     
610
                     
566
                      var sFeatures = getFeatures();
611
                      var sFeatures = getFeatures();
567
                      document.write('<span id="features" title="'
612
                      document.write('<span id="features" title="' + stripTags(sFeatures) + '">' + sFeatures + '<\/span>');
568
                        + stripTags(sFeatures) + '">' + sFeatures
-
 
569
                        + '<\/span>');
-
 
570
613
571
                      var oFeatures;
614
                      var oFeatures;
572
                      var oFeaturesHtml;
615
                      var oFeaturesHtml;
573
                      var tFeatures = runAsync(function () {
616
                      var tFeatures = _runAsync(function () {
574
                        if (typeof oFeatures == "undefined")
617
                        if (typeof oFeatures == "undefined")
575
                        {
618
                        {
576
                          oFeatures = document.getElementById("features");
619
                          oFeatures = document.getElementById("features");
577
                        }
620
                        }
578
621
Line 606... Line 649...
606
649
607
                        tFeatures = this.run();
650
                        tFeatures = this.run();
608
                      }, 1000);
651
                      }, 1000);
609
                    }());
652
                    }());
610
653
-
 
654
                    _addEventListener(document, "unload", function () {
-
 
655
                      tFeatures.unset();
-
 
656
                      tFeatures = null;
-
 
657
                    });
-
 
658
611
                    var windowText = "<?php echo tr("Window"); ?>";
659
                    var windowText = "<?php echo tr("Window"); ?>";
612
                  </script><noscript><?php echo tr('N/A'); ?></noscript></td>
660
                  </script><noscript><?php echo tr('N/A'); ?></noscript></td>
613
                </tr>
661
                </tr>
614
              </table>
662
              </table>
615
            </div>
663
            </div>
Line 638... Line 686...
638
                   onkeyup="if (event.keyCode == 13) { this.onclick(); }"
686
                   onkeyup="if (event.keyCode == 13) { this.onclick(); }"
639
                   ><span class="text"><script type="text/javascript">
687
                   ><span class="text"><script type="text/javascript">
640
                     var cmd3;
688
                     var cmd3;
641
                     if (fullscreen.isSupportedBy(document.documentElement))
689
                     if (fullscreen.isSupportedBy(document.documentElement))
642
                     {
690
                     {
643
                       jsx.dom.addEventListener(window, "load", function () {
691
                       _addEventListener(window, "load", function () {
644
                         if (typeof cmd3 == "undefined")
692
                         if (typeof cmd3 == "undefined")
645
                         {
693
                         {
646
                           cmd3 = jsx.dom.getElementById("cmd3");
694
                           cmd3 = jsx.dom.getElementById("cmd3");
647
                         }
695
                         }
648
                         
696
                         
Line 661... Line 709...
661
                     var oInnerDim;
709
                     var oInnerDim;
662
                     var _gEBI = jsx.dom.getElementById;
710
                     var _gEBI = jsx.dom.getElementById;
663
                     var previousIsFullscreen;
711
                     var previousIsFullscreen;
664
                     var oldHandler;
712
                     var oldHandler;
665
                     
713
                     
666
                     jsx.dom.addEventListener(window, "resize", function () {
714
                     _addEventListener(window, "resize", function () {
667
                       /* FIXME: Also update title attribute value */
715
                       <?php /* FIXME: Also update title attribute value */ ?>
668
                       if (typeof oScreenDim == "undefined") oScreenDim = _gEBI(ID_SCREEN_DIM);
716
                       if (typeof oScreenDim == "undefined") oScreenDim = _gEBI(ID_SCREEN_DIM);
669
                       if (oScreenDim) oScreenDim.innerHTML = dim.getScreenText();
717
                       if (oScreenDim) oScreenDim.innerHTML = dim.getScreenText();
670
718
671
                       if (typeof oAvailDim == "undefined") oAvailDim = _gEBI(ID_AVAIL_DIM);
719
                       if (typeof oAvailDim == "undefined") oAvailDim = _gEBI(ID_AVAIL_DIM);
672
                       if (oAvailDim) oAvailDim.innerHTML = dim.getAvailText();
720
                       if (oAvailDim) oAvailDim.innerHTML = dim.getAvailText();
Line 734... Line 782...
734
          </div>
782
          </div>
735
        </div>
783
        </div>
736
      </div>
784
      </div>
737
    </div>
785
    </div>
738
  </body>
786
  </body>
739
</html>
787
</html>
740
 
788