Sub AddBackgroundPanels As ResumableSub
	For Each x As B4XView In BBCodeView1.sv.ScrollViewInnerPanel.GetAllViewsRecursive
		If x.Tag = "background" Then
			x.RemoveViewFromParent
		End If
	Next
	Dim StyleSection As String
	Dim scale As Float = TextEngine.mScale
	For Each line As BCTextLine In BBCodeView1.Paragraph.TextLines
		For Each un As BCUnbreakableText In line.Unbreakables
			For Each s As BCSingleStyleSection In un.SingleStyleSections
				StyleSection = s.Run.Text
				If WordsToHighlight.Contains(StyleSection) = True And StyleSection.ToLowerCase.IndexOf(TextFind.Text.ToLowerCase) > -1 Then
					Dim pnl As B4XView = xui.CreatePanel("")
					pnl.Color = 0x5FFF0000
					pnl.Tag = "background"
					BBCodeView1.sv.ScrollViewInnerPanel.AddView(pnl, BBCodeView1.Padding.Left + s.AbsoluteStartX / scale - 4dip, _
                    BBCodeView1.Padding.Top + (line.BaselineY - s.MaxHeightAboveBaseLine) / scale - 4dip, _
                    s.Width / scale + 8dip, (s.MaxHeightBelowBaseLine + s.MaxHeightAboveBaseLine) / scale + 8dip)
					'Scrolling the page to the word position
					BBCodeView1.sv.ScrollViewOffsetY = BBCodeView1.Padding.Top + (line.BaselineY - s.MaxHeightAboveBaseLine) / scale - 4dip
					pnl.SendToBack
					Return True
				End If
			Next
		Next
	Next
	Return False
End Sub

Private Sub btnPreviousWord_Action
Try
	Do While True
		If steps = 1 And steps = wordcount Then
			Main.cutils.ShowNotification3("THE BEGINNING OF THE SEARCH", "Beginning of the search,"&CRLF&"There are no more sophisticated words.", Main.cutils.ICON_WARNING, Main.MainForm, "BOTTOM_CENTER", 2000)
			btnPreviousWord.Enabled = False
			btnNextWord.Enabled = True
			btnPreviousWord.TextColor = xui.Color_LightGray
			btnNextWord.TextColor = xui.Color_Black
			Return
		End If
		
		WordsToHighlight = B4XCollections.CreateSet2(Array(listWordsSpaces.Get(count-2),""))
		
		count = count - 1
		sb2.Initialize
		sb2.Append(sb1.ToString)
		sb2.Insert(listIndex.Get(count-1)+13, "[plain]")
		sb2.Insert(listIndex.Get(count)+7+13, "[/plain]")
		BBCodeView1.Text = sb2.ToString

		Wait For (AddBackgroundPanels) Complete (Result As Boolean)

		If Result Then
			steps = steps - 1
			If steps < 1 Then steps = 1

			If steps = 1 Then
				Main.cutils.ShowNotification3("THE BEGINNING OF THE SEARCH", "Beginning of the search,"&CRLF&"There are no more sophisticated words.", Main.cutils.ICON_WARNING, Main.MainForm, "BOTTOM_CENTER", 2000)
				btnPreviousWord.Enabled = False
				btnNextWord.Enabled = True
				btnPreviousWord.TextColor = xui.Color_LightGray
				btnNextWord.TextColor = xui.Color_Black
				Exit
			Else
				btnPreviousWord.Enabled = True
				btnNextWord.Enabled = True
				btnPreviousWord.TextColor = xui.Color_Black
				btnNextWord.TextColor = xui.Color_Black
				Exit
			End If
		End If
	Loop
Catch
	If steps < 1 Then steps = 1
	count = 0
	Return
End Try
End Sub

Private Sub btnNextWord_Action
Try
	Do While True
		WordsToHighlight = B4XCollections.CreateSet2(Array(listWordsSpaces.Get(count),""))
		sb2.Initialize
		sb2.Append(sb1.ToString)
		count = count + 1
		If count >= listIndex.Size Then
			count = listIndex.Size - 1
			WordsToHighlight = B4XCollections.CreateSet2(Array(listWordsSpaces.Get(count),""))
		End If
		sb2.Insert(listIndex.Get(count-1)+13, "[plain]")
		sb2.Insert(listIndex.Get(count)+7+13, "[/plain]")
		BBCodeView1.Text = sb2.ToString

		Wait For (AddBackgroundPanels) Complete (Result As Boolean)

		If Result Then
			steps = steps + 1
			If steps > wordcount Then steps = wordcount

			If steps = wordcount Then
				If steps = 1 Then count = 0
				Main.cutils.ShowNotification3("COMPLETING TEXT SEARCH", "Completing !"&CRLF&"There are no more sophisticated words.", Main.cutils.ICON_WARNING, Main.MainForm, "BOTTOM_CENTER", 2000)
				btnPreviousWord.Enabled = True
				btnNextWord.Enabled = False
				btnPreviousWord.TextColor = xui.Color_Black
				btnNextWord.TextColor = xui.Color_LightGray
				Exit
			Else
				btnPreviousWord.Enabled = steps > 1
				If btnPreviousWord.Enabled Then 
					btnPreviousWord.TextColor = xui.Color_Black
				Else
					btnPreviousWord.TextColor = xui.Color_LightGray
				End If
				btnNextWord.Enabled = True
				btnNextWord.TextColor = xui.Color_Black
				Exit
			End If
		End If
	Loop
Catch
	If steps > wordcount Then steps = wordcount
	count = listIndex.Size - 1
	Return
End Try
End Sub