﻿jQuery.fn.highlightSearchKey = function(pat) {
    //        pat = pat.toLowerCase();
    var skip = 0;
    function wrap(node) {

        if (node.nodeType == 3 && skip == 0)   //&& skip == 0 auskommentenm um alle zu markieren
        {
     
            var pos = node.data.indexOf(" " + pat + " ");
            if (pos == -1) { pos = node.data.indexOf(" " + pat + "-"); }
            if (pos == -1) { pos = node.data.indexOf("-" + pat + " "); }
            if (pos >= 0) {
                var emNode = document.createElement('em');
                var middlebit = node.splitText(pos + 1);
                var endbit = middlebit.splitText(pat.length);
                var middleclone = middlebit.cloneNode(true);
                var div = document.createElement('div');
                //div = $(".testen");
                $(div).addClass("glossary");
                var content = $(".hint" + pat).html();
                $(div).html(content);
                $(div).hide();
                $(div).hover(function() { }, function() { $(div).slideUp(); });
                emNode.appendChild(div);
                emNode.appendChild(middleclone);
                middlebit.parentNode.replaceChild(emNode, middlebit);
                skip = 1;
                $(emNode).mouseover
                                        (
                                            function(e) {


                                                $(".hint" + pat).css("left", e.pageX + 'px');
                                                $(".hint" + pat).css("top", (e.pageY - 10) + 'px');

                                                $(".hint" + pat).show();
                                            }
                                        ).mouseout(function(e) { $(".hint" + pat).hide(); });

            }
        }
        else if (node.nodeType == 1 && node.childNodes) {
            for (var i = 0; i < node.childNodes.length; ++i) {
                i += wrap(node.childNodes[i], pat);
            }
        }
        return skip;
    }
    return this.each(function() {
        wrap(this);
    });
};
