/* 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