/*
20220304 fho4abcd Test on undefined value in highlightSearchTerms
20220304 fho4abcd Correct wrong replacements,more replacements
20230202 fho4abcd Return without processing if search string= ""
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "";
highlightEndTag = "";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
lcSearchTerm = lcSearchTerm.replace(/[èéęêë]/ig, 'e');
lcSearchTerm = lcSearchTerm.replace(/[àâäá]/ig, "a");
lcSearchTerm = lcSearchTerm.replace(/[îïíì]/ig, "i");
lcSearchTerm = lcSearchTerm.replace(/[ôöóò]/ig, "o");
lcSearchTerm = lcSearchTerm.replace(/[ùûůűüú]/ig, "u");
lcSearchTerm = lcSearchTerm.replace(/[,]/ig, "");
var lcBodyText = bodyText.toLowerCase();
lcBodyText = lcBodyText.replace(/[èéęêë]/ig, 'e');
lcBodyText = lcBodyText.replace(/[àâäá]/ig, "a");
lcBodyText = lcBodyText.replace(/[îïíì]/ig, "i");
lcBodyText = lcBodyText.replace(/[ôöóò]/ig, "o");
lcBodyText = lcBodyText.replace(/[ùûůűüú]/ig, "u");
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