desc: |
    The basic class definition used by all TUIX-based forms. All TUIX apps that use forms should extend this library.
funs:
    changeMode:
        summary: |
            If a tab uses an "edit"/"cancel" button, this function toggles the mode.
    checkTabHidden:
        summary: |
            This returns whether the named tab is visible.
    currentValue:
        summary: |
            Gets the value of a field, as it current is on the page.
        desc: |
            <p>
                If the field is not on the current tab (and thus not drawn) then 
                the value as defined in the TUIX will be given instead.
            </p>
        returns: |
            The value of the field, or an empty string if this was not set.
    editCancelEnabled:
        summary: |
            Returns whether the cancel button is enabled for the specified tab (i.e. edit mode can be turned off).
    editModeAlwaysOn:
        summary: |
            Returns whether edit mode is always on for the specified tab (i.e. it cannot be turned off).
    editModeOn:
        summary: |
            Returns whether edit mode is on for the specified tab.
    errorOnTab:
        summary: |
            Returns true if there is an error on the specified tab.
    field:
        summary: |
            Returns the TUIX object for the named field on the named tab.
        desc: |
            <p>
                If you don't specify a tab, the current tab is assumed.
            </p>
    fields:
        summary: |
            Returns the TUIX object for the fields on the named tab.
        desc: |
            <p>
                If you don't specify a tab, the current tab is assumed.
            </p>
    fun:
        summary: |
            This returns the full global name of a method in this library.
        desc: |
            <p>
                This is useful for adding JavaScript code inside of "onclicks",
                whilst still keeping access to the current object.
            </p>
    getNextTab:
        summary: |
            This returns the name of the tab that's immediately after the current tab.
        desc: |
            <p>
                Note that this requires the form to have been drawn, this will be undefined before this has happened.
            </p>
    getPrevTab:
        summary: |
            This returns the name of the tab that's immediately before the current tab.
        desc: |
            <p>
                Note that this requires the form to have been drawn, this will be undefined before this has happened.
            </p>
    getTitle:
        summary: |
            Gets the title of the form.
        desc: |
            <p>
                If you have used the title_for_existing_records property,
                this function will apply all of the merge fields.
            </p>
    getValueArrayofArrays:
        summary: |
            Gets all of the values of the fields on each tab, indexed by tab.
        returns: |
            An object, two levels deep.
    goToNextTab:
        summary: |
            Navigates to the tab that's immediately after the current tab, if possible.
    goToPrevTab:
        summary: |
            Navigates to the tab that's immediately before the current tab, if possible.
    isAdminFacing:
        summary: |
            This method should return whether the form is admin facing or not.
        desc: |
            <p>
                The default is true, so if you extend this library and write a visitor-facing
                form then you will need to override this method and return false instead.
            </p>
        returns: |
            You should return true or false.
    mode:
        summary: |
            If this form has a mode-selector, this will return its value.
    revertEnabled:
        summary: |
            Returns whether the revert button is enabled for the specified tab.
    revertTab:
        summary: |
            If a tab uses a "revert" button, this function all of their fields back to their original values.
        desc: |
            <p>
                Any changes the user just made are lost.
            </p>
    sendStateToServer:
        summary: |
            This function returns the full current state of the form.
    sendStateToServerDiff:
        summary: |
            This function returns what has changed on the form since it was last on the server.
        desc: |
            <p>
                Only objects/properties that have changed will be included,
                and only objects/properties that are allowed to be changed on the client will be included,
                to save space.
            </p>
    value:
        summary: |
            Gets the value of a field, as defined in the TUIX.
        returns: |
            The value of the field, or an empty string if this was not set.
