﻿function doHighlight(bodyText, searchTerm) 
{
	highlightStartTag = "<font class='nsHighlight'>";
	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 {
      if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
        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;
}


function highlightSearchTerms(searchText, treatAsPhrase)
{
	for (var i=0;i<searchText.length;i++){
		if ((searchText.charAt(i)+searchText.charAt(i+1)).toUpperCase()=='OR'){
			treatAsPhrase = false;
		}
		if ((searchText.charAt(i)+searchText.charAt(i+1)+searchText.charAt(i+2)).toUpperCase()=='AND'){
			treatAsPhrase = false;
		}
	}
  if (treatAsPhrase) {
    searchArray = [searchText];
  } else {
    searchArray = searchText.split(" ");
  }
  
  var bodyText = document.getElementById('tblSearch').innerHTML;
  for (var i = 0; i < searchArray.length; i++) {
	if (searchArray[i].toUpperCase() !='OR' && searchArray[i].toUpperCase()!='AND'){
		if (searchArray[i].charAt(0)=='"'){
			searchArray[i]=searchArray[i].substring(1,searchArray[i].length)
		}
		if (searchArray[i].charAt(searchArray[i].length-1)=='"'){
			searchArray[i]=searchArray[i].substring(0,searchArray[i].length-1)
		}
		bodyText = doHighlight(bodyText, searchArray[i]);
	}
  }
  document.getElementById('tblSearch').innerHTML = bodyText;
  return true;
}

function searchPrompt(defaultText, treatAsPhrase)
{ 
	if (Trim(defaultText)=='') return;
  return highlightSearchTerms(UnicodeGet(defaultText), treatAsPhrase);
}

