Subversion Repositories LCARS

Rev

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

Rev 165 Rev 166
Line 56... Line 56...
56
          content="<?php echo tr("All rights reserved."); ?> <?php echo tr("The author is not responsible for the availability and the content of websites referred by this site, and not responsible for the availability and the content of websites referred by those sites. Whereever outsourced material is used, copyright or trademark infringement is not intended. Third parties who claim copyrights or trademarks used herein are asked to send an informal email to webmaster@PointedEars.de for immediate removal or modification of the respective material on the website instead of reminding the author of usage of this material. Thank you."); ?>">
56
          content="<?php echo tr("All rights reserved."); ?> <?php echo tr("The author is not responsible for the availability and the content of websites referred by this site, and not responsible for the availability and the content of websites referred by those sites. Whereever outsourced material is used, copyright or trademark infringement is not intended. Third parties who claim copyrights or trademarks used herein are asked to send an informal email to webmaster@PointedEars.de for immediate removal or modification of the respective material on the website instead of reminding the author of usage of this material. Thank you."); ?>">
57
57
58
<?php /*
58
<?php /*
59
    <!-- <link rel="stylesheet" type="text/css" href="styles/lcars.css"> -->
59
    <!-- <link rel="stylesheet" type="text/css" href="styles/lcars.css"> -->
60
    <!-- <link rel="stylesheet" type="text/css" href="styles/lcars21.css"> -->
60
    <!-- <link rel="stylesheet" type="text/css" href="styles/lcars21.css"> -->
61
    <!-- No optimization here: IE 9 in non-Compatibility Mode sends "Accept: text/css",
61
    <!-- No optimization here: Resource Builder does not handle URI parameters -->
62
         Apache responds with 406:
-
 
63
         http://blog.s9y.org/archives/227-ie9-has-trouble-with-css-content-types.html -->
-
 
64
*/ ?>
62
*/ ?>
65
    <link rel="stylesheet" type="text/css" href="styles/lcars-basic">
63
    <link rel="stylesheet" type="text/css" href="styles/lcars-basic">
66
<?php
64
<?php
67
  $isLocal = ($_SERVER['HTTP_HOST'] === 'localhost');
65
  $isLocal = ($_SERVER['HTTP_HOST'] === 'localhost');
68
  $printable = (isset($_GET['printable']) && $_GET['printable'] === '1');
66
  $printable = (isset($_GET['printable']) && $_GET['printable'] === '1');
Line 161... Line 159...
161
        | <a href="leisure/" target="_top"
159
        | <a href="leisure/" target="_top"
162
            >Freizeit-Datenbank</a>
160
            >Freizeit-Datenbank</a>
163
        | <a href="mozilla/" target="_top">Mozilla</a>
161
        | <a href="mozilla/" target="_top">Mozilla</a>
164
        | <a href="poetry/" target="_top">Poesie</a>
162
        | <a href="poetry/" target="_top">Poesie</a>
165
  */
163
  */
166
       
164
167
  /*
165
  /*
168
        | [<abbr title="nur in englischer Sprache verf&uuml;gbar"
166
        | [<abbr title="nur in englischer Sprache verf&uuml;gbar"
169
                 >en</abbr>]
167
                 >en</abbr>]
170
        | <a href="selfhtml.de/" target="_top">SELFHTML.DE</a>
168
        | <a href="selfhtml.de/" target="_top">SELFHTML.DE</a>
171
  */
169
  */
Line 264... Line 262...
264
          <div id="bow-bottom">
262
          <div id="bow-bottom">
265
            <div class="concave">&nbsp;</div>
263
            <div class="concave">&nbsp;</div>
266
            <div class="spacer">&nbsp;</div>
264
            <div class="spacer">&nbsp;</div>
267
        </div>
265
        </div>
268
        </div>
266
        </div>
269
       
267
270
        <div class="menu-container">
268
        <div class="menu-container">
271
          <nav class="menu">
269
          <nav class="menu">
272
            <ul style="padding-top: 1em">
270
            <ul style="padding-top: 1em">
273
            <?php foreach ($languages as $key => $name): ?>
271
            <?php foreach ($languages as $key => $name): ?>
274
              <li><a href="index.<?php echo $key; ?>?ani=0"
272
              <li><a href="index.<?php echo $key; ?>?ani=0"
Line 333... Line 331...
333
                + " hinzuzufügen";
331
                + " hinzuzufügen";
334
              var sOtherAnchorTitle =
332
              var sOtherAnchorTitle =
335
                  "Klicken Sie hier mit der rechten Maustaste, um PointedEars' Website"
333
                  "Klicken Sie hier mit der rechten Maustaste, um PointedEars' Website"
336
                + " Ihren Lesezeichen hinzuzufügen";
334
                + " Ihren Lesezeichen hinzuzufügen";
337
              var sFavoriteTitle = "PointedEars' Website";
335
              var sFavoriteTitle = "PointedEars' Website";
338
       
336

339
              if (jsx.object.isHostMethod(jsx.global.window, "external", "AddFavorite"))
337
              if (jsx.object.isHostMethod(jsx.global.window, "external", "AddFavorite"))
340
              {
338
              {
341
                document.write(
339
                document.write(
342
                    '<div style="position: relative; margin-top: 1em; border-bottom: 0.2em solid transparent">'
340
                    '<div style="position: relative; margin-top: 1em; border-bottom: 0.2em solid transparent">'
343
                  + '  <div class="bow" style="width: 8em; height: 1em">&nbsp;<\/div>'
341
                  + '  <div class="bow" style="width: 8em; height: 1em">&nbsp;<\/div>'
Line 358... Line 356...
358
        </div>
356
        </div>
359
      </div>
357
      </div>
360
      <div id="connectors">
358
      <div id="connectors">
361
        <div class="bow top left">&nbsp;</div>
359
        <div class="bow top left">&nbsp;</div>
362
        <div class="bow top right">&nbsp;</div>
360
        <div class="bow top right">&nbsp;</div>
363
       
361
364
        <div class="bow mid left">&nbsp;</div>
362
        <div class="bow mid left">&nbsp;</div>
365
        <div class="bow mid right">&nbsp;</div>
363
        <div class="bow mid right">&nbsp;</div>
366
      </div>
364
      </div>
367
      <div class="multi-display">
365
      <div class="multi-display">
368
        <div class="upper">
366
        <div class="upper">
Line 377... Line 375...
377
                    var _runAsync = jsx.dom.timeout.runAsync;
375
                    var _runAsync = jsx.dom.timeout.runAsync;
378
                    var ID_SCREEN_DIM = 'screenDim';
376
                    var ID_SCREEN_DIM = 'screenDim';
379
                    var ID_AVAIL_DIM = 'availDim';
377
                    var ID_AVAIL_DIM = 'availDim';
380
                    var ID_INNER_DIM = 'innerDim';
378
                    var ID_INNER_DIM = 'innerDim';
381
                    var TEXT_NOT_AVAILABLE = "<?php echo tr('N/A'); ?>";
379
                    var TEXT_NOT_AVAILABLE = "<?php echo tr('N/A'); ?>";
382
                   
380
383
                    var dim = (function () {
381
                    var dim = (function () {
384
                      var screenInfo = jsx.dom.window.screenInfo;
382
                      var screenInfo = jsx.dom.window.screenInfo;
385
383
386
                      return {
384
                      return {
387
                        getScreenText: function () {
385
                        getScreenText: function () {
388
                          var screenDim = screenInfo.getDim();
386
                          var screenDim = screenInfo.getDim();
389
                          return screenDim.width + "×" + screenDim.height;
387
                          return screenDim.width + "×" + screenDim.height;
390
                        },
388
                        },
391
 
389
392
                        getAvailText: function () {
390
                        getAvailText: function () {
393
                          var availDim = screenInfo.getAvailDim();
391
                          var availDim = screenInfo.getAvailDim();
394
                          return availDim.width + "×" + availDim.height + " <?php echo tr('available'); ?>";
392
                          return availDim.width + "×" + availDim.height + " <?php echo tr('available'); ?>";
395
                        },
393
                        },
396
 
394
397
                        getInnerText: function () {
395
                        getInnerText: function () {
398
                          var innerDim = screenInfo.getInnerDim();
396
                          var innerDim = screenInfo.getInnerDim();
399
                          return ", " + innerDim.width + "×" + innerDim.height + " <?php echo tr('used'); ?>";
397
                          return ", " + innerDim.width + "×" + innerDim.height + " <?php echo tr('used'); ?>";
400
                        },
398
                        },
401
 
399
402
                        getColorDepthText: function () {
400
                        getColorDepthText: function () {
403
                          var colorDepth = screenInfo.getColorDepth();
401
                          var colorDepth = screenInfo.getColorDepth();
404
                          return colorDepth
402
                          return colorDepth
405
                            ? '2<sup>' + colorDepth + "<\/sup> <?php echo tr('colors'); ?>"
403
                            ? '2<sup>' + colorDepth + "<\/sup> <?php echo tr('colors'); ?>"
406
                            : "";
404
                            : "";
407
                        }
405
                        }
408
                      };
406
                      };
409
                    }());
407
                    }());
410
                   
408
411
                    (function () {
409
                    (function () {
412
                      var screenDimText = dim.getScreenText();
410
                      var screenDimText = dim.getScreenText();
413
                      var availDimText = dim.getAvailText();
411
                      var availDimText = dim.getAvailText();
414
                      var innerDimText = dim.getInnerText();
412
                      var innerDimText = dim.getInnerText();
415
                      var colorDepthText = dim.getColorDepthText();
413
                      var colorDepthText = dim.getColorDepthText();
Line 417... Line 415...
417
                        ?   (screenDimText ? '<span id="' + ID_SCREEN_DIM + '">' + screenDimText + '<\/span> <?php echo tr('pixels'); ?>' : "")
415
                        ?   (screenDimText ? '<span id="' + ID_SCREEN_DIM + '">' + screenDimText + '<\/span> <?php echo tr('pixels'); ?>' : "")
418
                          + (availDimText ? ' (<span id="' + ID_AVAIL_DIM + '">' + availDimText + "<\/span>" : "")
416
                          + (availDimText ? ' (<span id="' + ID_AVAIL_DIM + '">' + availDimText + "<\/span>" : "")
419
                          + (innerDimText ? '<span id="' + ID_INNER_DIM + '">' + innerDimText + "<\/span>)" : "")
417
                          + (innerDimText ? '<span id="' + ID_INNER_DIM + '">' + innerDimText + "<\/span>)" : "")
420
                          + (colorDepthText ? ' ×&nbsp;<span id="colorDepth">' + colorDepthText + "<\/span>" : "")
418
                          + (colorDepthText ? ' ×&nbsp;<span id="colorDepth">' + colorDepthText + "<\/span>" : "")
421
                        : TEXT_NOT_AVAILABLE;
419
                        : TEXT_NOT_AVAILABLE;
422
 
420
423
                      /* FIXME: Convert HTML to text, update whole title text */
421
                      /* FIXME: Convert HTML to text, update whole title text */
424
                      document.write('<span>' + displayInfo + '<\/span>');
422
                      document.write('<span>' + displayInfo + '<\/span>');
425
423
426
                      var oColorDepth;
424
                      var oColorDepth;
427
                      var tColor = _runAsync(function () {
425
                      var tColor = _runAsync(function () {
428
                        if (typeof oColorDepth == "undefined")
426
                        if (typeof oColorDepth == "undefined")
429
                        {
427
                        {
430
                          oColorDepth = document.getElementById("colorDepth");
428
                          oColorDepth = document.getElementById("colorDepth");
431
                        }
429
                        }
432
 
430
433
                        if (oColorDepth)
431
                        if (oColorDepth)
434
                        {
432
                        {
435
                          var colorDepthText = dim.getColorDepthText();
433
                          var colorDepthText = dim.getColorDepthText();
436
                          <?php /* FIXME: Also update title attribute value */ ?>
434
                          <?php /* FIXME: Also update title attribute value */ ?>
437
                          if (oColorDepth.innerHTML != colorDepthText)
435
                          if (oColorDepth.innerHTML != colorDepthText)
Line 461... Line 459...
461
                      var tUA = _runAsync(function () {
459
                      var tUA = _runAsync(function () {
462
                        if (typeof oUA == "undefined")
460
                        if (typeof oUA == "undefined")
463
                        {
461
                        {
464
                          oUA = document.getElementById("ua");
462
                          oUA = document.getElementById("ua");
465
                        }
463
                        }
466
                       
464
467
                        if (oUA)
465
                        if (oUA)
468
                        {
466
                        {
469
                          var ua = navigator.userAgent;
467
                          var ua = navigator.userAgent;
470
468
471
                          if (oUA.innerHTML != ua)
469
                          if (oUA.innerHTML != ua)
Line 503... Line 501...
503
                        var longitude = coords.longitude;
501
                        var longitude = coords.longitude;
504
                        var altitude = coords.altitude;
502
                        var altitude = coords.altitude;
505
                        var altitudeAccuracy = coords.altitudeAccuracy;
503
                        var altitudeAccuracy = coords.altitudeAccuracy;
506
                        var speed = coords.speed;
504
                        var speed = coords.speed;
507
                        var heading = coords.heading;
505
                        var heading = coords.heading;
508
                       
506
509
                        return [
507
                        return [
510
                          "<?php echo tr('Latitude:'); ?> " + (latitude != null ? latitude + "°" : TEXT_NOT_AVAILABLE),
508
                          "<?php echo tr('Latitude:'); ?> " + (latitude != null ? latitude + "°" : TEXT_NOT_AVAILABLE),
511
                          "<?php echo tr('Longitude:'); ?> " + (longitude != null ? longitude + "°" : TEXT_NOT_AVAILABLE),
509
                          "<?php echo tr('Longitude:'); ?> " + (longitude != null ? longitude + "°" : TEXT_NOT_AVAILABLE),
512
                          "<?php echo tr('Lat/Lng Accuracy:'); ?> " + coords.accuracy + " m",
510
                          "<?php echo tr('Lat/Lng Accuracy:'); ?> " + coords.accuracy + " m",
513
                          "<?php echo tr('Altitude:'); ?> " + (altitude != null ? altitude + " m": TEXT_NOT_AVAILABLE),
511
                          "<?php echo tr('Altitude:'); ?> " + (altitude != null ? altitude + " m": TEXT_NOT_AVAILABLE),
Line 519... Line 517...
519
517
520
                      show: function (position) {
518
                      show: function (position) {
521
                        window.alert("<?php echo tr('Your current coordinates on Terra'); ?>\n\n" + this.getText(position));
519
                        window.alert("<?php echo tr('Your current coordinates on Terra'); ?>\n\n" + this.getText(position));
522
                      }
520
                      }
523
                    };
521
                    };
524
                   
522
525
                    (function () {
523
                    (function () {
526
                      function getFeatures ()
524
                      function getFeatures ()
527
                      {
525
                      {
528
                        var features = [];
526
                        var features = [];
529
                        if (typeof document.cookie != "undefined")
527
                        if (typeof document.cookie != "undefined")
Line 557... Line 555...
557
555
558
                        if (fullscreen.isSupportedBy(document.documentElement))
556
                        if (fullscreen.isSupportedBy(document.documentElement))
559
                        {
557
                        {
560
                          features.push("<?php echo tr('Fullscreen'); ?>");
558
                          features.push("<?php echo tr('Fullscreen'); ?>");
561
                        }
559
                        }
562
                       
560
563
                        if (navigator.webkitGetGamepads && navigator.webkitGetGamepads().length)
561
                        if (navigator.webkitGetGamepads && navigator.webkitGetGamepads().length)
564
                        {
562
                        {
565
                          features.push("<?php echo tr('Gamepad'); ?>");
563
                          features.push("<?php echo tr('Gamepad'); ?>");
566
                        }
564
                        }
567
                       
565
568
                        if (navigator.geolocation)
566
                        if (navigator.geolocation)
569
                        {
567
                        {
570
                          features.push('<a href="#" title="<?php echo tr('Get location'); ?>"'
568
                          features.push('<a href="#" title="<?php echo tr('Get location'); ?>"'
571
                            + ' onclick="navigator.geolocation.getCurrentPosition('
569
                            + ' onclick="navigator.geolocation.getCurrentPosition('
572
                            + 'function (position) { jsx.dom.geolocation.show(position); }); return false"'
570
                            + 'function (position) { jsx.dom.geolocation.show(position); }); return false"'
Line 575... Line 573...
575
573
576
                        if (typeof navigator.javaEnabled != "undefined" && navigator.javaEnabled())
574
                        if (typeof navigator.javaEnabled != "undefined" && navigator.javaEnabled())
577
                        {
575
                        {
578
                          features.push("Java");
576
                          features.push("Java");
579
                        }
577
                        }
580
                       
578
581
                        var storage = jsx.dom.storage;
579
                        var storage = jsx.dom.storage;
582
                        if (storage.localStorage.isSupported()) features.push("Local Storage");
580
                        if (storage.localStorage.isSupported()) features.push("Local Storage");
583
581
584
                        if (navigator.plugins)
582
                        if (navigator.plugins)
585
                        {
583
                        {
Line 608... Line 606...
608
606
609
                      function stripTags (s)
607
                      function stripTags (s)
610
                      {
608
                      {
611
                        return s.replace(/<[^>]+>/g, "");
609
                        return s.replace(/<[^>]+>/g, "");
612
                      }
610
                      }
613
                     
611
614
                      var sFeatures = getFeatures();
612
                      var sFeatures = getFeatures();
615
                      document.write('<span id="features" title="' + stripTags(sFeatures) + '">' + sFeatures + '<\/span>');
613
                      document.write('<span id="features" title="' + stripTags(sFeatures) + '">' + sFeatures + '<\/span>');
616
614
617
                      var oFeatures;
615
                      var oFeatures;
618
                      var oFeaturesHtml;
616
                      var oFeaturesHtml;
Line 628... Line 626...
628
626
629
                          if (!oFeaturesHtml)
627
                          if (!oFeaturesHtml)
630
                          {
628
                          {
631
                            oFeaturesHtml = document.createElement("span");
629
                            oFeaturesHtml = document.createElement("span");
632
                          }
630
                          }
633
                         
631
634
                          if (oFeaturesHtml)
632
                          if (oFeaturesHtml)
635
                          {
633
                          {
636
                            oFeaturesHtml.innerHTML = sNewFeatures;
634
                            oFeaturesHtml.innerHTML = sNewFeatures;
637
                            sNewFeatures = oFeaturesHtml.innerHTML;
635
                            sNewFeatures = oFeaturesHtml.innerHTML;
638
                          }
636
                          }
639
                         
637
640
                          if (oFeatures.innerHTML != sNewFeatures)
638
                          if (oFeatures.innerHTML != sNewFeatures)
641
                          {
639
                          {
642
                            oFeatures.innerHTML = sNewFeatures;
640
                            oFeatures.innerHTML = sNewFeatures;
643
                          }
641
                          }
644
642
Line 694... Line 692...
694
                       _addEventListener(window, "load", function () {
692
                       _addEventListener(window, "load", function () {
695
                         if (typeof cmd3 == "undefined")
693
                         if (typeof cmd3 == "undefined")
696
                         {
694
                         {
697
                           cmd3 = jsx.dom.getElementById("cmd3");
695
                           cmd3 = jsx.dom.getElementById("cmd3");
698
                         }
696
                         }
699
                         
697
700
                         if (cmd3)
698
                         if (cmd3)
701
                         {
699
                         {
702
                           cmd3.firstChild.tabIndex = "1";
700
                           cmd3.firstChild.tabIndex = "1";
703
                         }
701
                         }
704
                       });
702
                       });
705
703
706
                       var fullscreenText = "<?php echo tr("Fullscreen"); ?>";
704
                       var fullscreenText = "<?php echo tr("Fullscreen"); ?>";
707
                       document.write(fullscreenText);
705
                       document.write(fullscreenText);
708
                     }
706
                     }
709
                     
707
710
                     var oScreenDim;
708
                     var oScreenDim;
711
                     var oAvailDim;
709
                     var oAvailDim;
712
                     var oInnerDim;
710
                     var oInnerDim;
713
                     var _gEBI = jsx.dom.getElementById;
711
                     var _gEBI = jsx.dom.getElementById;
714
                     var previousIsFullscreen;
712
                     var previousIsFullscreen;
715
                     var oldHandler;
713
                     var oldHandler;
716
                     
714
717
                     _addEventListener(window, "resize", function () {
715
                     _addEventListener(window, "resize", function () {
718
                       <?php /* FIXME: Also update title attribute value */ ?>
716
                       <?php /* FIXME: Also update title attribute value */ ?>
719
                       if (typeof oScreenDim == "undefined") oScreenDim = _gEBI(ID_SCREEN_DIM);
717
                       if (typeof oScreenDim == "undefined") oScreenDim = _gEBI(ID_SCREEN_DIM);
720
                       if (oScreenDim) oScreenDim.innerHTML = dim.getScreenText();
718
                       if (oScreenDim) oScreenDim.innerHTML = dim.getScreenText();
721
719
722
                       if (typeof oAvailDim == "undefined") oAvailDim = _gEBI(ID_AVAIL_DIM);
720
                       if (typeof oAvailDim == "undefined") oAvailDim = _gEBI(ID_AVAIL_DIM);
723
                       if (oAvailDim) oAvailDim.innerHTML = dim.getAvailText();
721
                       if (oAvailDim) oAvailDim.innerHTML = dim.getAvailText();
724
722
725
                       if (typeof oInnerDim == "undefined") oInnerDim = _gEBI(ID_INNER_DIM);
723
                       if (typeof oInnerDim == "undefined") oInnerDim = _gEBI(ID_INNER_DIM);
726
                       if (oInnerDim) oInnerDim.innerHTML = dim.getInnerText();
724
                       if (oInnerDim) oInnerDim.innerHTML = dim.getInnerText();
727
                       
725
728
                       if (fullscreen.isSupportedBy(document.documentElement))
726
                       if (fullscreen.isSupportedBy(document.documentElement))
729
                       {
727
                       {
730
                         var nowIsFullscreen = fullscreen.isFullscreen();
728
                         var nowIsFullscreen = fullscreen.isFullscreen();
731
                         if (nowIsFullscreen != previousIsFullscreen)
729
                         if (nowIsFullscreen != previousIsFullscreen)
732
                         {
730
                         {
733
                           if (typeof cmd3 == "undefined")
731
                           if (typeof cmd3 == "undefined")
734
                           {
732
                           {
735
                             cmd3 = document.getElementById("cmd3");
733
                             cmd3 = document.getElementById("cmd3");
736
                           }
734
                           }
737
                           
735
738
                           var target = cmd3.firstChild;
736
                           var target = cmd3.firstChild;
739
                           var textTarget = target.firstChild;
737
                           var textTarget = target.firstChild;
740
                           if (nowIsFullscreen)
738
                           if (nowIsFullscreen)
741
                           {
739
                           {
742
                             oldHandler = target.onclick;
740
                             oldHandler = target.onclick;
Line 748... Line 746...
748
                           else
746
                           else
749
                           {
747
                           {
750
                             target.onclick = oldHandler;
748
                             target.onclick = oldHandler;
751
                             textTarget.textContent = fullscreenText;
749
                             textTarget.textContent = fullscreenText;
752
                           }
750
                           }
753
                           
751
754
                           previousIsFullscreen = nowIsFullscreen;
752
                           previousIsFullscreen = nowIsFullscreen;
755
                         }
753
                         }
756
                       }
754
                       }
757
                     });
755
                     });
758
                   </script></span></div></li>
756
                   </script></span></div></li>