| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | window.SearcherDisplay = (function($) {    /**     * This class provides support for displaying quick search text results to users.     */    function SearcherDisplay() { }    SearcherDisplay.prototype.init = function() {        this._displayQuickSearch();    };    /**     * This method creates the quick text search entry in navigation menu and wires all required events.     */    SearcherDisplay.prototype._displayQuickSearch = function() {            var quickSearch = $(document.createElement("iframe")),                   body = $("body"),                   self = this;            quickSearch.attr("src", "quicksearch.html");            quickSearch.css("width", "0px");            quickSearch.css("height", "0px");            body.append(quickSearch);            $(window).on("message", function(msg) {                var msgData = msg.originalEvent.data;                if (msgData.msgid != "docstrap.quicksearch.done") {                    return;                }                var results = msgData.results || [];                self._displaySearchResults(results);            });            function startSearch() {              var searchTerms = $('#search-input').prop("value");              if (searchTerms) {                quickSearch[0].contentWindow.postMessage({                  "searchTerms": searchTerms,                  "msgid": "docstrap.quicksearch.start"                }, "*");              }            }            $('#search-input').on('keyup', function(evt) {              if (evt.keyCode != 13) {                return;              }              startSearch();              return false;            });            $('#search-submit').on('click', function() {              startSearch();              return false;            });    };    /**     * This method displays the quick text search results in a modal dialog.     */    SearcherDisplay.prototype._displaySearchResults = function(results) {            var resultsHolder = $($("#searchResults").find(".modal-body")),                  fragment = document.createDocumentFragment(),                  resultsList = document.createElement("ul");            resultsHolder.empty();            for (var idx = 0; idx < results.length; idx++) {                var result = results[idx],                       item = document.createElement("li"),                       link = document.createElement("a");                link.href = result.id;                link.innerHTML = result.title;                item.appendChild(link)                resultsList.appendChild(item);            }            fragment.appendChild(resultsList);            resultsHolder.append(fragment);            $("#searchResults").modal({"show": true});    };    return new SearcherDisplay();})($);
 |