/**
 * @author marcello.disimone
 */
(function($){
  $.fn.navigation = function( settings ){
    var jQueryObjList = this;
    
    var highlightNavigation = function( _linkList ){
      var linksMain = [];
      for (var i = 0; i < _linkList.length; i++) {
        if (_linkList[i].href.indexOf('javascript:') == -1 && _linkList[i].href.indexOf('http://') == -1) {
          linksMain[i] = 'http://' + window.location.hostname + '' + _linkList[i].href;
        } else {
          linksMain[i] = _linkList[i].href;
        }
      }
      var evaluatedLinks = evaluateHighlighting(window.location.href, linksMain);
      var highlightedIndex = -1;
      var bestmatch = 999;
      for (var j = 0; j < evaluatedLinks.length; j++) {
        if (evaluatedLinks[j] < bestmatch) {
          bestmatch = evaluatedLinks[j];
          if (evaluatedLinks[j] == -2) {
            highlightedIndex = j;
            break;
          }
        }
      }
      var currentLink = null;
      if (highlightedIndex != -1) {
        currentLink = _linkList[ highlightedIndex ];
        currentLink.parentNode.className = "active";
        while( currentLink.getAttribute( 'navParent' ) != undefined ){
          currentLink = document.getElementById( currentLink.getAttribute( 'navParent' ) );
          $( currentLink ).parent().addClass( "activeParent" );
        }
      }
    };
    var evaluateHighlighting = function(contentUrl, linkList){
      var navLinkFull = "";
      var navLinkPath = "";
      var navLinkFile = "";
      var navLinkQuery = "";
      var navLinkPathParts = [];
      var contentLinkFull = "";
      var contentLinkPath = "";
      var contentLinkFile = "";
      var contentLinkQuery = "";
      var contentLinkPathParts = [];
      var evaluatedLinks = [];
      if (contentUrl.indexOf('?') != -1) {
        contentLinkFull = contentUrl.substring(0, contentUrl.lastIndexOf('?'));
        contentLinkQuery = contentUrl.substring(contentUrl.lastIndexOf('?'), contentUrl.length);
        if (contentLinkQuery.indexOf("&") != -1) {
          contentLinkQuery = contentLinkQuery.substring(0, contentLinkQuery.indexOf("&"));
        }
      } else {
        contentLinkFull = contentUrl;
      }
      if (contentLinkFull.charAt(contentLinkFull.length - 1) == '/') {
        contentLinkFull = contentLinkFull.substring(0, contentLinkFull.length - 1);
      }
      if (contentLinkFull.lastIndexOf('/') < contentLinkFull.lastIndexOf('.')) {
        contentLinkFile = contentLinkFull.substring(contentLinkFull.lastIndexOf('/') + 1, contentLinkFull.length);
        contentLinkPath = contentLinkFull.substring(0, contentLinkFull.lastIndexOf('/'));
      } else {
        contentLinkPath = contentLinkFull;
        contentLinkFile = "";
      }
      contentLinkPathParts = contentLinkPath.split('/');
      for (var i = 0; i < linkList.length; i++) {
        navLinkFull = linkList[i];
        if (navLinkFull.indexOf('javascript:') != -1 || navLinkFull == '') {
          evaluatedLinks.push(999);
          continue;
        }
        if (navLinkFull.indexOf('?') != -1) {
          navLinkQuery = navLinkFull.substring(navLinkFull.lastIndexOf('?'), navLinkFull.length);
          if (navLinkQuery.indexOf("&") != -1) {
            navLinkQuery = navLinkQuery.substring(0, navLinkQuery.indexOf("&"));
          }
          navLinkFull = navLinkFull.substring(0, navLinkFull.lastIndexOf('?'));
        } else {
          navLinkQuery = "";
        }
        if (navLinkFull.charAt(navLinkFull.length - 1) == '/') {
          navLinkFull = navLinkFull.substring(0, navLinkFull.length - 1);
        }
        if (navLinkFull.lastIndexOf('/') < navLinkFull.lastIndexOf('.')) {
          navLinkFile = navLinkFull.substring(navLinkFull.lastIndexOf('/') + 1, navLinkFull.length);
          navLinkPath = navLinkFull.substring(0, navLinkFull.lastIndexOf('/'));
        } else {
          navLinkPath = navLinkFull;
          navLinkFile = "";
        }
        navLinkPathParts = navLinkPath.split('/');
        
        var contentIndex = 0;
        var navIndex = 0;
        var bestmatchFound = false;
        var charMatch = null;
        
        while (navLinkPathParts[navIndex] == contentLinkPathParts[contentIndex]) {
          navIndex++;
          contentIndex++;
          if (contentIndex == contentLinkPathParts.length && navIndex == navLinkPathParts.length) {
            if (navLinkFile == contentLinkFile) {
              if (navLinkQuery == contentLinkQuery) {
                evaluatedLinks.push(-2);
                bestmatchFound = true;
              } else {
                evaluatedLinks.push(-1);
              }
            } else {
              charMatch = stringCompare(navLinkFile, contentLinkFile);
              evaluatedLinks.push(0.99 - (charMatch / 100));
            }
            break;
          } else if (contentIndex == contentLinkPathParts.length) {
            evaluatedLinks.push(999);
            break;
          } else if (navIndex == navLinkPathParts.length) {
            evaluatedLinks.push(contentLinkPathParts.length - contentIndex);
            break;
          } else if (navLinkPathParts[navIndex] != contentLinkPathParts[contentIndex]) {
            evaluatedLinks.push(999);
            break;
          }
        }
        if (bestmatchFound) {
          break;
        }
      }
      return evaluatedLinks;
    }
    
    var stringCompare = function(comparator1, comparator2){
      var shorter = null;
      var longer = null;
      if (comparator1.length > comparator2.length) {
        longer = comparator1.toLowerCase();
        shorter = comparator2.toLowerCase();
      } else {
        longer = comparator2.toLowerCase();
        shorter = comparator1.toLowerCase();
      }
      var matchCount = 0;
      for (var x = 0; x < shorter.length; x++) {
        if (shorter.charAt(x) == longer.charAt(x)) {
          matchCount++;
        } else {
          break;
        }
      }
      return matchCount;
    }

    $(function() {
      highlightNavigation( jQueryObjList );
    });
  }
})(jQuery);

function openSocialBookmark( linkUrl ){
	window.open( linkUrl );
}

(function($){
  $.fn.commentrotation = function( settings ){
    var commentContainer = this;
    var $that = $(this);
    var intId = false;
    var count = 0;
    
    var defaults = {
      commentRotateDuration: 9000,
      commentFadeDuration: 500,
      commentCaptionId:'#teaserCommentCaption',
      comments:[
        'Ich bin von dem Persil Hygiene Spüler begeistert. Nicht nur, dass er hygienisch reinigt, ich spare auch noch Energie und schone die Umwelt! Absolut klasse!',
        'Der Hygiene Spüler gibt mir einfach ein gutes Gefühl. Die Wäsche riecht frisch, ich sehe nicht nur, dass sie sauber ist, ich fühle es auch. Das finde ich super!',
        'Der Hygiene Spüler ist einfach super und gar nicht mehr wegzudenken. Man fühlt sich in der damit gewaschenen Wäsche einfach wohler, und gut riechen tut es auch!',
        'Der Hygiene Spüler ist eine tolle Sache, so wird die Wäsche wirklich sauber. Der hat den Namen Persil verdient!',
        'Mit dem Persil Hygiene Spüler ist meine Wäsche fühlbar sauberer. Keime und Bakterien werden zu 99,99 % bei 15 Grad beseitigt. Das hat mich überzeugt.',
        'Der neue Persil Hygiene Spüler ist endlich eine Möglichkeit, auch bei empfindlichen Textilien (z.B. Sportbekleidung) Bakterien & Co. den Kampf anzusagen!!!',
        'Der Persil Hygiene Spüler macht die Wäsche endlich auch bei niedrigen Temperaturen hygienisch sauber!',
        'Mit dem Persil Hygiene Spüler bekommt "frisch gewaschen" eine ganz neue Bedeutung für mich: Denn die Wäsche ist jetzt nicht nur sauber, sondern rein! Klasse!',
        'Ich behaupte Folgendes: Die Welt wird in Zukunft nicht sicherer sein. Meine Wäschehygiene schon - dank des Persil Hygiene Spülers. Danke, Persil!',
        'Es war toll, Ihren Persil Hygiene Spüler zu testen! Dieses beruhigende Gefühl absoluter Reinheit möchte ich behalten und nutze es darum weiterhin. Danke Persil!',
        'Ich habe selten so ein super Projekt mit einem Produkt gehabt, das mal wirklich das hält, was es verspricht.  Ein tolles Ergebnis bei jeder Wäsche. Vielen Dank PERSIL !',
        'Ohne den Hygiene Spüler hätte ich die Durchfallerkrankung meines Sohnes nicht so gelassen überstanden - aber ich war einfach sicher, dass seine Wäsche sauber ist.',
        'Mein perfekter Weg auch mit meiner Wäsche verantwortungsvoll umzugehen. Hygiene der Wäsche gehört genauso zur Wäsche wie zum Haushalt.',
        'Der Hygiene Spüler ist eine echt tolle Ergänzung zum Waschmittelprogramm. So kann ich gerade als Mutter sicher gehen, dass die Kleinen super saubere Wäsche haben.',
        'Es gibt für mich nichts Besseres als den Persil Hygiene Spüler, ich habe so vieles ausprobiert, aber nur Persil hat meine Familie und mich voll und ganz überzeugt.',
        'Der Persil Hygiene Spüler hat mir gezeigt, wie einfach es ist, bakterienfrei zu waschen und sich gleichzeitig rein und frisch zu fühlen.Wir lieben ihn!!',
        'Persil, auch bei niedrigen Temperaturen ein rundum sicheres Gefühl! Adé Bakterien und Keime - willkommen Gesundheit und Wohltat!',
        'Für mich eines der spannendsten und innovativsten Produkte der vergangenen Monate, das den Nerv der Zeit getroffen hat! ',
        'Seit ich den Persil Hygiene Spüler nutze, habe ich das Gefühl, sauberer und sicherer zu leben, zumindestens mal in Bezug auf die Hygiene meiner Wäsche. Super!',
        'Der erste Waschmittelzusatz, den nicht nur meine Wäsche, sondern auch ich liebe.',
        'Persil ist seinem Namen treu geblieben - Qualität durch und durch. Ich bin begeistert, dass ich jetzt meiner Familie hygienisch reine Wäsche bieten kann! ',
        'Traumhaft, super: Gehört in jeden Haushalt. Seit Persil habe ich TRAUMWÄSCHE! ',
        'Ich finde, dass der Hygiene Spüler eine ideale Ergänzung zum Waschmittel ist, weil meine Familie und ich dadurch sicher vor Keimen und Bakterien geschützt sind.',
        'Ein Produkt, an das hohe Ansprüche gestellt wird von Menschen, die hohe Ansprüche stellen. Für ein gutes Gefühl und gesundes Reinigen genau das richtige Produkt.',
        'Mich hat der Hygiene Spüler überzeugt. Ich verwende ihn jede Woche z.B. für meine Badesachen. Praktische Anwendung - sicheres Ergebnis.',
        'Persil ist schon seit meiner Kindheit für mich ein Begriff: Frischer Duft und weiche Wäsche. Der Hygiene Spüler ist nun die perfekte Ergänzung!!! DANKE',
        'Ich bin vom Persil Hygiene Spüler absolut überzeugt und mega begeistert. Jedesmal, wenn ich meine Kleidung schlüpfe, erfüllt mich ein saubereres, frisches Gefühl...',
        'Endlich mal eine angenehm duftende und zugleich pflegende Alternative zu den üblichen Hygiene Produkten. Spitze',
        'Bei Persil kann ich mir sicher sein, dass meine Wäsche nicht nur sauber, sondern wirklich bis in die letzte Faser rein ist. ',
        'Typisch Persil: Mit dem Persil Hygiene Spüler setzen sie in Sachen Reinheit noch einen drauf!',
        'Der Persil Hygiene Spüler hat mir echt geholfen, mich in meinen Sachen noch wohler zu fühlen.',
        'Ich verwende ihn bei jeder Wäsche, denn nur so wird sie nicht nur oberflächlich sauber, sondern tief rein - das fühlt und riecht man!',
        'Endlich rundum wohl fühlen, auch wenn man "nichts" sieht. Man fühlt sich sicher: Porentief rein und keimfrei - in jeder Situation! Perfekt für den Alltag!',
        'Getestet und für gut befunden! Gerade für empfindliche Babyhaut und das bei einem angenehm dezenten Duft, der nicht medizinisch riecht. Fazit: Immer wieder!',
        'In der letzten Wochen war ich sehr froh, den Persil Hygiene Spüler im Haus zu haben. Da waren leider alle Kinder krank, aber mit Persil hab ich mich gewappnet gefühlt.',
        'Persil Hygiene Spüler ist eine super Ergänzung für Wäschen bei niedrigen Temperaturen und sollte in einem Haushalt mit (kleinen) Kindern nicht fehlen.  ',
        'Hygienisch rein kann so einfach sein...',
        'P erfekt E rfrischend R evolutionär S chonend I nnovativ L eistungsstark',
        'Mit Persil wusste man schon immer, was man hat - nun erst recht: Hygienisch saubere Wäsche schon bei niedriger Waschtemperatur und dabei absolut hautverträglich.',
        'Zum 1. Mal in meinem Leben habe ich das Gefühl, dass die Wäsche nicht nur von Schmutz befreit ist, sondern auch absolut rein von allen Bakterien! Einfach super!',
        'Der Persil Hygiene Spüler - für Wohlfühlsauberkeit in Persil-Qualität',
        'Für meine Testpersonen und für mich gilt der Hygiene Spüler als eine sinnvolle Erfindung, die wir nicht mehr missen wollen. Eben ein unsichtbares Schutzschild!!',
        'Ich bin begeistert - hygienisch rein und niedrige Temperaturen sind dank dem Persil Hygiene Spüler keine widersprüchlichen Aussagen mehr. ',
        'Es ist ein sehr gutes Gefühl, dass man mit dem Persil Hygiene Spüler ALLE Kleidungsstücke hygienisch und sauber rein waschen kann! Note 1 für Persil',
        'Es ist einfach schön zu wissen, dass man seinen Sachen - und gerade die liebsten und feinsten Stücke - mit Persil Hygiene Spüler IMMER hygienisch rein bekommt!',
        'Ich bin total begeistert vom Hygiene Spüler. Ich kann jetzt endlich meine Lieblingsstücke öfters tragen und sie ganz beruhigt bei 30 Grad waschen. Das ist echt super!',
        'Einfach eine Kappe zur Wäsche hinzufügen und ich kann mir sicher sein, dass alles hygienisch sauber ist! Wahnsinn! So einfach und sicher, besser gehts doch nicht!!',
        'Der Persil Hygiene Spüler ist das Beste, was uns Müttern passieren konnte. Mein Produkt des Jahres 2010!',
        'Persil ist in jeder Hinsicht ein Gewinn! Mit den Persil Produkten ist man rundherum abgesichert. Der Persil Hygiene Spüler ist das Tüpfelchen auf dem i. SUPER!!',
      ]
    };
    
    $(function() {
      var options = $.extend(true, defaults, settings);
      
      var rotateComment = function(){
        if( intId ){
          clearTimeout( intId );
        }
        
        $('#teaserCommentCover' ).fadeIn( options.commentFadeDuration, function( event ) {
          changeCommentText();
          $('#teaserCommentCover' ).fadeOut( options.commentFadeDuration );
        });
        intId = setTimeout( rotateComment, options.commentRotateDuration );
      };
      
      var changeCommentText = function(){
        var commentLength = options.comments.length;
        var nextPos = Math.floor( Math.random() * commentLength );
        var currentComment = options.comments[ nextPos ];
        $( options.commentCaptionId ).html( currentComment );
      }
      
      rotateComment();
    });
  }
})(jQuery);
