VBScript:
              Function OnProcessFile( fileRelativeName )
                fileRelativeName parameter is the relative file path
                and name relative to the site root (as defined in the project
                settings). It iw without "\" in the beginning. 
                Return value:  The function should return:
                
                  Modified or the same relative file path and name if the
                  file is to be processed
                  Empty string if the file must not be processed.
                
                JScript
                function  OnProcessFile( fileRelativeName )
              
              
                Dim numFile
numFile = 0
                Function OnProcessFile(fileRelName)
  numFile = numFile + 1
  If numFile <= 10 Then
    OnProcessFile = Info("FileRelativePath") & "\" & _
        Info("FileNameOnly") & numFile & "." & Info("FileExtension")  
  Else
    OnProcessFile = ""
  End If
End Function
                This will cause the file to be processed 10 times and the
                resulting files will be named with numeric suffixes
                corresponding to the iteration number (suppose, for example, you
                have exactly 10 different things to put in 10 versions of a file
                based on a template HTML file).
              
              
                If you need the file to be processed once as is default and
                there is no need to change its name you do not need to handle
                this event. Such a code will only duplicate the default
                behavior.
                As the sample above shows the event handling routine is
                responsible for two things - number of iterations (how much
                times the file will be processed) and also for the file name
                selection. Usually repeating the file several times will mean
                generation of set of files based on this one. Thus naming is
                important and also it concerns the links in those files and
                probably other files in the project. Thus the file selection is
                to be done by the CTS. To aid the script, compiler supplies the
                elements of its name and path through the Info
                collection. The script cold easily construct a name by combining
                the parts adding numbers as suffixes/prefixes and may be
                subdirectories to the relative file path.
                Note that the received path in the parameter and the returned
                value are relative path and file names! If the project's
                source root path is c:\project\src and output (compiled)
                path is c:\project\compiled and the processed file is in
                a subdirectory - c:\project\src\dir1\file.htm the event's
                parameter will be "dir1\file.htm". The script
                must return relative path too - for example it could return dir1\file1.htm,
                dir1\file2.htm and so on. When generating many files from
                a single file in the project you are not limited to suffixes and
                prefixes of the file name - you may choose to return for example
                - dir1/1/file1.htm, dir1/2/file.htm etc. The
                naming depends only on your site structure and organization of
                the links between the pages.
                Usually the CTS that generates multiply pages based on single
                file from the project also generates some of the links in them
                (See also the ASPC examples). This could be done using CUSTOM
                tags or modifying <A HREF ...> tags. In the second case
                you will need to handle the OnModifyParser
                event and request certain A tags to be included in the document
                tree. If are not sure what method is better for your case a good
                general rule applicable for many case could be defined - if the
                cross-links that must be generated are many (tens or more on the
                page) parsing A tags will be better - if the cross-links are few
                it is often convenient to construct them in turn - by replacing
                single CUSTOM tag with 2-3 links thus CUSTOM tags will need less
                efforts. Usually the cross-links are not too much (typically
                they define the navigation between the generated set of pages
                and no more than one or two other sets that are also generated).
                The resting links are general links to outside resources or to
                other parts of the site and could be specified as full URL or as
                virtual path in the site (e.g. /news/index.htm). If you choose
                to parse the A tags we recommend you to use some kind of
                "indicator" for the links that must be generated. This
                could be ID attribute - it will define their name in the
                document tree and make them easy to find, or you can add a
                custom attribute and set-up parser during the OnModifyParser
                event to parse only the A tags containing the attribute.