HG-Optimierung

Vereinfachte Navigation auf Hartgeld.com

当前为 2015-08-28 提交的版本,查看 最新版本

// ==UserScript==
// @name        HG-Optimierung
// @namespace   hgtools
// @include     http://www.hartgeld.com/*
// @version     1.14
// @grant       none
// @description Vereinfachte Navigation auf Hartgeld.com
// ==/UserScript==

(function () { 

   ///////////////////////////////////////////////////////////////////////////////////
   // Startseite
   if (self == top) {
      
      // CSS
      var cssstring = (function () {/*
         <style>
         #olframe {
            display:none;
            height:100%;
            position:fixed;
            top:0;
            right:0;
            z-index:10000;
         }
         #dragbar {
            position: absolute;
            left: -12px;
            height:100%;
            width:10px;
            cursor: col-resize;
         }
         #closeborder {
             border: 1px solid #666;
             opacity: 0.8;
             float:left;
             position: absolute;
             left:-35px;
             background:#fff;
             border-radius:25px;
         }
         #close {
             top: 0px;
             left: -2px;
             position: relative;
             height:20px;
             width:20px;
             padding:6px;
             font-size:30px;
             display:block;
             text-decoration:none;
         }
         #lesefenster,
         #iframeph {
            box-shadow: -10px 10px 13px -3px rgba(158,158,158,1);
            width:100%;
            height:100%;
            background:#fff;
            overflow:auto;
            border:none;
         }
         #iframeph {
            box-shadow: none;
            position:absolute;
            display:none;
         }
         .markierterubrik {
            background: #f6b400;
            color: #333 !important;
            padding: 0px 4px;
            border-radius:3px;
            font-weight:bold;
         }
         #wartebild {
            -moz-animation: spin 1s infinite linear;
            -webkit-animation: spin 1s infinite linear;  
            position: absolute;
            left: 45%;
            top: 45%;
         }
         @-moz-keyframes spin {
             0% {-moz-transform: rotate(0deg);}
             100% {-moz-transform: rotate(360deg);};
         }
         @-webkit-keyframes spin {
             0% {-webkit-transform: rotate(0deg);}
             100% {-webkit-transform: rotate(360deg);};
         }
         </style>
         
         */}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
      $('head').append(cssstring);

   
      var neu = 0;
      var letzterubrik;

      // Links umbauen
      $('.tab-content a').each(function() {
        var value = $(this).attr('href');
        $(this).attr('url', value);
        $(this).attr('href', 'javascript:return false;');
      });

      // von auto auf fixe Position ändern
      function AutoZentrierungInMargin() {
         $('.container-fluid').css("position", "absolute");
         var left = ($(window).width() - $('.container-fluid').width()) / 2 - 14 + "px";
         return left;
      }

      
      $(".tab-content a").click(function() {
         if (neu == 0) {
            // margin: 0 auto in 0 x umwandeln
            $('.container-fluid').css({"margin-left": AutoZentrierungInMargin()});
            $('.container-fluid').animate({'marginLeft': '0'}, 300);
            
            // $('.container-fluid').css({"position": "relative"});
            $('.container-fluid').prepend('<div id="olframe" style="width:' + Fenstergroesse() + ';"><div id="dragbar"></div><div id="closeborder"><a id="close" href="javascript:return false;">&#10006;</a></div><div id="iframeph"><img id="wartebild" src="http://www.hartgeld.com/images/seiten/Logo-HG_kl.jpg"></div><iframe id="lesefenster" ></iframe></div>');

            $('#olframe').fadeIn(300);
         }
         
         $(this).toggleClass('markierterubrik');
         MarkiertenBereichAufheben();
         
         $('#iframeph').fadeIn(300); 

         var url = $(this).attr("url");
         $('#lesefenster').attr("src", url);

         letzterubrik = $(this);
         neu = 1;
      });

      function MarkiertenBereichAufheben() {
         if (neu) {
            $(letzterubrik).toggleClass('markierterubrik');
         }
      }

      $('.container-fluid').on('click', '#close', function() {
         $('#lesefenster').fadeOut(300, function(){ $('#olframe').remove();});
         
         $('.container-fluid').animate({'marginLeft': AutoZentrierungInMargin()}, 300);

         MarkiertenBereichAufheben();
         neu = 0;
      });
      

      // Wenn iframe geladen wurde, iframe-Ladeseite ausblenden
      var script   = document.createElement("script");
      script.type  = "text/javascript";
      script.text  = "function IframeGeladen() { \
                     $('#iframeph').fadeOut(300); \
                     }";
      document.head.appendChild(script);
                     
      
      // Breite Overlay ändern
      $(".container-fluid").on('mouseover', '#dragbar', function() {
         $("#dragbar").css({"border-right": "3px dashed #666"});
      });
      $(".container-fluid").on('mouseout', '#dragbar', function() {
         $("#dragbar").css({"border-right": "none"});
      });
      
      var i = 0;
      var dragging = false;
      $(window).on('mousedown', '#dragbar', function(e) {
         e.preventDefault();

         dragging = true;
         var main = $('#olframe');
         var ghostbar = $('<div>',
            { id:'ghostbar', css: 
               {
                  borderRightWidth: '3px',
                  borderRightColor: '#666',
                  borderRightStyle: 'dashed',
                  position: 'absolute',
                  cursor: 'col-resize',
                  zIndex: '10001',
                  height: main.outerHeight(),
                  top: main.offset().top,
                  left: main.offset().left-2
               }
            }).appendTo('body');
         $('#lesefenster').css({"pointer-events": "none"});
         
         $(document).mousemove(function(e) {
            ghostbar.css("left", e.pageX);
            $('#olframe').css(
               {  "left": e.pageX,
                  "width": $(document).width() - e.pageX
               });
         });
      });

      $(document).mouseup(function(e) {
         if (dragging) {
            $('#lesefenster').css({"pointer-events": "initial"});
            $('#ghostbar').remove();
            $(document).unbind('mousemove');
            dragging = false;
         }
      });

      $(window).on('resize', function(event) {
         $("#olframe").css({"width": Fenstergroesse(), "right": "0", "left": "unset"});
      });    
      
      function Fenstergroesse() {
         var breite = '70%';
         if ($(window).width() > 1600) {
            breite = '50%';
         }
         return breite;
      }
   
   }
   
   ///////////////////////////////////////////////////////////////////////////////////
   // Inhaltsseite
   else {
      
      // CSS
      var cssstring = (function () {/*
         <style>
         .header-fixed,
         .werbebox3 p { 
            display: none;
         }
         hr {
            margin-top: 50px;
            border-bottom: 1px solid #bbb;
            border-top: none;
         }
         .bodyText_fett,
         .bodyText strong {
         }
         #main {
            margin-top: 10px;
         }
         .bodyText_fett_blau {
            display: inline !important;
            background: #44e;
            color: #fff;
            border-radius: 3px;
         }
         .bodyText_fett_blau::after, 
         .bodyText_fett_blau::before { 
            content: '\00a0'; 
            line-height: 25px; 
         }
         .blase {
            display: inline;
            text-decoration:none !important;
            font-size: 20px;
            position: relative;
            top: -20px;
            left:3px;
            z-index:10;
            transition-property: all;
            transition-duration: 0.2s;
            transition-timing-function: ease;
            opacity:0;
            color:#fff;
            text-shadow: 0 -1px #333, 1px 0 #333, 0 1px #333, -1px 0 #333;
         }
         .blasehover {
            opacity:1;
            top: 3px;
         }
         #message {
            display:none;
            position: absolute; 
            padding: 5px 10px 10px; 
         }
         #mailsenden {
            color:#869CF5;
            font-size: 30px;
            text-decoration:none;
         }
         #mailsenden:hover {
            color: #03f; 
         }
         #urloverlay {
            display:none;
            box-shadow: -5px 5px 10px -3px rgba(158,158,158,1); 
            border-radius:3px;
            position: absolute; 
            padding: 1px 5px 3px; 
            background: #f6b400; 
            color: #333; 
            font-weight: bold;
            z-index:1000;
         }
         .kommentarwe {
            // color:#EF079A;
            background: #eeeeff;
            display: block;
            padding: 0px 5px 2px;
         }
         .bodyText_blau + br + .bodyText_blau::before {
            padding-top:10px;
            content: "";
            display:block;
         }
         .bodyText_blau + br,
         .bodyText_blau br,
         .bodyText_fett br {
            display:none;
         }
         #alteinhalte {
            display:none;
         }
         #alteinhalteschalter {
            display:block;
            font-weight: bold;
            margin-top: 50px;
         }
         </style>
         
         */}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
      $('head').append(cssstring);
      
      var mtext = '';
      
      // Mailoverlay
      $(".artikel").prepend('<div id="message"><a title="Diesen Absatz kommentieren" id="mailsenden" href="javascript:return false;">&#128172;</a></div>');
            
      // URLoverlay
      $(".artikel").prepend('<div id="urloverlay"></div>');
      
      // Textmarkierungs-Mailzitat
      $('.artikel').mouseup(function(event) {
         var temp = document.getSelection().toString();
         if (temp != '') {
            mtext = temp;
            $("#message").css({
               top: event.pageY+5,
               left: event.pageX+15
            }).slideDown("fast");
         }
      });

      $(".artikel").mousedown(function(event) {
         if (event.target.id == 'mailsenden') {
            var seite = window.location.href.split('/');
            mtext = Textkuerzen(mtext);
            window.location.href = "mailto:[email protected]?subject=Neuer Leserkommentar zu Seite " + seite[3] + "&body=Sehr geehrtes Hartgeld-Team,%0A%0Azu folgendem Eintrag auf der Seite " + seite[3] + " möchte ich gerne wie untenstehend kommentieren:%0A%0A%0AIhr Eintrag:%0A" + encodeURIComponent(mtext) + "%0A%0A%0AMein Kommentar dazu:%0A%0A";
         }
         SchliessePopup();
      });
      
      function SchliessePopup() {
         $('#message').slideUp("fast");

         if (window.getSelection) {
            window.getSelection().removeAllRanges();
         } else if (document.selection) {
            document.selection.empty();
         }
      }
      
      function Textkuerzen(text) {
         var maxtextlaenge = 500;
         if (text.length > maxtextlaenge) {
            var trimmedString = text.substr(0, maxtextlaenge);
            trimmedString = trimmedString.substr(0, Math.min(trimmedString.length, trimmedString.lastIndexOf(" ")));
            return trimmedString + ' [...]';
         } else {
            return text;
         }
      }
      
      // URL Hover
      $(".artikel a").hover(
         function(event) {
            clearTimeout($(this).data('timeout'));
            var ax = document.createElement('a');
            ax.href = $(this).attr('href');
            $('#urloverlay').text(ax.hostname);
            var position = $(this).position();
            $("#urloverlay").css({
               // top: position.top-25,
               // left: position.left
               top: event.pageY-40,
               left: event.pageX-50
            }).show();
         }, 
         function() {
            var t = setTimeout(function() {
               $('#urloverlay').hide();
            }, 100);
            $(this).data('timeout', t);
         }
      );
      
      // WE-Kommentare anders färben
      // muss vor Kommentar-Sprechblasen kommen
      $('.bodyText_blau, .bodyText_fett_blau').each(function() {
         var kommentar = $(this).text();
         var wekennung = kommentar.indexOf('WE.');
         if (wekennung >= 0) {
            $(this).addClass("kommentarwe");
         }
      });
     
      // Auto-Kommentar-Links
      // $('.artikel p.bodyText_fett, .artikel p .bodyText_fett, .artikel p .bodyText_fett .bodyText_fett, .artikel p strong, .artikel p.bodyText_blau, .artikel p .bodyText_blau, .artikel p.bodyText_fett_rot, .artikel p .bodyText_fett_rot').each(function() {
      $('.artikel p.bodyText_fett, .artikel p .bodyText_fett, .artikel p .bodyText_fett .bodyText_fett, .artikel p strong, .artikel p.bodyText_blau, .artikel p .bodyText_blau, .artikel p.bodyText_fett_rot, .artikel p .bodyText_fett_rot').not('p a + .bodyText_blau').each(function() {
         $(this).addClass("kommentarhover");
         var seite = window.location.href.split('/');
         var text = $(this).text();
         text = Textkuerzen(text);
         $(this).append('<a title="Diesen Absatz kommentieren" href="mailto:[email protected]?subject=Neuer Leserkommentar zu Seite ' + seite[3] + '&body=Sehr geehrtes Hartgeld-Team,%0A%0Azu folgendem Eintrag auf der Seite ' + seite[3] + ' möchte ich gerne wie untenstehend kommentieren:%0A%0A%0AIhr Eintrag:%0A' + encodeURIComponent(text) + '%0A%0A%0AMein Kommentar dazu:%0A%0A" class="blase">&#128172;</a>');
      });

      $(".artikel .kommentarhover").hover(
         function() {
            $(this).children('.blase').toggleClass('blasehover');
         }, 
         function() {
            $(this).children('.blase').toggleClass('blasehover');
         }
      );
      
      // Ältere Inhalte ausblenden
      var endeaktuell = $("hr").first();
      $(endeaktuell).before('<a id="alteinhalteschalter" href="javascript:return false;">&Auml;ltere Inhalte anzeigen &raquo;</a><div id="alteinhalte"></div>');
      $(endeaktuell).nextAll().each(function() {
         $('#alteinhalte').append(this);
      });
      $('#alteinhalte').prepend(endeaktuell);

      $(".artikel").on('click', '#alteinhalteschalter', function() {
         $("#alteinhalte").slideDown("slow");
         $("#alteinhalteschalter").css({"display": "none"});
      });
      

      // Datum umstellen
      monate = new Array(); monate['01'] = 'Januar'; monate['02'] = 'Februar'; monate['03'] = 'M&auml;rz'; monate['04'] = 'April'; monate['05'] = 'Mai'; monate['06'] = 'Juni'; monate['07'] = 'Juli'; monate['08'] = 'August'; monate['09'] = 'September'; monate['10'] = 'Oktober'; monate['11'] = 'November'; monate['12'] = 'Dezember';
      var datum = $('.cdate').first();
      var datumsteile = datum.text().split('-');
      $(datum).text(datumsteile[2].replace(':', '') + '. ' + monate[datumsteile[1]] + ' ' + datumsteile[0])
      

      // Meldung an Parent Window, sobald Seite fertig geladen wurde
      var script = document.createElement("script");
      script.type = "text/javascript";
      script.text  = "parent.IframeGeladen();";
      document.body.appendChild(script);
      
   }
   
}());