function highlightOnLoad() { 


   // Get search string

   if (/highlight\=/.test(window.location.search)) { 

     var searchString = getSearchString();
     //alert(searchString);
     
     // Starting node, parent to all nodes you want to search 

     var textContainerNode = document.getElementById("contents"); 

  if (/exact/.test(window.location.search))
    {
    var searchTerms = searchString.split('!');
    Anzahl = searchTerms.length;

        
        searchTerm = searchTerms.join("[\\\s]?(?:<(?:[A-Za-z0-9\\\/\\\=\\\s])*>)*[\\\s]?");
        //alert(searchTerm);
  //searchTerm = "[\s]?(<[A-Za-z0-9]*>)*[\s]?"+searchTerm+"[\s]?(<\/[A-Za-z0-9]*>)*[\s]?(<[A-Za-z0-9]*>)*[\s]?";

    //alert(searchTerm);
    
    var regex = new RegExp(">([^<]*)?("+searchTerm+")([^>]*)?<","ig");
    //document.writeln(regex);
    highlightTextNodes(textContainerNode, regex);
    
    //*********************************test*************************************
    //var tempinnerHTML = textContainerNode.innerHTML; 

   // Do regex replace 

   // Inject span with class of 'highlighted termX' for google style highlighting 

   //textContainerNode.innerHTML = tempinnerHTML.replace(regex,'>$1<span class="highlight">$2</span>$3<');
    //**********************************test ende*******************************
    }
  
  
     // Split search terms on '|' and iterate over resulting array 
  else
    {
     var searchTerms = searchString.split('|'); 
      Anzahl = searchTerms.length;

     for (var i=0; i<Anzahl; i++)  { 

       // The regex is the secret, it prevents text within tag declarations to be affected 
        if (searchTerms[i].length>2)
          {
            var regex = new RegExp(">([^<]*)?("+searchTerms[i]+")([^>]*)?<","ig"); 
            
            highlightTextNodes(textContainerNode, regex); 
          }
       // Add to info-string 

       //searchInfo += ' <span class="highlighted term'+i+'">'+searchTerms[i]+'</span> '; 

     }
     } 

      // Informational message for search 

      //var searchInfo = 'Search Results for: '; 

      // Create div describing the search 

      //var searchTermDiv = document.createElement("H2"); 

      //searchTermDiv.className = 'searchterms'; 

      //searchTermDiv.innerHTML = searchInfo; 

     // Insert as very first child in searched node 

     //textContainerNode.insertBefore(searchTermDiv, textContainerNode.childNodes[0]); 

   } 

 } 

  

// Pull the search string out of the URL 

function getSearchString() { 

   // Return sanitized search string if it exists 


   var rawSearchString = window.location.search.replace(/(.*)highlight=(.*)/,"$2"); 

    if (/exact/.test(window.location.search))
      {
        return rawSearchString.replace(/\%20|\+/g,"!");
      }
    
    else
      {
       // Replace '+' with '|' for regex 
    
       // Also replace '%20' if your cms/blog uses this instead (credit to erlando for adding this) 
    
       return rawSearchString.replace(/\%20|\+/g,"\|"); 
      }
} 

  

function highlightTextNodes(element, regex) { 

   var tempinnerHTML = element.innerHTML; 

   // Do regex replace 

   // Inject span with class of 'highlighted termX' for google style highlighting 

   element.innerHTML = tempinnerHTML.replace(regex,'>$1<span class="highlight">$2</span>$3<');
   
 } 
  