<?xml version="1.0" encoding="Windows-1255" ?><Script name="Global" id="core.lib:Global" sort="26" urn="core.lib:Global.js" toc="\"><Summary>Contains global Storyboard macros and data structures.</Summary><Copyright>(c) SAP AG 2003-2006. All rights reserved.</Copyright>
<Topics>
<Function name="BEGIN" also="core.gml:ModelRecorder" group="I. GmlScript Macros" sortGroup="true" scope="public" id="core.lib:Global!BEGIN" sort="35" seq="0000"><Summary>Begins a GMLDOM transaction.</Summary><Parameters signature="function:: &lt;b&gt;BEGIN&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;, &lt;i&gt;snapshot&lt;/i&gt;) &amp;rarr; void"><Param name="name" type="String">A display name to assign to the transaction.</Param><Param name="snapshot" type="Object" default="">An object representing a snapshot of the current window at its last stable state prior to the recording (see &lt;q ref=&quot;core.dev:Workspace!captureSnapshot&quot;&gt;captureSnapshot&lt;/q&gt;). If omitted, the snapshot of the window at the exact moment that the recording has began will be used.</Param></Parameters><Return></Return><SeeAlso>&lt;q ref=&quot;core.gml:ModelRecorder&quot;&gt;ModelRecorder&lt;/q&gt;</SeeAlso></Function>
<Function name="CLASS" sortGroup="true" scope="public" id="core.lib:Global!CLASS" sort="35" group="I. GmlScript Macros" seq="0001"><Summary>Gets a specified classifier.</Summary><Parameters signature="function:: &lt;b&gt;CLASS&lt;/b&gt;(&lt;i&gt;className&lt;/i&gt;) &amp;rarr; Function"><Param name="className" type="QName">The classifier name.</Param></Parameters><Return type="Function">The requested classifier.</Return></Function>
<Function name="COMMIT" also="core.gml:ModelRecorder" sortGroup="true" scope="public" id="core.lib:Global!COMMIT" sort="35" group="I. GmlScript Macros" seq="0002"><Summary>Commits a GMLDOM transaction.</Summary><Parameters signature="function:: &lt;b&gt;COMMIT&lt;/b&gt;(&lt;i&gt;snapshot&lt;/i&gt;) &amp;rarr; void"><Param name="snapshot" type="Object" default="">An object representing a snapshot of the current window at its next stable state after the recording. If omitted, the snapshot taken at the beginning of the recording will be used.</Param></Parameters><Return></Return><SeeAlso>&lt;q ref=&quot;core.gml:ModelRecorder&quot;&gt;ModelRecorder&lt;/q&gt;</SeeAlso></Function>
<Function name="HAS_ASPECT" sortGroup="true" scope="public" id="core.lib:Global!HAS_ASPECT" sort="35" group="I. GmlScript Macros" seq="0003"><Summary>Tests whether a given object has an attached aspect of specified type.</Summary><Parameters signature="function:: &lt;b&gt;HAS_ASPECT&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;, &lt;i&gt;aspectName&lt;/i&gt;) &amp;rarr; Boolean"><Param name="obj" type="Object">The object to test.</Param><Param name="aspectName" default="" type="String">The qualified aspect name for more specific test.</Param></Parameters><Return type="Boolean">The test result.</Return></Function>
<Function name="ISA" sortGroup="true" scope="public" id="core.lib:Global!ISA" sort="35" group="I. GmlScript Macros" seq="0004"><Summary>Tests whether a given object is an instance of one or more GmlScript classes.</Summary><Parameters signature="function:: &lt;b&gt;ISA&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;, &lt;i&gt;qname1, qname2, ...&lt;/i&gt;) &amp;rarr; Boolean"><Param name="obj" type="Object">The object to test.</Param><Param name="qname1, qname2, ..." type="String">A variable list of qualified class names to test.</Param></Parameters><Return type="Boolean">The test result.</Return></Function>
<Function name="ROLLBACK" also="core.gml:ModelRecorder" sortGroup="true" scope="public" id="core.lib:Global!ROLLBACK" sort="35" group="I. GmlScript Macros" seq="0005"><Summary>Rolls back a GMLDOM transaction.</Summary><Parameters signature="function:: &lt;b&gt;ROLLBACK&lt;/b&gt;() &amp;rarr; void"></Parameters><Return></Return><SeeAlso>&lt;q ref=&quot;core.gml:ModelRecorder&quot;&gt;ModelRecorder&lt;/q&gt;</SeeAlso></Function>
<Function name="RULE" sortGroup="true" scope="public" id="core.lib:Global!RULE" sort="35" group="I. GmlScript Macros" seq="0006"><Summary>Executes a specified rule.</Summary><Parameters signature="function:: &lt;b&gt;RULE&lt;/b&gt;(&lt;i&gt;id&lt;/i&gt;, &lt;i&gt;args...&lt;/i&gt;) &amp;rarr; Variant"><Param name="id" type="QName">The rule Id.</Param><Param name="args..." type="Arguments">The rule arguments.</Param></Parameters><Return type="Variant">The rule execution result.</Return></Function>
<Function name="CLONE" group="II. JavaScript Macros" sortGroup="true" scope="public" id="core.lib:Global!CLONE" sort="35" seq="0007"><Summary>Clones a given object.</Summary><Parameters signature="function:: &lt;b&gt;CLONE&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;, &lt;i&gt;deep&lt;/i&gt;) &amp;rarr; Object/Array"><Param name="obj" type="Object/Array">An object/array to clone.</Param><Param name="deep" type="Boolean" default="false">Indicates whether to perform a deep or shallow operation.</Param></Parameters><Return type="Object/Array">The cloned object.</Return></Function>
<Function name="ELLIPSIS" sortGroup="true" scope="public" id="core.lib:Global!ELLIPSIS" sort="35" group="II. JavaScript Macros" seq="0008"><Summary>Truncates a string to the specified length and appends an ellipsis symbol, but only in case the string
   was actually truncated.</Summary><Parameters signature="function:: &lt;b&gt;ELLIPSIS&lt;/b&gt;(&lt;i&gt;str&lt;/i&gt;, &lt;i&gt;len&lt;/i&gt;) &amp;rarr; String"><Param name="str" type="String">The string to truncate.</Param><Param name="len" type="String">The maximum length.</Param></Parameters><Return type="String">The truncated string.</Return></Function>
<Function name="ESCAPE" also="core.lib:Global!UNESCAPE" sortGroup="true" scope="public" id="core.lib:Global!ESCAPE" sort="35" group="II. JavaScript Macros" seq="0009"><Summary>Returns an encoded form of the given string that can be read on all computers.</Summary><Parameters signature="function:: &lt;b&gt;ESCAPE&lt;/b&gt;(&lt;i&gt;str&lt;/i&gt;) &amp;rarr; String"><Param name="str" type="String">The string to encode.</Param></Parameters><Return type="String">The endcoded string.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!UNESCAPE&quot;&gt;UNESCAPE&lt;/q&gt;</SeeAlso></Function>
<Function name="ESCAPE_TO_HTML" sortGroup="true" scope="public" id="core.lib:Global!ESCAPE_TO_HTML" sort="35" group="II. JavaScript Macros" seq="0010"><Summary>Returns an encoded form of the given string. This is used for eliminating security hazards.</Summary><Parameters signature="function:: &lt;b&gt;ESCAPE_TO_HTML&lt;/b&gt;(&lt;i&gt;str&lt;/i&gt;) &amp;rarr; String"><Param name="str" type="String">The string to encode.</Param></Parameters><Return type="String">The endcoded string.</Return></Function>
<Function name="ISARRAY" sortGroup="true" scope="public" id="core.lib:Global!ISARRAY" sort="35" group="II. JavaScript Macros" seq="0011"><Summary>Tests whether a given object is an array.</Summary><Parameters signature="function:: &lt;b&gt;ISARRAY&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;) &amp;rarr; Boolean"><Param name="obj" type="Object/Array">An object to test.</Param></Parameters><Return type="Boolean">Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;obj&lt;/i&gt; is an array; otherwise, returns &lt;code&gt;false&lt;/code&gt;</Return></Function>
<Function name="ISDATE" sortGroup="true" scope="public" id="core.lib:Global!ISDATE" sort="35" group="II. JavaScript Macros" seq="0012"><Summary>Tests whether a given object is a Date object.</Summary><Parameters signature="function:: &lt;b&gt;ISDATE&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;) &amp;rarr; Boolean"><Param name="obj" type="Object">An object to test.</Param></Parameters><Return type="Boolean">Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;obj&lt;/i&gt; is a Date object; otherwise, returns &lt;code&gt;false&lt;/code&gt;</Return></Function>
<Function name="ISEMPTY" sortGroup="true" scope="public" id="core.lib:Global!ISEMPTY" sort="35" group="II. JavaScript Macros" seq="0013"><Summary>Tests whether a given object is empty.</Summary><Parameters signature="function:: &lt;b&gt;ISEMPTY&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;) &amp;rarr; Boolean"><Param name="obj" type="Object">An object to test.</Param></Parameters><Return type="Boolean">The test result.</Return></Function>
<Function name="ISFUNC" sortGroup="true" scope="public" id="core.lib:Global!ISFUNC" sort="35" group="II. JavaScript Macros" seq="0014"><Summary>Tests whether a given object is a function.</Summary><Parameters signature="function:: &lt;b&gt;ISFUNC&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;) &amp;rarr; Boolean"><Param name="obj" type="Object">An object to test.</Param></Parameters><Return type="Boolean">Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;obj&lt;/i&gt; is a function; otherwise, returns &lt;code&gt;false&lt;/code&gt;</Return></Function>
<Function name="ISURL" sortGroup="true" scope="public" id="core.lib:Global!ISURL" sort="35" group="II. JavaScript Macros" seq="0015"><Summary>Tests whether a given string represents a valid URL.</Summary><Parameters signature="function:: &lt;b&gt;ISURL&lt;/b&gt;(&lt;i&gt;s&lt;/i&gt;) &amp;rarr; Boolean"><Param name="s" type="url">A string to test.</Param></Parameters><Return type="Boolean">Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;s&lt;/i&gt; is a valid URL; otherwise, returns &lt;code&gt;false&lt;/code&gt;</Return></Function>
<Function name="JOIN" also="core.lib:Global!SPLIT core.lib:Global!JOINN" sortGroup="true" scope="public" id="core.lib:Global!JOIN" sort="35" group="II. JavaScript Macros" seq="0016"><Summary>Concatenates an array of strings into a single string using a specified delimiter.</Summary><Parameters signature="function:: &lt;b&gt;JOIN&lt;/b&gt;(&lt;i&gt;arr&lt;/i&gt;, &lt;i&gt;delim&lt;/i&gt;) &amp;rarr; String"><Param name="arr" type="String[]">An array of strings.</Param><Param name="delim" default="" type="String">Delimiter string (default is an empty string).</Param></Parameters><Return type="String">The concatenated string.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!SPLIT&quot;&gt;SPLIT&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!JOINN&quot;&gt;JOINN&lt;/q&gt;</SeeAlso></Function>
<Function name="JOINN" also="core.lib:Global!SPLITN core.lib:Global!JOIN" sortGroup="true" scope="public" id="core.lib:Global!JOINN" sort="35" group="II. JavaScript Macros" seq="0017"><Summary>Concatenates an array of numbers into a single string using a specified precision.</Summary><Parameters signature="function:: &lt;b&gt;JOINN&lt;/b&gt;(&lt;i&gt;arr&lt;/i&gt;, &lt;i&gt;prec&lt;/i&gt;) &amp;rarr; String"><Param name="arr" type="Number[]">An array of numbers.</Param><Param name="prec" type="Integer" default="4">The precision to use when converting a number to string.</Param></Parameters><Return type="String">The resulting string.</Return><Remarks>The numbers in &lt;i&gt;arr&lt;/i&gt; are rounded to precision &lt;i&gt;prec&lt;/i&gt; and then concatenated with spaces into the result string.</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!SPLITN&quot;&gt;SPLITN&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!JOIN&quot;&gt;JOIN&lt;/q&gt;</SeeAlso></Function>
<Function name="KEYS2OBJ" sortGroup="true" scope="public" id="core.lib:Global!KEYS2OBJ" sort="35" group="II. JavaScript Macros" seq="0018"><Summary>Returns an object built from the keys listed in a given string.</Summary><Parameters signature="function:: &lt;b&gt;KEYS2OBJ&lt;/b&gt;(&lt;i&gt;keys&lt;/i&gt;) &amp;rarr; Object"><Param name="keys" type="String">A string containing the keys separated by whitespace.</Param></Parameters><Return type="Object">An object.</Return></Function>
<Function name="LEX_MAX" also="core.lib:Global!LEX_NUM core.lib:Global!LEX_VAL" sortGroup="true" scope="public" id="core.lib:Global!LEX_MAX" sort="35" group="II. JavaScript Macros" seq="0019"><Summary>Returns the maximum value among a pair of lexical values.</Summary><Parameters signature="function:: &lt;b&gt;LEX_MAX&lt;/b&gt;(&lt;i&gt;lex1&lt;/i&gt;, &lt;i&gt;lex2&lt;/i&gt;) &amp;rarr; String"><Param name="lex1" type="String">The first lexical value.</Param><Param name="lex2" type="String">The second lexical value.</Param></Parameters><Return type="String">The maximum lexical value.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!LEX_NUM&quot;&gt;LEX_NUM&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!LEX_VAL&quot;&gt;LEX_VAL&lt;/q&gt;</SeeAlso></Function>
<Function name="LEX_NEXT" also="core.lib:Global!LEX_NUM core.lib:Global!LEX_VAL" sortGroup="true" scope="public" id="core.lib:Global!LEX_NEXT" sort="35" group="II. JavaScript Macros" seq="0020"><Summary>Returns the next lexical value after a given lexical value.</Summary><Parameters signature="function:: &lt;b&gt;LEX_NEXT&lt;/b&gt;(&lt;i&gt;lex&lt;/i&gt;) &amp;rarr; String"><Param name="lex" type="String">The input lexical value.</Param></Parameters><Return type="String">The next lexical value.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!LEX_NUM&quot;&gt;LEX_NUM&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!LEX_VAL&quot;&gt;LEX_VAL&lt;/q&gt;</SeeAlso></Function>
<Function name="LEX_NUM" also="core.lib:Global!LEX_VAL core.lib:Global!LEX_NEXT" sortGroup="true" scope="public" id="core.lib:Global!LEX_NUM" sort="35" group="II. JavaScript Macros" seq="0021"><Summary>Converts a lexical sequence of letters (A,B,C,...Z,AA,AB,...) into the number they represent.</Summary><Parameters signature="function:: &lt;b&gt;LEX_NUM&lt;/b&gt;(&lt;i&gt;lex&lt;/i&gt;) &amp;rarr; Integer"><Param name="lex" type="String">The lexical value to convert.</Param></Parameters><Return type="Integer">The result numeric value.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!LEX_VAL&quot;&gt;LEX_VAL&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!LEX_NEXT&quot;&gt;LEX_NEXT&lt;/q&gt;</SeeAlso></Function>
<Function name="LEX_VAL" also="core.lib:Global!LEX_NUM core.lib:Global!LEX_NEXT" sortGroup="true" scope="public" id="core.lib:Global!LEX_VAL" sort="35" group="II. JavaScript Macros" seq="0022"><Summary>Converts a positive integer to a lexical sequence of letters (A,B,C,...Z,AA,AB,...).</Summary><Parameters signature="function:: &lt;b&gt;LEX_VAL&lt;/b&gt;(&lt;i&gt;n&lt;/i&gt;) &amp;rarr; String"><Param name="n" type="Integer">The number to convert.</Param></Parameters><Return type="String">The result lexical value.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!LEX_NUM&quot;&gt;LEX_NUM&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!LEX_NEXT&quot;&gt;LEX_NEXT&lt;/q&gt;</SeeAlso></Function>
<Function name="OBJ2KEYS" sortGroup="true" scope="public" id="core.lib:Global!OBJ2KEYS" sort="35" group="II. JavaScript Macros" seq="0023"><Summary>Returns a string listing the keys of the items in a given object.</Summary><Parameters signature="function:: &lt;b&gt;OBJ2KEYS&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;, &lt;i&gt;sort&lt;/i&gt;) &amp;rarr; String"><Param name="obj" type="Object">An object.</Param><Param name="sort" type="Boolean" default="false">Indicate whether to sort the results.</Param></Parameters><Return type="String">A string containing the object item keys separated by whitespace.</Return></Function>
<Function name="QNAME" sortGroup="true" scope="public" id="core.lib:Global!QNAME" sort="35" group="II. JavaScript Macros" seq="0024"><Summary>Validate field names:
        Only the characters a-z (ignoring case), 0-9 and '_' (underscore) are allowed.
        Any sequence of unallowed characters is replaced with one '_'.
        Name can begin with the characters a-z (ignoring case) or '_'.
        If it begins with a number than the character 'F' is added in the beginning.</Summary><Parameters signature="function:: &lt;b&gt;QNAME&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;) &amp;rarr; String"><Param name="name">The field name.</Param></Parameters><Return type="String">New valid name according to the field name conventions.</Return></Function>
<Function name="QUOTE" sortGroup="true" scope="public" id="core.lib:Global!QUOTE" sort="35" group="II. JavaScript Macros" seq="0025"><Summary>Returns the given string enclosed in single quotes.</Summary><Parameters signature="function:: &lt;b&gt;QUOTE&lt;/b&gt;(&lt;i&gt;str&lt;/i&gt;) &amp;rarr; String"><Param name="str" type="String">The string to quote.</Param></Parameters><Return type="String">The quoted string.</Return></Function>
<Function name="SORT" also="core.lib:Global!SORTN" sortGroup="true" scope="public" id="core.lib:Global!SORT" sort="35" group="II. JavaScript Macros" seq="0026"><Summary>Sorts an array of objects by a specified slot in alphabetical order.</Summary><Parameters signature="function:: &lt;b&gt;SORT&lt;/b&gt;(&lt;i&gt;arr&lt;/i&gt;, &lt;i&gt;slot&lt;/i&gt;) &amp;rarr; Array"><Param name="arr" type="Object[]">An array to sort.</Param><Param name="slot" type="String">The slot to sort by (must exist in all object items).</Param></Parameters><Return type="Array">The sorted object items.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!SORTN&quot;&gt;SORTN&lt;/q&gt;</SeeAlso></Function>
<Function name="SORTF" sortGroup="true" scope="public" id="core.lib:Global!SORTF" sort="35" group="II. JavaScript Macros" seq="0027"><Summary>Sorts an array of objects by a specified compare function.</Summary><Parameters signature="function:: &lt;b&gt;SORTF&lt;/b&gt;(&lt;i&gt;arr&lt;/i&gt;, &lt;i&gt;f&lt;/i&gt;) &amp;rarr; Array"><Param name="arr" type="Object[]">An array to sort.</Param><Param name="f" type="String">The function to sort by.</Param></Parameters><Return type="Array">The sorted object items.</Return></Function>
<Function name="SORTN" also="core.lib:Global!SORT" sortGroup="true" scope="public" id="core.lib:Global!SORTN" sort="35" group="II. JavaScript Macros" seq="0028"><Summary>Sorts an array of objects by a specified slot in numeric order.</Summary><Parameters signature="function:: &lt;b&gt;SORTN&lt;/b&gt;(&lt;i&gt;arr&lt;/i&gt;, &lt;i&gt;slot&lt;/i&gt;) &amp;rarr; Array"><Param name="arr" type="Object[]">An array to sort.</Param><Param name="slot" type="String">The slot to sort by (must exist in all object items).</Param></Parameters><Return type="Array">The sorted object items.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!SORT&quot;&gt;SORT&lt;/q&gt;</SeeAlso></Function>
<Function name="SPLIT" also="core.lib:Global!JOIN core.lib:Global!SPLITN" sortGroup="true" scope="public" id="core.lib:Global!SPLIT" sort="35" group="II. JavaScript Macros" seq="0029"><Summary>Splits a string into an array of substrings separated by a specified delimiter.</Summary><Parameters signature="function:: &lt;b&gt;SPLIT&lt;/b&gt;(&lt;i&gt;str&lt;/i&gt;, &lt;i&gt;delim&lt;/i&gt;) &amp;rarr; String[]"><Param name="str">A string.</Param><Param name="delim" type="String" default="space">Delimiter string or regular expression.</Param></Parameters><Return type="String[]">The resulting array of substrings.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!JOIN&quot;&gt;JOIN&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!SPLITN&quot;&gt;SPLITN&lt;/q&gt;</SeeAlso></Function>
<Function name="SPLITN" also="core.lib:Global!JOINN core.lib:Global!SPLIT" sortGroup="true" scope="public" id="core.lib:Global!SPLITN" sort="35" group="II. JavaScript Macros" seq="0030"><Summary>Splits a string into an array of numbers.</Summary><Parameters signature="function:: &lt;b&gt;SPLITN&lt;/b&gt;(&lt;i&gt;str&lt;/i&gt;, &lt;i&gt;len&lt;/i&gt;) &amp;rarr; Number[]"><Param name="str">A string.</Param><Param name="len">Expected array length.</Param></Parameters><Return type="Number[]">The resulting array of numbers.</Return><Remarks>The &lt;i&gt;str&lt;/i&gt; string is assumed to contain a list of floating-point numbers separated by whitespace.</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!JOINN&quot;&gt;JOINN&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!SPLIT&quot;&gt;SPLIT&lt;/q&gt;</SeeAlso></Function>
<Function name="STR" also="core.lib:Global!VAL" sortGroup="true" scope="public" id="core.lib:Global!STR" sort="35" group="II. JavaScript Macros" seq="0031"><Summary>Returns a formatted string representation of the given object.</Summary><Parameters signature="function:: &lt;b&gt;STR&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;, &lt;i&gt;max&lt;/i&gt;, &lt;i&gt;indent&lt;/i&gt;) &amp;rarr; String"><Param name="obj" type="Object">Any JavaScript object.</Param><Param name="max" type="Integer" default="20">Maximum depth to scan.</Param><Param name="indent" type="Integer" default="0">Number of spaces to use for indentation (0 means no indentation).</Param></Parameters><Return type="String">The formatted object string.</Return><Remarks>If &lt;code&gt;obj&lt;/code&gt; is a Javascript collection, then &lt;code&gt;STR&lt;/code&gt; prints all the object's properties and their value, recursively until &lt;code&gt;max&lt;/code&gt; depth.&lt;BR/&gt;
   If &lt;code&gt;obj&lt;/code&gt; contains circular dependencies, the result of calling &lt;code&gt;STR(obj)&lt;/code&gt; will be a very long string with impact on performance.
   &lt;BR/&gt;
   Therefore, always be sure that either your object is small enough, or that &lt;code&gt;max&lt;/code&gt; is limited to a small value.
   Never use &lt;code&gt;STR&lt;/code&gt; on GML objects without limiting &lt;code&gt;max,&lt;/code&gt; becasue all GML objects contain circular dependencies:&lt;BR/&gt;
   &lt;code&gt;
   obj.parent = p;&lt;BR/&gt;
   p.children[obj.id] = obj;&lt;BR/&gt;
   &lt;/code&gt;</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!VAL&quot;&gt;VAL&lt;/q&gt;</SeeAlso></Function>
<Function name="UNESCAPE" also="core.lib:Global!ESCAPE" sortGroup="true" scope="public" id="core.lib:Global!UNESCAPE" sort="35" group="II. JavaScript Macros" seq="0032"><Summary>Returns the decoded form of a string encoded with the &lt;q ref=&quot;core.lib:Global!ESCAPE&quot;&gt;ESCAPE&lt;/q&gt;.</Summary><Parameters signature="function:: &lt;b&gt;UNESCAPE&lt;/b&gt;(&lt;i&gt;str&lt;/i&gt;) &amp;rarr; String"><Param name="str" type="String">The string to decode.</Param></Parameters><Return type="String">The decoded string.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!ESCAPE&quot;&gt;ESCAPE&lt;/q&gt;</SeeAlso></Function>
<Function name="VAL" also="core.lib:Global!STR" sortGroup="true" scope="public" id="core.lib:Global!VAL" sort="35" group="II. JavaScript Macros" seq="0033"><Summary>Parses a string representing an object.</Summary><Parameters signature="function:: &lt;b&gt;VAL&lt;/b&gt;(&lt;i&gt;str&lt;/i&gt;) &amp;rarr; Variant"><Param name="str">Any valid string representation of a JavaScript object.</Param></Parameters><Return type="Variant">The parsed object.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!STR&quot;&gt;STR&lt;/q&gt;</SeeAlso></Function>
<Function name="DISABLE" group="III. Window Control" sortGroup="true" scope="public" id="core.lib:Global!DISABLE" sort="35" seq="0034"><Summary>Disables a given HTML object.</Summary><Parameters signature="function:: &lt;b&gt;DISABLE&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;, &lt;i&gt;flag&lt;/i&gt;) &amp;rarr; void"><Param name="obj" type="HtmlElement">An HTML object.</Param><Param name="flag" type="Boolean">&lt;code&gt;true=disabled,&lt;/code&gt; &lt;code&gt;false=enabled&lt;/code&gt;</Param></Parameters><Return></Return></Function>
<Function name="FLIPVAR" sortGroup="true" scope="public" id="core.lib:Global!FLIPVAR" sort="35" group="III. Window Control" seq="0035"><Summary>Toggles the value of a boolean variable.</Summary><Parameters signature="function:: &lt;b&gt;FLIPVAR&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;) &amp;rarr; void"><Param name="name" type="QName">Variable name.</Param></Parameters><Return></Return></Function>
<Function name="FOCUS" sortGroup="true" scope="public" id="core.lib:Global!FOCUS" sort="35" group="III. Window Control" seq="0036"><Summary>Moves the input focus to a given HTML object.</Summary><Parameters signature="function:: &lt;b&gt;FOCUS&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;) &amp;rarr; void"><Param name="obj" type="HtmlElement">An HTML object.</Param></Parameters><Return></Return></Function>
<Function name="GETTEMP" sortGroup="true" scope="public" id="core.lib:Global!GETTEMP" sort="35" group="III. Window Control" seq="0037"><Summary>Gets the value of a temporary variable.</Summary><Parameters signature="function:: &lt;b&gt;GETTEMP&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;, &lt;i&gt;default&lt;/i&gt;) &amp;rarr; Variant"><Param name="name" type="QName">Variable name.</Param><Param name="default">Default value to use in case the variable is empty or undefined.</Param></Parameters><Return type="Variant">The requested variable value.</Return></Function>
<Function name="GETVAR" sortGroup="true" scope="public" id="core.lib:Global!GETVAR" sort="35" group="III. Window Control" seq="0038"><Summary>Gets the value of a specified kit or system variable.</Summary><Parameters signature="function:: &lt;b&gt;GETVAR&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;, &lt;i&gt;default&lt;/i&gt;) &amp;rarr; Variant"><Param name="name" type="QName">Variable name.</Param><Param name="default">Default value to use in case the variable is empty or undefined.</Param></Parameters><Return type="Variant">The requested variable value.</Return><Remarks>In J2EE server, those variables are persisted on the server and on the IIS version it is persisted in
		the client. A default value may be supplied by a kit on the variable definition. (Those defaults would
		have to be known on the server implementation as well because if the user does not change the default,
		no value will be stored on the server for that user).</Remarks></Function>
<Function name="ISSUP" sortGroup="true" scope="public" id="core.lib:Global!ISSUP" sort="35" group="III. Window Control" seq="0039"><Summary>Checks if a feature is supported class, property, value, or feature is supported.</Summary><Parameters signature="function:: &lt;b&gt;ISSUP&lt;/b&gt;(&lt;i&gt;key1&lt;/i&gt;, &lt;i&gt;key2&lt;/i&gt;, &lt;i&gt;key3&lt;/i&gt;, &lt;i&gt;dflt&lt;/i&gt;) &amp;rarr; Boolean"><Param name="key1" type="String">First key to search, e.g. fully-qualified class name.</Param><Param name="key2" type="String">Second key to search, e.g. case-sensitive property name.</Param><Param name="key3" type="String">Third key to search, e.g. case-sensitive property value.</Param><Param name="dflt" type="Boolean">Value to return if support for the feature is undefined. If ommited, &lt;code&gt;false&lt;/code&gt; is returned in such case.</Param></Parameters><Return type="Boolean">&lt;code&gt;true&lt;/code&gt; if the requested feature is supported, &lt;code&gt;false&lt;/code&gt; otherwise.</Return></Function>
<Function name="LISTEN" sortGroup="true" scope="public" id="core.lib:Global!LISTEN" sort="35" group="III. Window Control" seq="0040"><Summary>Registers an event listener.</Summary><Parameters signature="function:: &lt;b&gt;LISTEN&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;, &lt;i&gt;func&lt;/i&gt;, &lt;i&gt;scope&lt;/i&gt;) &amp;rarr; void"><Param name="name" type="String">The event name.</Param><Param name="func" type="Function">The event listener.</Param><Param name="scope" type="String" default="visible">Indicates the event listener's scope, according to: &lt;code&gt;visible&lt;/code&gt; = only when the containing window is visible (the default), &lt;code&gt;always&lt;/code&gt; = throughout the containing window's lifetime. Applies only to environment events.</Param></Parameters><Return></Return><Remarks>&lt;p&gt;Use this macro to register efficient event listeners. The Storyboard framework will ensure that any
   event listeners registered using this macro are attached just in time, and detached when no longer needed.&lt;/p&gt;
   &lt;p&gt;Event names are unqualified and case-insensitive. Event names are resolved in the following order:&lt;/p&gt;
   &lt;ol&gt;&lt;li&gt;Builtin window events (see table below) &lt;/li&gt;&lt;li&gt;Installed GMLDOM events (available events depend on current kits configuration) &lt;/li&gt;&lt;li&gt;Environment events (see &lt;q ref=&quot;core.env:Environment&quot;&gt;Environment&lt;/q&gt;) &lt;/li&gt;&lt;/ol&gt;
   &lt;p&gt;Even though it is not required, you can still qualify GMLDOM events with the $DOM prefix (e.g., $DOM.onUpdateObject) and
   environment events with the $ENV prefix (e.g., &lt;code&gt;$ENV.onModelOpen).&lt;/code&gt; Any other Storyboard events must be qualified
   using their respective module prefix (e.g., $WIN.onWindowChange).&lt;/p&gt;
   &lt;p&gt;The builtin window events are listed below:&lt;/p&gt;
   &lt;table class=&quot;SIMPLE&quot;&gt;&lt;tr&gt;&lt;td class=&quot;H V&quot;&gt;Event &lt;/td&gt;&lt;td class=H&gt;Description &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;onInit &lt;/td&gt;&lt;td&gt;Fires once during window initialization (before first call to &lt;code&gt;onShow)&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;onExit &lt;/td&gt;&lt;td&gt;Fires once during window termination (after last call to &lt;code&gt;onHide)&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;onShow &lt;/td&gt;&lt;td&gt;Fires whenever the window is exposed (applicable for boards, floating windows, and task panels) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;onHide &lt;/td&gt;&lt;td&gt;Fires whenever the window is concealed (applicable for boards, floating windows, and task panels) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;onResize &lt;/td&gt;&lt;td&gt;Fires whenever the window is resized &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;onOptionsMenu &lt;/td&gt;&lt;td&gt;Fires whenever the window's options menu is requested (applicable only for task panels) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;onSettingsChange &lt;/td&gt;&lt;td&gt;Fires whenever a Storyboard settings value is changed &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;onStudioExit &lt;/td&gt;&lt;td&gt;Fires when the Storyboard is being exited &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</Remarks></Function>
<Function name="SETTEMP" sortGroup="true" scope="public" id="core.lib:Global!SETTEMP" sort="35" group="III. Window Control" seq="0041"><Summary>Sets the value of a temporary variable.</Summary><Parameters signature="function:: &lt;b&gt;SETTEMP&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;, &lt;i&gt;value&lt;/i&gt;) &amp;rarr; void"><Param name="name" type="QName">Variable name.</Param><Param name="value">New variable value (if the value is empty or omitted, the variable will be deleted).</Param></Parameters><Return></Return></Function>
<Function name="SETVAR" sortGroup="true" scope="public" id="core.lib:Global!SETVAR" sort="35" group="III. Window Control" seq="0042"><Summary>Sets the value of a specified kit or system variable.</Summary><Parameters signature="function:: &lt;b&gt;SETVAR&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;, &lt;i&gt;value&lt;/i&gt;) &amp;rarr; void"><Param name="name" type="QName">Variable name.</Param><Param name="value">New variable value (if the value is empty or omitted, the variable will be deleted).</Param></Parameters><Return></Return></Function>
<Function name="SIGNAL" sortGroup="true" scope="public" id="core.lib:Global!SIGNAL" sort="35" group="III. Window Control" seq="0043"><Summary>Executes a specified signal.</Summary><Parameters signature="function:: &lt;b&gt;SIGNAL&lt;/b&gt;(&lt;i&gt;def&lt;/i&gt;, &lt;i&gt;args...&lt;/i&gt;) &amp;rarr; Variant"><Param name="def" type="SIGNAL_DEF" typeRef="&lt;q ref=&quot;core.lib:Global!SIGNAL_DEF&quot;&gt;SIGNAL_DEF&lt;/q&gt;">A signal definition to execute.</Param><Param name="args..." type="Arguments">A variable list of arguments that, if provided, supercedes any arguments embedded in the signal.</Param></Parameters><Return type="Variant">Returns the signal execution results, if any.</Return></Function>
<Function name="WCENTER" also="core.lib:Global!WMOVE core.lib:Global!WRESIZE" sortGroup="true" scope="public" id="core.lib:Global!WCENTER" sort="35" group="III. Window Control" seq="0044"><Summary>Resizes the window and centers it over a specified target.</Summary><Parameters signature="function:: &lt;b&gt;WCENTER&lt;/b&gt;(&lt;i&gt;width&lt;/i&gt;, &lt;i&gt;height&lt;/i&gt;, &lt;i&gt;centerOn&lt;/i&gt;) &amp;rarr; void"><Param name="width" type="Integer" default="clientWidth">Window width in pixels.</Param><Param name="height" type="Integer" default="clientHeight">Window height in pixels.</Param><Param name="centerOn" default="STUDIO" type="enum">Target object for the centering (SCREEN | STUDIO | WORKSPACE | PARENT).</Param></Parameters><Return></Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!WMOVE&quot;&gt;WMOVE&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!WRESIZE&quot;&gt;WRESIZE&lt;/q&gt;</SeeAlso></Function>
<Function name="WCLOSE" also="core.lib:Global!WPARAM" sortGroup="true" scope="public" id="core.lib:Global!WCLOSE" sort="35" group="III. Window Control" seq="0045"><Summary>Closes the window and returns the given value.</Summary><Parameters signature="function:: &lt;b&gt;WCLOSE&lt;/b&gt;(&lt;i&gt;value&lt;/i&gt;) &amp;rarr; void"><Param name="value" default="" type="Variant">Optional value to return from the window.</Param></Parameters><Return></Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!WPARAM&quot;&gt;WPARAM&lt;/q&gt;</SeeAlso></Function>
<Function name="WMOVE" also="core.lib:Global!WRESIZE core.lib:Global!WCENTER" sortGroup="true" scope="public" id="core.lib:Global!WMOVE" sort="35" group="III. Window Control" seq="0046"><Summary>Moves the window to a specified position.</Summary><Parameters signature="function:: &lt;b&gt;WMOVE&lt;/b&gt;(&lt;i&gt;left&lt;/i&gt;, &lt;i&gt;top&lt;/i&gt;) &amp;rarr; void"><Param name="left" type="Integer">Window left coordinate.</Param><Param name="top" type="Integer">Window top coordinate.</Param></Parameters><Return></Return><Remarks>The coordinates are relative to the screen for a top-level window, and relative to
      the container for an inline frame.</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!WRESIZE&quot;&gt;WRESIZE&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!WCENTER&quot;&gt;WCENTER&lt;/q&gt;</SeeAlso></Function>
<Function name="WPARAM" also="core.lib:Global!WCLOSE" sortGroup="true" scope="public" id="core.lib:Global!WPARAM" sort="35" group="III. Window Control" seq="0047"><Summary>Gets the value of a specified window parameter.</Summary><Parameters signature="function:: &lt;b&gt;WPARAM&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;) &amp;rarr; Variant"><Param name="name" type="String" default="null">The parameter name.</Param></Parameters><Return type="Variant">The parameter value.</Return><Remarks>If &lt;i&gt;name&lt;/i&gt; is omitted, the complete window parameters object is returned.</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!WCLOSE&quot;&gt;WCLOSE&lt;/q&gt;</SeeAlso></Function>
<Function name="WRESIZE" also="core.lib:Global!WMOVE core.lib:Global!WCENTER" sortGroup="true" scope="public" id="core.lib:Global!WRESIZE" sort="35" group="III. Window Control" seq="0048"><Summary>Resizes the window to a specified size.</Summary><Parameters signature="function:: &lt;b&gt;WRESIZE&lt;/b&gt;(&lt;i&gt;width&lt;/i&gt;, &lt;i&gt;height&lt;/i&gt;) &amp;rarr; void"><Param name="width" type="Integer">Window width in pixels.</Param><Param name="height" type="Integer">Window height in pixels.</Param></Parameters><Return></Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!WMOVE&quot;&gt;WMOVE&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!WCENTER&quot;&gt;WCENTER&lt;/q&gt;</SeeAlso></Function>
<Function name="WRITE" sortGroup="true" scope="public" id="core.lib:Global!WRITE" sort="35" group="III. Window Control" seq="0049"><Summary>Writes a message on the output console.</Summary><Parameters signature="function:: &lt;b&gt;WRITE&lt;/b&gt;(&lt;i&gt;msg&lt;/i&gt;) &amp;rarr; void"><Param name="msg" type="String">The message to write.</Param></Parameters><Return></Return></Function>
<Function name="WSETUP" sortGroup="true" scope="public" id="core.lib:Global!WSETUP" sort="35" group="III. Window Control" seq="0050"><Summary>Setups the current window for work in the Storyboard framework.</Summary><Parameters signature="function:: &lt;b&gt;WSETUP&lt;/b&gt;(&lt;i&gt;title&lt;/i&gt;, &lt;i&gt;width&lt;/i&gt;, &lt;i&gt;height&lt;/i&gt;, &lt;i&gt;centerOn&lt;/i&gt;) &amp;rarr; void"><Param name="title" type="String">Title to display on the window caption.</Param><Param name="width" type="Integer">Window width in pixels.</Param><Param name="height" type="Integer">Window height in pixels.</Param><Param name="centerOn" default="STUDIO" type="enum">Target object for the centering (SCREEN | STUDIO | WORKSPACE | PARENT).</Param></Parameters><Return></Return><Remarks>This function must be called at the beginning of the global JavaScript code in any window,
      before attempting to invoke any Storyboard functionality.</Remarks></Function>
<Function name="AMODAL" also="core.lib:Global!MODAL core.lib:Global!SUBWIN" group="IV. Dialogs and Prompts" sortGroup="true" scope="public" id="core.lib:Global!AMODAL" sort="35" seq="0051"><Summary>Opens a modeless dialog box.</Summary><Parameters signature="function:: &lt;b&gt;AMODAL&lt;/b&gt;(&lt;i&gt;url&lt;/i&gt;, &lt;i&gt;params&lt;/i&gt;, &lt;i&gt;resize&lt;/i&gt;) &amp;rarr; void"><Param name="url" type="String">Dialog box url.</Param><Param name="params" type="Variant" default="n">Dialog box parameters object.</Param><Param name="resize" type="Boolean" default="false">Allow resizing the dialog box.</Param></Parameters><Return></Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!MODAL&quot;&gt;MODAL&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!SUBWIN&quot;&gt;SUBWIN&lt;/q&gt;</SeeAlso></Function>
<Function name="CLOSE_SUBWIN" sortGroup="true" scope="public" id="core.lib:Global!CLOSE_SUBWIN" sort="35" group="IV. Dialogs and Prompts" seq="0052"><Summary>Close a floating sub-window.</Summary><Parameters signature="function:: &lt;b&gt;CLOSE_SUBWIN&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;) &amp;rarr; void"><Param name="name" type="String" default="_blank">Sub-window external name.</Param></Parameters><Return></Return></Function>
<Function name="CONFIRM" sortGroup="true" scope="public" id="core.lib:Global!CONFIRM" sort="35" group="IV. Dialogs and Prompts" seq="0053"><Summary>Opens a modal confirmation with a specified set of buttons.</Summary><Parameters signature="function:: &lt;b&gt;CONFIRM&lt;/b&gt;(&lt;i&gt;msg&lt;/i&gt;, &lt;i&gt;buttons&lt;/i&gt;, &lt;i&gt;moreinfo&lt;/i&gt;, &lt;i&gt;showmore&lt;/i&gt;) &amp;rarr; Number"><Param name="msg" type="String">The message to display.</Param><Param name="buttons" default="Ok Cancel" type="String">A whitespace-separated combination of the buttons to show: Cancel, No, Ok, Yes, Retry.</Param><Param name="moreinfo" default="" type="String">More information to display.</Param><Param name="showmore" default="false" type="Boolean">Indicates whether the &quot;more information&quot;, if provided, should be initially displayed.</Param></Parameters><Return type="Number">0=&lt;code&gt;Cancel,&lt;/code&gt; -1=&lt;code&gt;No,&lt;/code&gt; 1=&lt;code&gt;Ok,&lt;/code&gt; &lt;code&gt;Yes,&lt;/code&gt; or &lt;code&gt;Retry&lt;/code&gt;</Return><Remarks>The &lt;code&gt;Ok,&lt;/code&gt; &lt;code&gt;Yes,&lt;/code&gt; and &lt;code&gt;Retry&lt;/code&gt; buttons are mutually exclusive.</Remarks></Function>
<Function name="CONFIRMONCE" sortGroup="true" scope="public" id="core.lib:Global!CONFIRMONCE" sort="35" group="IV. Dialogs and Prompts" seq="0054"><Summary>Opens a modal confirmation with a specified set of buttons.</Summary><Parameters signature="function:: &lt;b&gt;CONFIRMONCE&lt;/b&gt;(&lt;i&gt;mainMsg&lt;/i&gt;, &lt;i&gt;neverShowMsg&lt;/i&gt;, &lt;i&gt;globalVariableId&lt;/i&gt;) &amp;rarr; Number"><Param name="mainMsg" type="String">The main message to display.</Param><Param name="neverShowMsg" type="String">The message that indicate to never open this dialog again.</Param><Param name="globalVariableId" type="String">The eviroment variable to be set when the user check the never show check box.</Param></Parameters><Return type="Number">0=&lt;code&gt;Cancel,&lt;/code&gt; 1=&lt;code&gt;Continue&lt;/code&gt;</Return><Remarks>The globalVariableId should be of a boolean type.</Remarks></Function>
<Function name="CRITICAL" sortGroup="true" scope="public" id="core.lib:Global!CRITICAL" sort="35" group="IV. Dialogs and Prompts" seq="0055"><Summary>Shows a critical error message.</Summary><Parameters signature="function:: &lt;b&gt;CRITICAL&lt;/b&gt;(&lt;i&gt;msg&lt;/i&gt;, &lt;i&gt;moreinfo&lt;/i&gt;, &lt;i&gt;showmore&lt;/i&gt;) &amp;rarr; void"><Param name="msg" type="String">The error message to display.</Param><Param name="moreinfo" default="" type="String">More information to display.</Param><Param name="showmore" default="false" type="Boolean">Indicates whether the &quot;more information&quot;, if provided, should be initially displayed.</Param></Parameters><Return></Return></Function>
<Function name="GET_BOX" sortGroup="true" scope="public" id="core.lib:Global!GET_BOX" sort="35" group="IV. Dialogs and Prompts" seq="0056"><Summary>Gets the bounding box of a boxed object.</Summary><Parameters signature="function:: &lt;b&gt;GET_BOX&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;) &amp;rarr; &lt;q ref=&quot;core.lib:Global!BOUNDING_BOX&quot;&gt;BOUNDING_BOX&lt;/q&gt;"><Param name="obj" type="HtmlElement">A boxed object.</Param></Parameters><Return type="BOUNDING_BOX" typeRef="&lt;q ref=&quot;core.lib:Global!BOUNDING_BOX&quot;&gt;BOUNDING_BOX&lt;/q&gt;">The object's bounding box.</Return></Function>
<Function name="INFORM" also="core.lib:Global!PROMPT" sortGroup="true" scope="public" id="core.lib:Global!INFORM" sort="35" group="IV. Dialogs and Prompts" seq="0057"><Summary>Opens an auto-fit popup to display an information message.</Summary><Parameters signature="function:: &lt;b&gt;INFORM&lt;/b&gt;(&lt;i&gt;msg&lt;/i&gt;, &lt;i&gt;x&lt;/i&gt;, &lt;i&gt;y&lt;/i&gt;, &lt;i&gt;target&lt;/i&gt;, &lt;i&gt;align&lt;/i&gt;) &amp;rarr; void"><Param name="msg" type="String">Information message.</Param><Param name="x" type="Integer">Horizontal displacement, relative to window (or to %3 if provided).</Param><Param name="y" type="Integer">Vertical displacement, relative to window (or to %3 if provided).</Param><Param name="target" type="HtmlElement" default="null">Anchor target.</Param><Param name="align" type="Enum" default="left top">Anchor alignment: [left|center:right] [top|middle|bottom].</Param></Parameters><Return></Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!PROMPT&quot;&gt;PROMPT&lt;/q&gt;</SeeAlso></Function>
<Function name="INPUT" sortGroup="true" scope="public" id="core.lib:Global!INPUT" sort="35" group="IV. Dialogs and Prompts" seq="0058"><Summary>Opens a modal search dialog.</Summary><Parameters signature="function:: &lt;b&gt;INPUT&lt;/b&gt;(&lt;i&gt;msg&lt;/i&gt;, &lt;i&gt;win&lt;/i&gt;) &amp;rarr; void"><Param name="msg" type="String">The message to display.</Param><Param name="win" type="String">The parent window.</Param></Parameters><Return></Return></Function>
<Function name="INTERSECT" sortGroup="true" scope="public" id="core.lib:Global!INTERSECT" sort="35" group="IV. Dialogs and Prompts" seq="0059"><Summary>Returns the intersection of two collections of objects.</Summary><Parameters signature="function:: &lt;b&gt;INTERSECT&lt;/b&gt;(&lt;i&gt;collection1&lt;/i&gt;, &lt;i&gt;collection2&lt;/i&gt;) &amp;rarr; Object[id]"><Param name="collection1" type="Object[id]">The first collection of objects.</Param><Param name="collection2" type="Object[id]">The second collection of objects.</Param></Parameters><Return type="Object[id]">The intersection collection.</Return></Function>
<Function name="LAYOUT_BOX" sortGroup="true" scope="public" id="core.lib:Global!LAYOUT_BOX" sort="35" group="IV. Dialogs and Prompts" seq="0060"><Summary>Layouts a boxed object and all its contained boxes.</Summary><Parameters signature="function:: &lt;b&gt;LAYOUT_BOX&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;) &amp;rarr; void"><Param name="obj" type="HtmlElement">A boxed object.</Param></Parameters><Return></Return></Function>
<Function name="MODAL" also="core.lib:Global!AMODAL core.lib:Global!SUBWIN" sortGroup="true" scope="public" id="core.lib:Global!MODAL" sort="35" group="IV. Dialogs and Prompts" seq="0061"><Summary>Opens a modal dialog box.</Summary><Parameters signature="function:: &lt;b&gt;MODAL&lt;/b&gt;(&lt;i&gt;url&lt;/i&gt;, &lt;i&gt;params&lt;/i&gt;, &lt;i&gt;resize&lt;/i&gt;) &amp;rarr; void"><Param name="url" type="String">Dialog box url.</Param><Param name="params" type="Variant" default="n">Dialog box parameters object.</Param><Param name="resize" type="Boolean" default="false">Allow resizing the dialog box.</Param></Parameters><Return></Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!AMODAL&quot;&gt;AMODAL&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!SUBWIN&quot;&gt;SUBWIN&lt;/q&gt;</SeeAlso></Function>
<Function name="NYI" sortGroup="true" scope="public" id="core.lib:Global!NYI" sort="35" group="IV. Dialogs and Prompts" seq="0062"><Summary>Prompts a &quot;not yet implemented&quot; message.</Summary><Parameters signature="function:: &lt;b&gt;NYI&lt;/b&gt;() &amp;rarr; void"></Parameters><Return></Return></Function>
<Function name="PROGRESS" sortGroup="true" scope="public" id="core.lib:Global!PROGRESS" sort="35" group="IV. Dialogs and Prompts" seq="0063"><Summary>Opens a popup to display a progress indicator.</Summary><Parameters signature="function:: &lt;b&gt;PROGRESS&lt;/b&gt;(&lt;i&gt;msg&lt;/i&gt;, &lt;i&gt;pct&lt;/i&gt;, &lt;i&gt;title&lt;/i&gt;) &amp;rarr; void"><Param name="msg" type="String">Progress message.</Param><Param name="pct" type="Integer">Percent completed (0-100).</Param><Param name="title" type="String">Progress title.</Param></Parameters><Return></Return></Function>
<Function name="PROMPT" also="core.lib:Global!PROGRESS core.lib:Global!INFORM" sortGroup="true" scope="public" id="core.lib:Global!PROMPT" sort="35" group="IV. Dialogs and Prompts" seq="0064"><Summary>Opens a fixed-size popup to display a prompt.</Summary><Parameters signature="function:: &lt;b&gt;PROMPT&lt;/b&gt;(&lt;i&gt;msg&lt;/i&gt;, &lt;i&gt;features&lt;/i&gt;) &amp;rarr; void"><Param name="msg" type="String">Prompt message.</Param><Param name="features" type="Object">Custom prompt features (see remarks).</Param></Parameters><Return></Return><Remarks>The  is an object with the following structure:
      &lt;table class=&quot;BOTH&quot;&gt;&lt;tr&gt;&lt;td class=&quot;H V&quot;&gt;Name &lt;/td&gt;&lt;td class=H&gt;Type &lt;/td&gt;&lt;td class=H&gt;Description &lt;/td&gt;&lt;td class=H&gt;Default &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;icon &lt;/td&gt;&lt;td&gt;Url &lt;/td&gt;&lt;td&gt;Prompt icon url. A bare name is taken relative to &lt;/td&gt;&lt;td&gt;&amp;nbsp; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;title &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;Prompt window title &lt;/td&gt;&lt;td&gt;(Information) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;width &lt;/td&gt;&lt;td&gt;Number &lt;/td&gt;&lt;td&gt;Prompt window width &lt;/td&gt;&lt;td&gt;(250) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;height &lt;/td&gt;&lt;td&gt;Number &lt;/td&gt;&lt;td&gt;Prompt window height &lt;/td&gt;&lt;td&gt;(40) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;target &lt;/td&gt;&lt;td&gt;DHTMLDOMNode &lt;/td&gt;&lt;td&gt;Anchor object &lt;/td&gt;&lt;td&gt;(null) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;where &lt;/td&gt;&lt;td&gt;Enum &lt;/td&gt;&lt;td&gt;Anchor position [before &lt;/td&gt;&lt;td&gt;after] [above &lt;/td&gt;&lt;td&gt;below] &lt;/td&gt;&lt;td&gt;(after above) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;dx &lt;/td&gt;&lt;td&gt;Integer &lt;/td&gt;&lt;td&gt;Anchor horizontal offset &lt;/td&gt;&lt;td&gt;(0) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;dy &lt;/td&gt;&lt;td&gt;Integer &lt;/td&gt;&lt;td&gt;Anchor vertical offset &lt;/td&gt;&lt;td&gt;(0) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;buttons &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;A whitespace-separated list of buttons to display &lt;/td&gt;&lt;td&gt;&amp;nbsp; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;callback &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;A callback function to call when one of the buttons is clicked &lt;/td&gt;&lt;td&gt;&amp;nbsp; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!PROGRESS&quot;&gt;PROGRESS&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!INFORM&quot;&gt;INFORM&lt;/q&gt;</SeeAlso></Function>
<Function name="PTIMEEND" sortGroup="true" scope="public" id="core.lib:Global!PTIMEEND" sort="35" group="IV. Dialogs and Prompts" seq="0065"><Summary>Sets the ending time of the performance measurment.</Summary><Parameters signature="function:: &lt;b&gt;PTIMEEND&lt;/b&gt;(&lt;i&gt;desc&lt;/i&gt;) &amp;rarr; void"><Param name="desc" type="String">Description to be printed to the log.</Param></Parameters><Return></Return></Function>
<Function name="PTIMESTART" sortGroup="true" scope="public" id="core.lib:Global!PTIMESTART" sort="35" group="IV. Dialogs and Prompts" seq="0066"><Summary>Sets the starting time of the performance measurment.</Summary><Parameters signature="function:: &lt;b&gt;PTIMESTART&lt;/b&gt;(&lt;i&gt;desc&lt;/i&gt;) &amp;rarr; void"><Param name="desc" type="String">Description to be printed to the log.</Param></Parameters><Return></Return><Remarks>Important Notes:
     &lt;ol&gt;&lt;li&gt;Make sure that for each PTIMESTART call there is a corresponding PTIMEEND call. &lt;/li&gt;&lt;li&gt;The log is printed to the console and to the following folder C:\VCLogs so make sure that this folder exist on your machine. &lt;/li&gt;&lt;li&gt;Configure the security setting in your browser to allow ActiveX component, so the logs could be written to your local hard-drive. &lt;/li&gt;&lt;/ol&gt;</Remarks></Function>
<Function name="SET_BOX" sortGroup="true" scope="public" id="core.lib:Global!SET_BOX" sort="35" group="IV. Dialogs and Prompts" seq="0067"><Summary>Sets the bounding box of a boxed object.</Summary><Parameters label="Form 1" descr="" signature="function:: &lt;b&gt;SET_BOX&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;, &lt;i&gt;box&lt;/i&gt;) &amp;rarr; void"><Param name="obj" type="HtmlElement">A boxed object.</Param><Param name="box" type="BOUNDING_BOX" typeRef="&lt;q ref=&quot;core.lib:Global!BOUNDING_BOX&quot;&gt;BOUNDING_BOX&lt;/q&gt;">The bounding box.</Param></Parameters><Parameters label="Form 2" descr="" signature="function:: &lt;b&gt;SET_BOX&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;, &lt;i&gt;box&lt;/i&gt;) &amp;rarr; void"><Param name="obj" type="HtmlElement">A boxed object.</Param><Param name="box" type="String">The bounding box in string representation.</Param></Parameters><Parameters label="Form 3" descr="" signature="function:: &lt;b&gt;SET_BOX&lt;/b&gt;(&lt;i&gt;obj&lt;/i&gt;, &lt;i&gt;x&lt;/i&gt;, &lt;i&gt;y&lt;/i&gt;, &lt;i&gt;w&lt;/i&gt;, &lt;i&gt;h&lt;/i&gt;) &amp;rarr; void"><Param name="obj" type="HtmlElement">A boxed object.</Param><Param name="x" type="Integer">Box X coordinate.</Param><Param name="y" type="Integer">Box Y coordinate.</Param><Param name="w" type="Integer">Box width.</Param><Param name="h" type="Integer">Box height.</Param></Parameters><Return></Return></Function>
<Function name="SUBWIN" also="core.lib:Global!MODAL core.lib:Global!AMODAL" sortGroup="true" scope="public" id="core.lib:Global!SUBWIN" sort="35" group="IV. Dialogs and Prompts" seq="0068"><Summary>Opens a floating sub-window.</Summary><Parameters signature="function:: &lt;b&gt;SUBWIN&lt;/b&gt;(&lt;i&gt;url&lt;/i&gt;, &lt;i&gt;params&lt;/i&gt;, &lt;i&gt;name&lt;/i&gt;, &lt;i&gt;features&lt;/i&gt;) &amp;rarr; Window"><Param name="url" type="String">Window url.</Param><Param name="params" type="Variant" default="n">Parameters object to pass to the sub-window.</Param><Param name="name" type="String" default="_blank">Sub-window external name.</Param><Param name="features" default="" type="String">The sub-window features.</Param></Parameters><Return type="Window">The newly opened sub-window.</Return><SeeAlso>&lt;q ref=&quot;core.lib:Global!MODAL&quot;&gt;MODAL&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!AMODAL&quot;&gt;AMODAL&lt;/q&gt;</SeeAlso></Function>
<Function name="UNION" sortGroup="true" scope="public" id="core.lib:Global!UNION" sort="35" group="IV. Dialogs and Prompts" seq="0069"><Summary>Returns the union of two collections of objects.</Summary><Parameters signature="function:: &lt;b&gt;UNION&lt;/b&gt;(&lt;i&gt;collection1&lt;/i&gt;, &lt;i&gt;collection2&lt;/i&gt;) &amp;rarr; Object[id]"><Param name="collection1" type="Object[id]">The first collection of objects.</Param><Param name="collection2" type="Object[id]">The second collection of objects.</Param></Parameters><Return type="Object[id]">The union collection.</Return></Function>
<Function name="COUNT" sortGroup="true" scope="public" id="core.lib:Global!COUNT" sort="35" group="V. Structures" seq="0070"><Summary>calculates the length of an array or collection.</Summary><Parameters signature="function:: &lt;b&gt;COUNT&lt;/b&gt;(&lt;i&gt;collection&lt;/i&gt;) &amp;rarr; Number"><Param name="collection" type="Object" default="">an objects collection.</Param></Parameters><Return type="Number">collection length.</Return></Function>
<Structure name="BOUNDING_BOX" group="V. Structures" sortGroup="true" id="core.lib:Global!BOUNDING_BOX" sort="41" seq="0071"><Summary>Represents a bounding box.</Summary><Remarks>The bounding box members are:
      &lt;table class=&quot;BOTH&quot;&gt;&lt;tr&gt;&lt;td class=&quot;H V&quot;&gt;Name &lt;/td&gt;&lt;td class=H&gt;Description &lt;/td&gt;&lt;td class=H&gt;Values &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;x &lt;/td&gt;&lt;td&gt;The box left coordinate &lt;/td&gt;&lt;td&gt;&lt;code&gt;expr&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;y &lt;/td&gt;&lt;td&gt;The box top coordinate &lt;/td&gt;&lt;td&gt;&lt;code&gt;expr&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;w &lt;/td&gt;&lt;td&gt;The box width &lt;/td&gt;&lt;td&gt;&lt;code&gt;expr&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;h &lt;/td&gt;&lt;td&gt;The box height &lt;/td&gt;&lt;td&gt;&lt;code&gt;expr&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
      where &lt;code&gt;expr&lt;/code&gt; is:
      &lt;ul&gt;&lt;li&gt;An absolute number of pixels (e.g., 512) &lt;/li&gt;&lt;li&gt;A percentage (e.g., 100%), taken relative to the corresponding dimension of the parent box &lt;/li&gt;&lt;li&gt;A variable &lt;code&gt;x,&lt;/code&gt; &lt;code&gt;y,&lt;/code&gt; &lt;code&gt;w,&lt;/code&gt; or &lt;code&gt;h&lt;/code&gt; representing the corresponding dimension on this box &lt;/li&gt;&lt;li&gt;A variable &lt;code&gt;W,&lt;/code&gt; or &lt;code&gt;H&lt;/code&gt; representing the corresponding dimension on the parent box &lt;/li&gt;&lt;li&gt;A numeric expression involving any of the above (e.g., 10%+W/3-50) &lt;/li&gt;&lt;/ul&gt;
      The BOUNDING_BOX structure can also be represented as a string in the following format: &lt;code&gt;'x y w h'&lt;/code&gt; (members separated by whitespace).</Remarks></Structure>
<Structure name="ENUM_ARR" also="core.lib:Global!ENUM_OBJ core.lib:Global!ENUM_STR" sortGroup="true" id="core.lib:Global!ENUM_ARR" sort="41" group="V. Structures" seq="0072"><Summary>An array representation of an enumeration.</Summary><Remarks>The array representation of an enumeration is an array of {value,text} objects,
      each holding an enumeration item. The order of the items in the array defines
      their display order.</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!ENUM_OBJ&quot;&gt;ENUM_OBJ&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!ENUM_STR&quot;&gt;ENUM_STR&lt;/q&gt;</SeeAlso></Structure>
<Structure name="ENUM_DEF" also="core.lib:Global!ENUM_OBJ core.lib:Global!ENUM_STR core.lib:Global!ENUM_ARR" sortGroup="true" id="core.lib:Global!ENUM_DEF" sort="41" group="V. Structures" seq="0073"><Summary>An enumeration definition.</Summary><Remarks>The enumeration definition can be any of the following
   &lt;ol&gt;&lt;li&gt;A name of a globally defined enumeration &lt;/li&gt;&lt;li&gt;A string representation of an enumeration (&lt;q ref=&quot;core.lib:Global!ENUM_STR&quot;&gt;ENUM_STR&lt;/q&gt;) &lt;/li&gt;&lt;li&gt;An object holding an enumeration (&lt;q ref=&quot;core.lib:Global!ENUM_OBJ&quot;&gt;ENUM_OBJ&lt;/q&gt;) &lt;/li&gt;&lt;li&gt;An array representation of an enumeration (&lt;q ref=&quot;core.lib:Global!ENUM_ARR&quot;&gt;ENUM_ARR&lt;/q&gt;) &lt;/li&gt;&lt;li&gt;A function in the form: &lt;code&gt;function(context)&lt;/code&gt;, returning an enumeration in any of the previous forms (1-4). The &lt;code&gt;context&lt;/code&gt; parameter is an object that defines the enumeration context, used for computing dynamic enumerations. Dynamic enumerations should be used sparingly, since they reevaluated each time the associated field(s) are repainted. &lt;/li&gt;&lt;/ol&gt;</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!ENUM_OBJ&quot;&gt;ENUM_OBJ&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!ENUM_STR&quot;&gt;ENUM_STR&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!ENUM_ARR&quot;&gt;ENUM_ARR&lt;/q&gt;</SeeAlso></Structure>
<Structure name="ENUM_OBJ" also="core.lib:Global!ENUM_STR core.lib:Global!ENUM_ARR" sortGroup="true" id="core.lib:Global!ENUM_OBJ" sort="41" group="V. Structures" seq="0074"><Summary>An object holding an enumeration.</Summary><Remarks>The structure is basically a name-value lookup table:
   &lt;table class=&quot;HORZ&quot;&gt;&lt;tr&gt;&lt;td class=&quot;H V&quot;&gt;Name &lt;/td&gt;&lt;td class=H&gt;Type &lt;/td&gt;&lt;td class=H&gt;Description &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;name1 &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;value1 &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;name2 &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;value2 &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;name3 &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;value3 &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;... &lt;/td&gt;&lt;td&gt;&amp;nbsp; &lt;/td&gt;&lt;td&gt;&amp;nbsp; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;$ORDER &lt;/td&gt;&lt;td&gt;Array &lt;/td&gt;&lt;td&gt;[name1, name2, name3, ...] &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
   The special &lt;code&gt;$ORDER&lt;/code&gt; member is used to define the enumeration sorting order.</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!ENUM_STR&quot;&gt;ENUM_STR&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!ENUM_ARR&quot;&gt;ENUM_ARR&lt;/q&gt;</SeeAlso></Structure>
<Structure name="ENUM_STR" also="core.lib:Global!ENUM_OBJ core.lib:Global!ENUM_ARR" sortGroup="true" id="core.lib:Global!ENUM_STR" sort="41" group="V. Structures" seq="0075"><Summary>A string representation of an enumeration.</Summary><Remarks>The string representation of an enumeration is a semi-colon separated list
      of value:text pairs. The order of the items in the list defines their display
      order. URI escape characters are used for encoding the delimiter characters,
      namely: &lt;code&gt;%3A&lt;/code&gt; for colons (:), &lt;code&gt;%3B&lt;/code&gt; for semi-colons (;).</Remarks><SeeAlso>&lt;q ref=&quot;core.lib:Global!ENUM_OBJ&quot;&gt;ENUM_OBJ&lt;/q&gt; | &lt;q ref=&quot;core.lib:Global!ENUM_ARR&quot;&gt;ENUM_ARR&lt;/q&gt;</SeeAlso></Structure>
<Structure name="SIGNAL_DEF" sortGroup="true" id="core.lib:Global!SIGNAL_DEF" sort="41" group="V. Structures" seq="0076"><Summary>Represents a Storyboard signal.</Summary><Remarks>A signal is an action triggering expression. A signal can be defined using any of the following forms:

      &lt;ol&gt;&lt;li&gt;Signal string to execute (see syntax below) &lt;/li&gt;&lt;li&gt;Name of a command containing the signal to execute (see &lt;q ref=&quot;core.env:KitCommands!COMMAND_DEF&quot;&gt;COMMAND_DEF&lt;/q&gt;) &lt;/li&gt;&lt;li&gt;Javascript expression to evaluate (in the context of the containing window) &lt;/li&gt;&lt;li&gt;Javascript function to execute (in the global system window) &lt;/li&gt;&lt;/ol&gt;

      &lt;h2&gt;Signal Syntax&lt;/h2&gt;
      The signal syntax is:
      &lt;address&gt;target -&amp;gt; method(args,...)&lt;/address&gt;
      Where &lt;code&gt;target&lt;/code&gt; can be any of the following:
      &lt;table class=&quot;BOTH&quot;&gt;&lt;tr&gt;&lt;td class=&quot;H V&quot;&gt;Target &lt;/td&gt;&lt;td class=H&gt;Description &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;$XXX &lt;/td&gt;&lt;td&gt;Invokes a method on the corresponding Storyboard module (e.g., $CTL, $ENV, etc.) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;BOARD &lt;/td&gt;&lt;td&gt;Invokes a method on the current board, if any. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;CONTEXT &lt;/td&gt;&lt;td&gt;Invokes a method on the object currently in context, if any (see &lt;q ref=&quot;core.gml:GmlObject&quot;&gt;GmlObject&lt;/q&gt;). &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;UNIT &lt;/td&gt;&lt;td&gt;Invokes a method on the unit currently in context, if any (see &lt;q ref=&quot;core.gml:Unit&quot;&gt;Unit&lt;/q&gt;). &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;ELEMENT &lt;/td&gt;&lt;td&gt;Invokes a method on the element currently in context, if any (see &lt;q ref=&quot;core.gml:Element&quot;&gt;Element&lt;/q&gt;). &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;FIELD &lt;/td&gt;&lt;td&gt;Invokes a method on the field currently in context, if any (see &lt;q ref=&quot;core.gml:Field&quot;&gt;Field&lt;/q&gt;). &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;PANEL &lt;/td&gt;&lt;td&gt;Invokes a method on the active task panel, if any. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;PANEL:name &lt;/td&gt;&lt;td&gt;Invokes a method on the specified task panel, if found. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;SELF &lt;/td&gt;&lt;td&gt;Invokes a method in the containing window &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

      If the signal string does not match the syntax above, then it is assumed to be script block
      and will be evaulated in the context of the containing window.

      &lt;h2&gt;Strong Signals&lt;/h2&gt;
      A strong signal is indicated by a double-arrow delimiter:
      &lt;address&gt;PANEL:name -&amp;gt;&amp;gt; method(args,...)&lt;/address&gt;
      Strong signals are relevant only to signals whose target is a named task panel. Normally, if a signal
      is sent to a task panel and that task panel has not yet been loaded, the signal will be ignored.
      If a strong signal is used instead, then the task panel will be loaded and displayed before the
      signal is sent to it. Strong signals are sent asynchronously.</Remarks></Structure>
<Enumeration name="DATA_TYPES" sortGroup="true" id="core.lib:Global!DATA_TYPES" sort="42" group="V. Structures" seq="0077"><Summary>An enumeration of the builtin data types.</Summary><Remarks>The available data types are listed below:
   &lt;table class=&quot;BOTH&quot;&gt;&lt;tr&gt;&lt;td class=&quot;H V&quot;&gt;Type &lt;/td&gt;&lt;td class=H&gt;Description &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;BOOL &lt;/td&gt;&lt;td&gt;Boolean value &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;COLOR &lt;/td&gt;&lt;td&gt;Color (RGB) value &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;COMBO &lt;/td&gt;&lt;td&gt;Open enumeration &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;DATE &lt;/td&gt;&lt;td&gt;Date value &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;ENUM &lt;/td&gt;&lt;td&gt;Closed enumeration &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;EXPR &lt;/td&gt;&lt;td&gt;GML expression &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;FLOAT &lt;/td&gt;&lt;td&gt;Floating-point number &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;HTML &lt;/td&gt;&lt;td&gt;HTML markup text &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;INT &lt;/td&gt;&lt;td&gt;Integer number &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;OBJ &lt;/td&gt;&lt;td&gt;Simple object &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;REF &lt;/td&gt;&lt;td&gt;GML reference &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;STR &lt;/td&gt;&lt;td&gt;Single line text &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;TEXT &lt;/td&gt;&lt;td&gt;Multi-line text &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;TIME &lt;/td&gt;&lt;td&gt;Time value &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;TOGGLE &lt;/td&gt;&lt;td&gt;Enumeration toggle &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;URL &lt;/td&gt;&lt;td&gt;Url value &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;USER &lt;/td&gt;&lt;td&gt;User-defined type &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</Remarks></Enumeration>
</Topics>
</Script>