Const ForReading = 1, ForWriting = 2, ForAppending = 8

  Dim modifiedFiles
  modifiedFiles = 0
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")

  Dim Enter, Tab
  Enter = Chr(13) + Chr(10)
  Tab = Chr(9)

  totChanges = 0
  Dim fld
  Set fld = fso.getFolder(".")
  CALL ScanFolder(fld)
  'MsgBox("OK, done. Modified " + CStr(modifiedFiles) + " file(s). " + CStr(totChanges) + " replacement(s) made.")

Sub ScanFolder(folder)
  RenameFilesOfFolder(folder)
  Set subFolders = folder.subFolders
  For Each subFolder In subFolders
    ScanFolder(subFolder)
  Next
End Sub

Sub RenameFilesOfFolder(folder)
Dim files, file
  'MsgBox("Correcting files of folder " + folder.Name)
  Set files = folder.Files
  For Each file In Files
    lastDot = InStrRev(file.Name, ".", -1, 1)
    If lastDot>0 Then

      Ext = UCase(Mid(file.Name, lastDot+1, 255))

      If (Ext="HTML" Or Ext="PHP" Or Ext="INC") And UCase(file.Name)<>"ADBID.INC" Then
        Dim ts
        Set ts = file.OpenAsTextStream(ForReading)
        s = ts.ReadAll()
        Changed = 0

        Call Replace(s, "ą", "", Changed)
        Call Replace(s, "±", "", Changed)
        Call Replace(s, "Ą", "", Changed)
        Call Replace(s, "ć", "", Changed)
        Call Replace(s, "Ć", "", Changed)
        Call Replace(s, "ę", "", Changed)
        Call Replace(s, "Ę", "", Changed)
        Call Replace(s, "ł", "", Changed)
        Call Replace(s, "Ł", "", Changed)
        Call Replace(s, "ń", "", Changed)
        Call Replace(s, "Ń", "", Changed)
        Call Replace(s, "ó", "", Changed)
        Call Replace(s, "Ó", "", Changed)
        Call Replace(s, "ś", "", Changed)
        Call Replace(s, "¶", "", Changed)
        Call Replace(s, "Ś", "", Changed)
        Call Replace(s, "¦", "", Changed)
        Call Replace(s, "ż", "", Changed)
        Call Replace(s, "Ż", "", Changed)
        Call Replace(s, "ź", "", Changed)
        Call Replace(s, "Ź", "", Changed)

        Call Replace(s, "", "", Changed)
        Call Replace(s, "", "", Changed)
        Call Replace(s, "", "", Changed)
        Call Replace(s, "", "", Changed)
        Call Replace(s, "", "", Changed)
        Call Replace(s, "", "", Changed)

        Call Replace(s, "¬", "", Changed)
        Call Replace(s, "Ľ", "", Changed)
        Call Replace(s, "",  "", Changed)
        Call Replace(s, "",  "", Changed)
        Call Replace(s, "",  "", Changed)
        Call Replace(s, "",  "", Changed)
        Call Replace(s, "",  "", Changed)
        Call Replace(s, "",  "", Changed)
        Call Replace(s, "",  "", Changed)
        'Call Replace(s, "",  "", Changed)

        Call Replace(s, "<br>", "<br />", Changed)
        Call Replace(s, " width=""317""", " width=""320""", Changed)
        Call Replace(s, " width=""238""", " width=""240""", Changed)
        Call Replace(s, " height=""317""", " height=""320""", Changed)
        Call Replace(s, " height=""238""", " height=""240""", Changed)
        Call Replace(s, " /></a>", "/>" + Enter + Tab + Tab + Tab + "</a>", Changed)
        ts.Close()
        If Changed>0 Then
          'MsgBox("Replacing " + CStr(Changed) + " string(s) in file " + file.Path)
          Set ts = file.OpenAsTextStream(ForWriting)
          ts.Write(s)
          ts.Close()
          modifiedFiles = modifiedFiles + 1
          totChanges = totChanges + Changed
        End If
      End If

    End If
  Next
End Sub

Sub Replace(sIn, sFrom, sTo, Changed)
  pStart = 1
  Do
    p = InStr(pStart, sIn, sFrom)
    If p<=0 Then
      Exit Do
    End If
    'MsgBox(sFrom + " = " + CStr(p))
    sIn = Mid(sIn, 1, p-1) + sTo + Mid(sIn, p+Len(sFrom), Len(sIn))
    Changed = Changed + 1
    pStart = p + Len(sTo)
  Loop
End Sub
