﻿// JScript File

function rebuildContent()
{
    var keyword = document.getElementById('ctl00_ContentPlaceHolder1_UCSearchResult1_hddfKeyword').value;
    highlightStartTag = "<font style=\"background-color:#F5F330;\">";
    highlightEndTag = "</font>";
    highlightSearchTerms(keyword, highlightStartTag, highlightEndTag);
    
}


function highlightSearchTerms(searchText, highlightStartTag, highlightEndTag)
{
     var mainDivSearch = document.getElementById('_Result_Search_');
     
     var bodyText = mainDivSearch.innerHTML;
     
     bodyText = doHighlight(bodyText, searchText, highlightStartTag, highlightEndTag);
     
     mainDivSearch.innerHTML = bodyText;
     
     return true;
}

function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
     // the highlightStartTag and highlightEndTag parameters are optional
     if ((!highlightStartTag) || (!highlightEndTag)) 
     {
         highlightStartTag = "<font style=\"background-color:yellow;\">";
         highlightEndTag = "</font>";
     }

     var newText = "";
     var i = -1;
     var lcSearchTerm = searchTerm.toLowerCase();
     var lcBodyText = bodyText.toLowerCase();

     while (bodyText.length > 0) {
     i = lcBodyText.indexOf(lcSearchTerm, i+1);
     if (i < 0) 
     {
         newText += bodyText;
         bodyText = "";
     } else 
     {
         // skip anything inside an HTML tag
         if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) 
         {
         // skip anything inside a <script> block
             if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) 
             {
                 newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
                 bodyText = bodyText.substr(i + searchTerm.length);
                 lcBodyText = bodyText.toLowerCase();
                 i = -1;
                 }
             }
         }
   }

 return newText;
}

