HG-Optimierung

Vereinfachte Navigation auf Hartgeld.com

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

// ==UserScript==
// @name        HG-Optimierung
// @namespace   hgtools
// @include     http://www.hartgeld.com/*
// @version     1.11
// @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:-33px;
             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 {
            box-shadow: -10px 10px 13px -3px rgba(158,158,158,1);
            width:100%;
            height:100%;
            background:#fff;
            overflow:auto;
            border:none;
         }
         .markierterubrik {
            background: #f6b400;
            color: #333 !important;
            padding: 0px 4px;
            border-radius:3px;
            font-weight:bold;
         }
         </style>
         
         */}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
      $('head').append(cssstring);

   
      var neu = 0;
      var letzterubrik;

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

      
      $(".tab-content a").click(function() {
         if (neu == 0) {
            $(".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><iframe id="lesefenster" ></iframe></div>');
            $('#olframe').slideDown("fast");
            $('.container-fluid').css({"margin": "unset"});
         }

         
         $(this).toggleClass('markierterubrik');
         MarkiertenBereichAufheben();
         
         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').slideUp("fast", function(){ $('#olframe').remove();});
         $('.container-fluid').css({"margin": "0px auto"});
         MarkiertenBereichAufheben();
         neu = 0;
      });


      // 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:#869CF5;
         }
         .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;
         }
         </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-30,
               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() {
         $(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');
         }
      );
     
     
   }
   
}());