0001 
0002 /*
0003  *  JScripter Standard 1.0 - To Script In Java
0004  *  Copyright (C) 2008-2011  J.J.Liu<jianjunliu@126.com> <http://www.jscripter.org>
0005  *  
0006  *  This program is free software: you can redistribute it and/or modify
0007  *  it under the terms of the GNU Affero General Public License as published by
0008  *  the Free Software Foundation, either version 3 of the License, or
0009  *  (at your option) any later version.
0010  *  
0011  *  This program is distributed in the hope that it will be useful,
0012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014  *  GNU Affero General Public License for more details.
0015  *  
0016  *  You should have received a copy of the GNU Affero General Public License
0017  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
0018  */
0019 
0020 package js.user;
0021 
0022 import js.*;
0023 import js.dom.*;
0024 import js.core.*;
0025 
0026 /**
0027  * <p>An <b>opaque</b> class representing JavaScript client-side objects of the global 
0028  * {@link JsClient#Window} class.</p>
0029  * <p>The {@link JsWindow} object represents a browser window or frame.</p>
0030  * <p>In client-side JavaScript, the {@link JsWindow} object serves as the global object, 
0031  * and all expressions are evaluated in the context of the current {@link JsWindow} object. 
0032  * This means that no special syntax is required to refer to the current window, and you 
0033  * can use the properties of that window object as if they were global variables. 
0034  * Similarly, you can use the methods of the current window object as if they were 
0035  * functions. In addition, the {@link JsWindow} object also implements all the global 
0036  * properties and functions defined by core JavaScript.</p>
0037  * <p>{@link Js#win()} returns the current {@link JsWindow} object.
0038  * {@link JsWindow#self} and {@link JsWindow#window} properties refer to the window 
0039  * object itself. You can use these to make the current window reference. 
0040  * {@link JsWindow#parent} 
0041  * {@link JsWindow#frames} array refer to other {@link JsWindow} objects related to the 
0042  * current one.</p>
0043  *
0044  * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
0045  *
0046  * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be
0047  * generated into the target codes. Re-compilers must exit with error on the operations of
0048  * accessing that kind of class objects.
0049  * The <tt>checkcast</tt> operation to the class literal of this interface must be ignored
0050  * and <tt>instanceof</tt> to it always <tt>true</tt>.
0051  */
0052 public class JsWindow extends JsClient.Window.Prototype implements EventTarget
0053 {
0054     /**
0055      * <p>An <b>opaque</b> class representing the global <tt>Imaget</tt> function of JavaScript.</p>
0056      *
0057      * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
0058      * 
0059      * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be
0060      * generated into the target codes. Re-compilers must exit with error on the operations of
0061      * accessing that kind of class objects.
0062      * The <tt>checkcast</tt> operation to the class literal of this interface must be ignored
0063      * and <tt>instanceof</tt> to it always <tt>true</tt>.
0064      */
0065     public static class Image extends JsFunction<JsHTMLImageElement>
0066     {
0067         /**
0068          * <p>An <b>opaque</b> class representing members of its enclosing <b>opaque</b> type.</p>
0069          * <p>Note that, this class is <b>opaque</b> but its constructors are all <b>internal</b>. 
0070          * This class and the subclasses of this class are used to declare either <b>opaque</b> 
0071          * <tt>public</tt> instance fields of the opaque type {@link js.Var.Member} or the 
0072          * <b>opaque</b> <tt>public</tt> static fields of other <b>opaque</b> types while their 
0073          * constructors are used to define the fields inside <b>opaque</b> classes. Under 
0074          * either circumstance, the field names must be exactly same as the member names, as 
0075          * the <b>opaque</b> fields of <b>opaque</b> types are resolved by re-compilers directly 
0076          * based on the field names.</p>
0077          *
0078          * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
0079          * 
0080          * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be created
0081          * in the target codes. Re-compilers must exit with error on operations accessing that kind 
0082          * of class objects.
0083          * Re-compilers must resolve an <b>opaque</b> instance field declared by this class in
0084          * {@link js.Var.Member} or its subclasses to the JavaScript identifier: 
0085          * <pre>q.m</pre>
0086          * where <tt>m</tt> is the identifier of the field name and <tt>q</tt> is the identifier
0087          * resolved from the instance of the enclosing member. Re-compilers must resolve an 
0088          * <b>opaque</b> static field declared by this class in <b>opaque</b> types other than 
0089          * {@link js.Var.Member} and its subclasses to the JavaScript identifier: 
0090          * <pre>m</pre>
0091          * where <tt>m</tt> is the identifier of the field name. And re-compilers must report
0092          * error on the access to <b>opaque</b> fields declared by this class under any other 
0093          * circumstances.
0094          */
0095         public static class Member extends JsFunction.Member<JsHTMLImageElement>
0096         {
0097             private Member(JsObject.Member q, Mid mid) {
0098                 super(q, mid);
0099             }
0100             private Member(Mid mid) {
0101                 super(mid);
0102             }
0103             @Override
0104             /**
0105              * <p>Evaluates the property, represented by the current member instance, of the
0106              * argument object.</p>
0107              * @param o The argument object
0108              * @return The value of the current member based on the object argument.
0109              * @since 1.0
0110              * @javascript Re-compilers must convert the instance invocation of this method into
0111              * the JavaScript expression: 
0112              * <pre>o.m</pre>
0113              * where <tt>m</tt> is the identifier name resolved from the current member
0114              * instance of the invocation.
0115              */
0116             public Image with(ObjectLike o) {
0117                 return new Image(super.with(o));
0118             }
0119             @Override
0120             /**
0121              * <p>Evaluates a property, represented by the current member instance, of the
0122              * JavaScript global object, that is, evaluates the member to a global identifier.</p>
0123              * @return The value of the current member based on the JavaScript global object.
0124              * @since 1.0
0125              * @javascript Re-compilers must convert the instance invocation of this method into
0126              * the JavaScript expression: 
0127              * <pre>m</pre>
0128              * where <tt>m</tt> is the identifier name resolved from the current member
0129              * instance of the invocation.
0130              */
0131             public Image with() {
0132                 return with(Js.win());
0133             }
0134         }
0135 
0136         /**
0137          * <p>Casts an <b>opaque</b> object to the current <b>opaque</b> type by wrapping it
0138          * with the wrapping constructor.</p>
0139          * @param var The argument of an <b>opaque</b> object.
0140          * @since 1.0
0141          * @javascript Re-compilers must ignore the construction operation of this constructor,
0142          * that is, replacing it with its only argument.
0143          */
0144         public Image(JsObject var) {
0145             super(var(var, (JsFunction<?>)null));
0146         }
0147 
0148         /**
0149          * <p>Creates an image.</p>
0150          * <p>You can create offscreen {@link JsHTMLImageElement} objects dynamically using the 
0151          * constructor function of {@link JsWindow#Image}. Note that this constructor method 
0152          * does not have an argument to specify the image to be loaded. As with images created 
0153          * from HTML, you tell the browser to load an image by setting the <tt>src</tt> property 
0154          * of any images you create explicitly. There is no way to display a {@link JsHTMLImageElement} 
0155          * object created in this way. All you can do is force the {@link JsHTMLImageElement} 
0156          * object to download an image by setting the {@link JsHTMLImageElement#src} property. 
0157          * This is useful, however, because it loads an image into the browser's cache; if that 
0158          * same image URL is used later with an actual <tt>&lt;img&gt;</tt> tag, it will display 
0159          * quickly since it has already been loaded.</p>
0160          * @param w An optionally specified width  for the image.
0161          * @param h An optionally specified height for the image.
0162          * @return The newly created image.
0163          * @since 1.0
0164          * @javascript Re-compilers must replace the instance invocation of this method with the 
0165          * JavaScript invocation:
0166          * <pre>new Image(w, h)</pre>
0167          */
0168         public final JsHTMLImageElement create(int w, int h) {
0169             return create(new Vars<java.lang.Integer>().add(w).add(h));
0170         }
0171 
0172         /**
0173          * <p>Creates an image.</p>
0174          * <p>You can create offscreen {@link JsHTMLImageElement} objects dynamically using the 
0175          * constructor function of {@link JsWindow#Image}. Note that this constructor method 
0176          * does not have an argument to specify the image to be loaded. As with images created 
0177          * from HTML, you tell the browser to load an image by setting the <tt>src</tt> property 
0178          * of any images you create explicitly. There is no way to display a {@link JsHTMLImageElement} 
0179          * object created in this way. All you can do is force the {@link JsHTMLImageElement} 
0180          * object to download an image by setting the {@link JsHTMLImageElement#src} property. 
0181          * This is useful, however, because it loads an image into the browser's cache; if that 
0182          * same image URL is used later with an actual <tt>&lt;img&gt;</tt> tag, it will display 
0183          * quickly since it has already been loaded.</p>
0184          * @param args The variable argument.
0185          * @return The newly created image.
0186          * @since 1.0
0187          * @javascript Re-compilers must replace the instance invocation of this method with the 
0188          * JavaScript invocation:
0189          * <pre>new Image(args)</pre>
0190          * where <tt>args</tt> must be expanded to comma-separated arguments.
0191          */
0192         @Override
0193         public final JsHTMLImageElement create(Vars<?> args) {
0194             return new JsHTMLImageElement(super.create(args));
0195         }
0196     }
0197 
0198     /**
0199      * <p>An <b>internal</b> class containing membership data for its enclosing
0200      * opaque class.</p>
0201      * <p>This class is only used inside of <b>opaque</b> or <b>internal</b> classes or
0202      * class members.</p>
0203      *
0204      * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
0205      * 
0206      * @javascript Re-compilers must report error on resolving an <b>internal</b> class.
0207      */
0208     protected static abstract class Members extends JsClient.Window.Prototype.Members
0209     {
0210         /**
0211          * <p>An <b>internal</b> static field defining a member ID of the field name and
0212          * used internally to define a member of the same name.</p>
0213          * @since 1.0
0214          * @see JsWindow#alert
0215          * @see JsWindow.Member#alert
0216          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0217          */
0218         public final static Mid alert                    = id("alert"                   );
0219         /**
0220          * <p>An <b>internal</b> static field defining a member ID of the field name and
0221          * used internally to define a member of the same name.</p>
0222          * @since 1.0
0223          * @see JsWindow#confirm
0224          * @see JsWindow.Member#confirm
0225          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0226          */
0227         public final static Mid confirm                  = id("confirm"                 );
0228         /**
0229          * <p>An <b>internal</b> static field defining a member ID of the field name and
0230          * used internally to define a member of the same name.</p>
0231          * @since 1.0
0232          * @see JsWindow#prompt
0233          * @see JsWindow.Member#prompt
0234          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0235          */
0236         public final static Mid prompt                   = id("prompt"                  );
0237         /**
0238          * <p>An <b>internal</b> static field defining a member ID of the field name and
0239          * used internally to define a member of the same name.</p>
0240          * @since 1.0
0241          * @see JsWindow#clearInterval
0242          * @see JsWindow.Member#clearInterval
0243          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0244          */
0245         public final static Mid clearInterval            = id("clearInterval"           );
0246         /**
0247          * <p>An <b>internal</b> static field defining a member ID of the field name and
0248          * used internally to define a member of the same name.</p>
0249          * @since 1.0
0250          * @see JsWindow#clearTimeout
0251          * @see JsWindow.Member#clearTimeout
0252          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0253          */
0254         public final static Mid clearTimeout             = id("clearTimeout"            );
0255         /**
0256          * <p>An <b>internal</b> static field defining a member ID of the field name and
0257          * used internally to define a member of the same name.</p>
0258          * @since 1.0
0259          * @see JsWindow#setInterval
0260          * @see JsWindow.Member#setInterval
0261          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0262          */
0263         public final static Mid setInterval              = id("setInterval"             );
0264         /**
0265          * <p>An <b>internal</b> static field defining a member ID of the field name and
0266          * used internally to define a member of the same name.</p>
0267          * @since 1.0
0268          * @see JsWindow#setTimeout
0269          * @see JsWindow.Member#setTimeout
0270          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0271          */
0272         public final static Mid setTimeout               = id("setTimeout"              );
0273         /**
0274          * <p>An <b>internal</b> static field defining a member ID of the field name and
0275          * used internally to define a member of the same name.</p>
0276          * @since 1.0
0277          * @see JsWindow#addEventListener
0278          * @see JsWindow.Member#addEventListener
0279          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0280          */
0281         public final static Mid addEventListener         = id("addEventListener"        );
0282         /**
0283          * <p>An <b>internal</b> static field defining a member ID of the field name and
0284          * used internally to define a member of the same name.</p>
0285          * @since 1.0
0286          * @see JsWindow#removeEventListener
0287          * @see JsWindow.Member#removeEventListener
0288          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0289          */
0290         public final static Mid removeEventListener      = id("removeEventListener"     );
0291         /**
0292          * <p>An <b>internal</b> static field defining a member ID of the field name and
0293          * used internally to define a member of the same name.</p>
0294          * @since 1.0
0295          * @see JsWindow#attachEvent
0296          * @see JsWindow.Member#attachEvent
0297          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0298          */
0299         public final static Mid attachEvent              = id("attachEvent"             );
0300         /**
0301          * <p>An <b>internal</b> static field defining a member ID of the field name and
0302          * used internally to define a member of the same name.</p>
0303          * @since 1.0
0304          * @see JsWindow#detachEvent
0305          * @see JsWindow.Member#detachEvent
0306          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0307          */
0308         public final static Mid detachEvent              = id("detachEvent"             );
0309         /**
0310          * <p>An <b>internal</b> static field defining a member ID of the field name and
0311          * used internally to define a member of the same name.</p>
0312          * @since 1.0
0313          * @see JsWindow#htmlControl
0314          * @see JsWindow.Member#htmlControl
0315          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0316          */
0317         public final static Mid htmlControl              = id("htmlControl"             );
0318         /**
0319          * <p>An <b>internal</b> static field defining a member ID of the field name and
0320          * used internally to define a member of the same name.</p>
0321          * @since 1.0
0322          * @see JsWindow#self
0323          * @see JsWindow.Member#self
0324          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0325          */
0326         public final static Mid self                     = id("self"                    );
0327         /**
0328          * <p>An <b>internal</b> static field defining a member ID of the field name and
0329          * used internally to define a member of the same name.</p>
0330          * @since 1.0
0331          * @see JsWindow#window
0332          * @see JsWindow.Member#window
0333          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0334          */
0335         public final static Mid window                   = id("window"                  );
0336         /**
0337          * <p>An <b>internal</b> static field defining a member ID of the field name and
0338          * used internally to define a member of the same name.</p>
0339          * @since 1.0
0340          * @see JsWindow#document
0341          * @see JsWindow.Member#document
0342          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0343          */
0344         public final static Mid document                 = id("document"                );
0345         /**
0346          * <p>An <b>internal</b> static field defining a member ID of the field name and
0347          * used internally to define a member of the same name.</p>
0348          * @since 1.0
0349          * @see JsWindow#getComputedStyle
0350          * @see JsWindow.Member#getComputedStyle
0351          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0352          */
0353         public final static Mid getComputedStyle         = id("getComputedStyle"        );
0354         /**
0355          * <p>An <b>internal</b> static field defining a member ID of the field name and
0356          * used internally to define a member of the same name.</p>
0357          * @since 1.0
0358          * @see JsWindow#history
0359          * @see JsWindow.Member#history
0360          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0361          */
0362         public final static Mid history                  = id("history"                 );
0363         /**
0364          * <p>An <b>internal</b> static field defining a member ID of the field name and
0365          * used internally to define a member of the same name.</p>
0366          * @since 1.0
0367          * @see JsWindow#innerHeight
0368          * @see JsWindow.Member#innerHeight
0369          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0370          */
0371         public final static Mid innerHeight              = id("innerHeight"             );
0372         /**
0373          * <p>An <b>internal</b> static field defining a member ID of the field name and
0374          * used internally to define a member of the same name.</p>
0375          * @since 1.0
0376          * @see JsWindow#innerWidth
0377          * @see JsWindow.Member#innerWidth
0378          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0379          */
0380         public final static Mid innerWidth               = id("innerWidth"              );
0381         /**
0382          * <p>An <b>internal</b> static field defining a member ID of the field name and
0383          * used internally to define a member of the same name.</p>
0384          * @since 1.0
0385          * @see JsWindow#event
0386          * @see JsWindow.Member#event
0387          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0388          */
0389         public final static Mid event                    = id("event"                   );
0390         /**
0391          * <p>An <b>internal</b> static field defining a member ID of the field name and
0392          * used internally to define a member of the same name.</p>
0393          * @since 1.0
0394          * @see JsWindow#pageXOffset
0395          * @see JsWindow.Member#pageXOffset
0396          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0397          */
0398         public final static Mid pageXOffset              = id("pageXOffset"             );
0399         /**
0400          * <p>An <b>internal</b> static field defining a member ID of the field name and
0401          * used internally to define a member of the same name.</p>
0402          * @since 1.0
0403          * @see JsWindow#pageYOffset
0404          * @see JsWindow.Member#pageYOffset
0405          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0406          */
0407         public final static Mid pageYOffset              = id("pageYOffset"             );
0408         /**
0409          * <p>An <b>internal</b> static field defining a member ID of the field name and
0410          * used internally to define a member of the same name.</p>
0411          * @since 1.0
0412          * @see JsWindow#navigator
0413          * @see JsWindow.Member#navigator
0414          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0415          */
0416         public final static Mid navigator                = id("navigator"               );
0417         /**
0418          * <p>An <b>internal</b> static field defining a member ID of the field name and
0419          * used internally to define a member of the same name.</p>
0420          * @since 1.0
0421          * @see JsWindow#location
0422          * @see JsWindow.Member#location
0423          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0424          */
0425         public final static Mid location                 = id("location"                );
0426         /**
0427          * <p>An <b>internal</b> static field defining a member ID of the field name and
0428          * used internally to define a member of the same name.</p>
0429          * @since 1.0
0430          * @see JsWindow#screen
0431          * @see JsWindow.Member#screen
0432          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0433          */
0434         public final static Mid screen                   = id("screen"                  );
0435         /**
0436          * <p>An <b>internal</b> static field defining a member ID of the field name and
0437          * used internally to define a member of the same name.</p>
0438          * @since 1.0
0439          * @see JsWindow#closed
0440          * @see JsWindow.Member#closed
0441          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0442          */
0443         public final static Mid closed                   = id("closed"                  );
0444         /**
0445          * <p>An <b>internal</b> static field defining a member ID of the field name and
0446          * used internally to define a member of the same name.</p>
0447          * @since 1.0
0448          * @see JsWindow#defaultStatus
0449          * @see JsWindow.Member#defaultStatus
0450          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0451          */
0452         public final static Mid defaultStatus            = id("defaultStatus"           );
0453         /**
0454          * <p>An <b>internal</b> static field defining a member ID of the field name and
0455          * used internally to define a member of the same name.</p>
0456          * @since 1.0
0457          * @see JsWindow#frames
0458          * @see JsWindow.Member#frames
0459          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0460          */
0461         public final static Mid frames                   = id("frames"                  );
0462         /**
0463          * <p>An <b>internal</b> static field defining a member ID of the field name and
0464          * used internally to define a member of the same name.</p>
0465          * @since 1.0
0466          * @see JsWindow#name
0467          * @see JsWindow.Member#name
0468          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0469          */
0470         public final static Mid name                     = id("name"                    );
0471         /**
0472          * <p>An <b>internal</b> static field defining a member ID of the field name and
0473          * used internally to define a member of the same name.</p>
0474          * @since 1.0
0475          * @see JsWindow#opener
0476          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0477          */
0478         public final static Mid opener                   = id("opener"                  );
0479         /**
0480          * <p>An <b>internal</b> static field defining a member ID of the field name and
0481          * used internally to define a member of the same name.</p>
0482          * @since 1.0
0483          * @see JsWindow#outerHeight
0484          * @see JsWindow.Member#outerHeight
0485          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0486          */
0487         public final static Mid outerHeight              = id("outerHeight"             );
0488         /**
0489          * <p>An <b>internal</b> static field defining a member ID of the field name and
0490          * used internally to define a member of the same name.</p>
0491          * @since 1.0
0492          * @see JsWindow#outerWidth
0493          * @see JsWindow.Member#outerWidth
0494          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0495          */
0496         public final static Mid outerWidth               = id("outerWidth"              );
0497         /**
0498          * <p>An <b>internal</b> static field defining a member ID of the field name and
0499          * used internally to define a member of the same name.</p>
0500          * @since 1.0
0501          * @see JsWindow#parent
0502          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0503          */
0504         public final static Mid parent                   = id("parent"                  );
0505         /**
0506          * <p>An <b>internal</b> static field defining a member ID of the field name and
0507          * used internally to define a member of the same name.</p>
0508          * @since 1.0
0509          * @see JsWindow#screenLeft
0510          * @see JsWindow.Member#screenLeft
0511          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0512          */
0513         public final static Mid screenLeft               = id("screenLeft"              );
0514         /**
0515          * <p>An <b>internal</b> static field defining a member ID of the field name and
0516          * used internally to define a member of the same name.</p>
0517          * @since 1.0
0518          * @see JsWindow#screenTop
0519          * @see JsWindow.Member#screenTop
0520          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0521          */
0522         public final static Mid screenTop                = id("screenTop"               );
0523         /**
0524          * <p>An <b>internal</b> static field defining a member ID of the field name and
0525          * used internally to define a member of the same name.</p>
0526          * @since 1.0
0527          * @see JsWindow#screenX
0528          * @see JsWindow.Member#screenX
0529          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0530          */
0531         public final static Mid screenX                  = id("screenX"                 );
0532         /**
0533          * <p>An <b>internal</b> static field defining a member ID of the field name and
0534          * used internally to define a member of the same name.</p>
0535          * @since 1.0
0536          * @see JsWindow#screenY
0537          * @see JsWindow.Member#screenY
0538          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0539          */
0540         public final static Mid screenY                  = id("screenY"                 );
0541         /**
0542          * <p>An <b>internal</b> static field defining a member ID of the field name and
0543          * used internally to define a member of the same name.</p>
0544          * @since 1.0
0545          * @see JsWindow#top
0546          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0547          */
0548         public final static Mid top                      = id("top"                     );
0549         /**
0550          * <p>An <b>internal</b> static field defining a member ID of the field name and
0551          * used internally to define a member of the same name.</p>
0552          * @since 1.0
0553          * @see JsWindow#blur
0554          * @see JsWindow.Member#blur
0555          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0556          */
0557         public final static Mid blur                     = id("blur"                    );
0558         /**
0559          * <p>An <b>internal</b> static field defining a member ID of the field name and
0560          * used internally to define a member of the same name.</p>
0561          * @since 1.0
0562          * @see JsWindow#close
0563          * @see JsWindow.Member#close
0564          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0565          */
0566         public final static Mid close                    = id("close"                   );
0567         /**
0568          * <p>An <b>internal</b> static field defining a member ID of the field name and
0569          * used internally to define a member of the same name.</p>
0570          * @since 1.0
0571          * @see JsWindow#focus
0572          * @see JsWindow.Member#focus
0573          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0574          */
0575         public final static Mid focus                    = id("focus"                   );
0576         /**
0577          * <p>An <b>internal</b> static field defining a member ID of the field name and
0578          * used internally to define a member of the same name.</p>
0579          * @since 1.0
0580          * @see JsWindow#moveBy
0581          * @see JsWindow.Member#moveBy
0582          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0583          */
0584         public final static Mid moveBy                   = id("moveBy"                  );
0585         /**
0586          * <p>An <b>internal</b> static field defining a member ID of the field name and
0587          * used internally to define a member of the same name.</p>
0588          * @since 1.0
0589          * @see JsWindow#moveTo
0590          * @see JsWindow.Member#moveTo
0591          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0592          */
0593         public final static Mid moveTo                   = id("moveTo"                  );
0594         /**
0595          * <p>An <b>internal</b> static field defining a member ID of the field name and
0596          * used internally to define a member of the same name.</p>
0597          * @since 1.0
0598          * @see JsWindow#open
0599          * @see JsWindow.Member#open
0600          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0601          */
0602         public final static Mid open                     = id("open"                    );
0603         /**
0604          * <p>An <b>internal</b> static field defining a member ID of the field name and
0605          * used internally to define a member of the same name.</p>
0606          * @since 1.0
0607          * @see JsWindow#print
0608          * @see JsWindow.Member#print
0609          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0610          */
0611         public final static Mid print                    = id("print"                   );
0612         /**
0613          * <p>An <b>internal</b> static field defining a member ID of the field name and
0614          * used internally to define a member of the same name.</p>
0615          * @since 1.0
0616          * @see JsWindow#resizeBy
0617          * @see JsWindow.Member#resizeBy
0618          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0619          */
0620         public final static Mid resizeBy                 = id("resizeBy"                );
0621         /**
0622          * <p>An <b>internal</b> static field defining a member ID of the field name and
0623          * used internally to define a member of the same name.</p>
0624          * @since 1.0
0625          * @see JsWindow#resizeTo
0626          * @see JsWindow.Member#resizeTo
0627          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0628          */
0629         public final static Mid resizeTo                 = id("resizeTo"                );
0630         /**
0631          * <p>An <b>internal</b> static field defining a member ID of the field name and
0632          * used internally to define a member of the same name.</p>
0633          * @since 1.0
0634          * @see JsWindow#scrollBy
0635          * @see JsWindow.Member#scrollBy
0636          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0637          */
0638         public final static Mid scrollBy                 = id("scrollBy"                );
0639         /**
0640          * <p>An <b>internal</b> static field defining a member ID of the field name and
0641          * used internally to define a member of the same name.</p>
0642          * @since 1.0
0643          * @see JsWindow#scrollTo
0644          * @see JsWindow.Member#scrollTo
0645          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0646          */
0647         public final static Mid scrollTo                 = id("scrollTo"                );
0648         /**
0649          * <p>An <b>internal</b> static field defining a member ID of the field name and
0650          * used internally to define a member of the same name.</p>
0651          * @since 1.0
0652          * @see JsWindow#onblur
0653          * @see JsWindow.Member#onblur
0654          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0655          */
0656         public final static Mid onblur                   = id("onblur"                  );
0657         /**
0658          * <p>An <b>internal</b> static field defining a member ID of the field name and
0659          * used internally to define a member of the same name.</p>
0660          * @since 1.0
0661          * @see JsWindow#onerror
0662          * @see JsWindow.Member#onerror
0663          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0664          */
0665         public final static Mid onerror                  = id("onerror"                 );
0666         /**
0667          * <p>An <b>internal</b> static field defining a member ID of the field name and
0668          * used internally to define a member of the same name.</p>
0669          * @since 1.0
0670          * @see JsWindow#onfocus
0671          * @see JsWindow.Member#onfocus
0672          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0673          */
0674         public final static Mid onfocus                  = id("onfocus"                 );
0675         /**
0676          * <p>An <b>internal</b> static field defining a member ID of the field name and
0677          * used internally to define a member of the same name.</p>
0678          * @since 1.0
0679          * @see JsWindow#onload
0680          * @see JsWindow.Member#onload
0681          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0682          */
0683         public final static Mid onload                   = id("onload"                  );
0684         /**
0685          * <p>An <b>internal</b> static field defining a member ID of the field name and
0686          * used internally to define a member of the same name.</p>
0687          * @since 1.0
0688          * @see JsWindow#onresize
0689          * @see JsWindow.Member#onresize
0690          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0691          */
0692         public final static Mid onresize                 = id("onresize"                );
0693         /**
0694          * <p>An <b>internal</b> static field defining a member ID of the field name and
0695          * used internally to define a member of the same name.</p>
0696          * @since 1.0
0697          * @see JsWindow#onunload
0698          * @see JsWindow.Member#onunload
0699          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0700          */
0701         public final static Mid onunload                 = id("onunload"                );
0702         /**
0703          * <p>An <b>internal</b> static field defining a member ID of the field name and
0704          * used internally to define a member of the same name.</p>
0705          * @since 1.0
0706          * @see JsWindow#Image
0707          * @see JsWindow.Member#Image
0708          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0709          */
0710         public final static Mid Image                    = id("Image"                   );
0711     }
0712     /**
0713      * <p>An <b>opaque</b> class representing members of its enclosing <b>opaque</b> type.</p>
0714      * <p>Note that, this class is <b>opaque</b> but its constructors are all <b>internal</b>. 
0715      * This class and the subclasses of this class are used to declare either <b>opaque</b> 
0716      * <tt>public</tt> instance fields of the opaque type {@link js.Var.Member} or the 
0717      * <b>opaque</b> <tt>public</tt> static fields of other <b>opaque</b> types while their 
0718      * constructors are used to define the fields inside <b>opaque</b> classes. Under 
0719      * either circumstance, the field names must be exactly same as the member names, as 
0720      * the <b>opaque</b> fields of <b>opaque</b> types are resolved by re-compilers directly 
0721      * based on the field names.</p>
0722      *
0723      * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
0724      * 
0725      * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be created
0726      * in the target codes. Re-compilers must exit with error on operations accessing that kind 
0727      * of class objects.
0728      * Re-compilers must resolve an <b>opaque</b> instance field declared by this class in
0729      * {@link js.Var.Member} or its subclasses to the JavaScript identifier: 
0730      * <pre>q.m</pre>
0731      * where <tt>m</tt> is the identifier of the field name and <tt>q</tt> is the identifier
0732      * resolved from the instance of the enclosing member. Re-compilers must resolve an 
0733      * <b>opaque</b> static field declared by this class in <b>opaque</b> types other than 
0734      * {@link js.Var.Member} and its subclasses to the JavaScript identifier: 
0735      * <pre>m</pre>
0736      * where <tt>m</tt> is the identifier of the field name. And re-compilers must report
0737      * error on the access to <b>opaque</b> fields declared by this class under any other 
0738      * circumstances.
0739      */
0740     public static class Member extends JsClient.Window.Prototype.Member
0741     {
0742         /**
0743          * <p>Internally constructs a member based on a qualifying member.</p>
0744          * <p>This constructor is <b>internal</b> and only called inside of <b>opaque</b>
0745          * or <b>internal</b> classes or class members.</p>
0746          * <p>Note that, this constructor is <b>internal</b> but its declaring class is
0747          * <b>opaque</b>. This constructor is used to define <b>opaque</b> instance fields 
0748          * declared in the declaring class of this constructor itself or its subclasses. 
0749          * Under this circumstance, the field names must be exactly same as the member 
0750          * names, as the <b>opaque</b> instance fields of the <b>opaque</b> type 
0751          * {@link js.Var.Member} or its subclasses are resolved by re-compilers directly
0752          * to their names appending to the name resolved from the specified qualifying 
0753          * member with a dot in between.</p>
0754          * @param q A qualifying member
0755          * @param mid The ID of the member to construct
0756          * @since 1.0
0757          * @javascript Re-compilers must report error on the invocation to an <b>internal</b> constructor.
0758          */
0759         public Member(JsObject.Member q, Mid mid) {
0760             super(q, mid);
0761         }
0762         /**
0763          * <p>Internally constructs a member without a qualifying member.</p>
0764          * <p>This constructor is <b>internal</b> and only called inside of <b>opaque</b>
0765          * or <b>internal</b> classes or class members.</p>
0766          * <p>Note that, this constructor is <b>internal</b> but its declaring class is
0767          * <b>opaque</b>. This constructor is used to define <b>opaque</b> static fields, 
0768          * declared in <b>opaque</b> types other than the declaring class of this constructor 
0769          * itself and its subclasses. Under this circumstance, the field names must be
0770          * exactly same as the member names, as the <b>opaque</b> static fields of <b>opaque</b>
0771          * types are generally resolved by re-compilers directly to identifiers of their names.</p>
0772          * @param mid The ID of the member to construct
0773          * @since 1.0
0774          * @javascript Re-compilers must report error on the invocation to an <b>internal</b> constructor.
0775          */
0776         public Member(Mid mid) {
0777             super(mid);
0778         }
0779         @Override
0780         /**
0781          * <p>Evaluates the property, represented by the current member instance, of the
0782          * argument object.</p>
0783          * @param o The argument object
0784          * @return The value of the current member based on the object argument.
0785          * @since 1.0
0786          * @javascript Re-compilers must convert the instance invocation of this method into
0787          * the JavaScript expression: 
0788          * <pre>o.m</pre>
0789          * where <tt>m</tt> is the identifier name resolved from the current member
0790          * instance of the invocation.
0791          */
0792         public JsWindow with(ObjectLike o) {
0793             return new JsWindow(super.with(o));
0794         }
0795         /**
0796          * <p>Evaluates a property, represented by the current member instance, of the
0797          * JavaScript global object, that is, evaluates the member to a global identifier.</p>
0798          * @return The value of the current member based on the JavaScript global object.
0799          * @since 1.0
0800          * @javascript Re-compilers must convert the instance invocation of this method into
0801          * the JavaScript expression: 
0802          * <pre>m</pre>
0803          * where <tt>m</tt> is the identifier name resolved from the current member
0804          * instance of the invocation.
0805          */
0806         public JsWindow with() {
0807             return with(Js.win());
0808         }
0809 
0810         /**
0811          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0812          * name of this field, qualified by the current member instance of the field, and 
0813          * to access the property of the name on an object.</p>
0814          * @since 1.0
0815          * @see JsWindow#alert(Object)
0816          * @javascript Re-compilers must resolve the member of this instance field to the
0817          * identifier of the field name appending to the identifier resolved from its 
0818          * qualifying member with a dot in between.
0819          */
0820         public final JsFunction.Member<Void> alert   = new JsFunction.Member<Void>(this, Members.alert  );
0821         /**
0822          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0823          * name of this field, qualified by the current member instance of the field, and 
0824          * to access the property of the name on an object.</p>
0825          * @since 1.0
0826          * @see JsWindow#confirm(Object)
0827          * @javascript Re-compilers must resolve the member of this instance field to the
0828          * identifier of the field name appending to the identifier resolved from its 
0829          * qualifying member with a dot in between.
0830          */
0831         public final JsFunction.Member<java.lang.Boolean> confirm = new JsFunction.Member<java.lang.Boolean>(this, Members.confirm);
0832         /**
0833          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0834          * name of this field, qualified by the current member instance of the field, and 
0835          * to access the property of the name on an object.</p>
0836          * @since 1.0
0837          * @see JsWindow#prompt(Object)
0838          * @see JsWindow#prompt(Object, Object)
0839          * @javascript Re-compilers must resolve the member of this instance field to the
0840          * identifier of the field name appending to the identifier resolved from its 
0841          * qualifying member with a dot in between.
0842          */
0843         public final JsFunction.Member<java.lang.String> prompt  = new JsFunction.Member<java.lang.String>(this, Members.prompt );
0844         /**
0845          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0846          * name of this field, qualified by the current member instance of the field, and 
0847          * to access the property of the name on an object.</p>
0848          * @since 1.0
0849          * @see JsWindow#clearInterval(Object)
0850          * @javascript Re-compilers must resolve the member of this instance field to the
0851          * identifier of the field name appending to the identifier resolved from its 
0852          * qualifying member with a dot in between.
0853          */
0854         public final JsFunction.Member<?> clearInterval = new JsFunction.Member<java.lang.Object>(this, Members.clearInterval);
0855         /**
0856          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0857          * name of this field, qualified by the current member instance of the field, and 
0858          * to access the property of the name on an object.</p>
0859          * @since 1.0
0860          * @see JsWindow#clearTimeout(Object)
0861          * @javascript Re-compilers must resolve the member of this instance field to the
0862          * identifier of the field name appending to the identifier resolved from its 
0863          * qualifying member with a dot in between.
0864          */
0865         public final JsFunction.Member<?> clearTimeout  = new JsFunction.Member<java.lang.Object>(this, Members.clearTimeout );
0866         /**
0867          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0868          * name of this field, qualified by the current member instance of the field, and 
0869          * to access the property of the name on an object.</p>
0870          * @since 1.0
0871          * @see JsWindow#setInterval(JsFunction, Object)
0872          * @javascript Re-compilers must resolve the member of this instance field to the
0873          * identifier of the field name appending to the identifier resolved from its 
0874          * qualifying member with a dot in between.
0875          */
0876         public final JsFunction.Member<?> setInterval   = new JsFunction.Member<java.lang.Object>(this, Members.setInterval  );
0877         /**
0878          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0879          * name of this field, qualified by the current member instance of the field, and 
0880          * to access the property of the name on an object.</p>
0881          * @since 1.0
0882          * @see JsWindow#setTimeout(JsFunction, Object)
0883          * @javascript Re-compilers must resolve the member of this instance field to the
0884          * identifier of the field name appending to the identifier resolved from its 
0885          * qualifying member with a dot in between.
0886          */
0887         public final JsFunction.Member<?> setTimeout    = new JsFunction.Member<java.lang.Object>(this, Members.setTimeout   );
0888         /**
0889          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0890          * name of this field, qualified by the current member instance of the field, and 
0891          * to access the property of the name on an object.</p>
0892          * @since 1.0
0893          * @see JsWindow#addEventListener(String, JsFunction, Boolean)
0894          * @javascript Re-compilers must resolve the member of this instance field to the
0895          * identifier of the field name appending to the identifier resolved from its 
0896          * qualifying member with a dot in between.
0897          */
0898         public final JsFunction.Member<?> addEventListener = new JsFunction.Member<java.lang.Object>(this, Members.addEventListener);
0899         /**
0900          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0901          * name of this field, qualified by the current member instance of the field, and 
0902          * to access the property of the name on an object.</p>
0903          * @since 1.0
0904          * @see JsWindow#removeEventListener(String, JsFunction, Boolean)
0905          * @javascript Re-compilers must resolve the member of this instance field to the
0906          * identifier of the field name appending to the identifier resolved from its 
0907          * qualifying member with a dot in between.
0908          */
0909         public final JsFunction.Member<?> removeEventListener = new JsFunction.Member<java.lang.Object>(this, Members.removeEventListener);
0910         /**
0911          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0912          * name of this field, qualified by the current member instance of the field, and 
0913          * to access the property of the name on an object.</p>
0914          * @since 1.0
0915          * @see JsWindow#attachEvent(String, JsFunction)
0916          * @javascript Re-compilers must resolve the member of this instance field to the
0917          * identifier of the field name appending to the identifier resolved from its 
0918          * qualifying member with a dot in between.
0919          */
0920         public final JsFunction.Member<?> attachEvent = new JsFunction.Member<java.lang.Object>(this, Members.attachEvent);
0921         /**
0922          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0923          * name of this field, qualified by the current member instance of the field, and 
0924          * to access the property of the name on an object.</p>
0925          * @since 1.0
0926          * @see JsWindow#detachEvent(String, JsFunction)
0927          * @javascript Re-compilers must resolve the member of this instance field to the
0928          * identifier of the field name appending to the identifier resolved from its 
0929          * qualifying member with a dot in between.
0930          */
0931         public final JsFunction.Member<?> detachEvent = new JsFunction.Member<java.lang.Object>(this, Members.detachEvent);
0932 
0933         /**
0934          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0935          * name of this field, qualified by the current member instance of the field, and 
0936          * to access the property of the name on an object.</p>
0937          * @since 1.0
0938          * @javascript Re-compilers must resolve the member of this instance field to the
0939          * identifier of the field name appending to the identifier resolved from its 
0940          * qualifying member with a dot in between.
0941          */
0942         public final Value.Boolean.Member htmlControl = new Value.Boolean.Member(this, Members.htmlControl);
0943 
0944         /**
0945          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0946          * name of this field, qualified by the current member instance of the field, and 
0947          * to access the property of the name on an object.</p>
0948          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
0949          * read-only reference to the {@link JsDocument} object that describes the document 
0950          * contained in this window or frame.</p>
0951          * @since 1.0
0952          * @javascript Re-compilers must resolve the member of this instance field to the
0953          * identifier of the field name appending to the identifier resolved from its 
0954          * qualifying member with a dot in between.
0955          */
0956         public final JsDocument.Member document = new JsDocument.Member(this, Members.document);
0957 
0958         /**
0959          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0960          * name of this field, qualified by the current member instance of the field, and 
0961          * to access the property of the name on an object.</p>
0962          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
0963          * read-only reference to the {@link JsHistory} object of this window or frame.</p> 
0964          * @since 1.0
0965          * @javascript Re-compilers must resolve the member of this instance field to the
0966          * identifier of the field name appending to the identifier resolved from its 
0967          * qualifying member with a dot in between.
0968          */
0969         public final JsHistory.Member history = new JsHistory.Member(this, Members.history);
0970 
0971         /**
0972          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0973          * name of this field, qualified by the current member instance of the field, and 
0974          * to access the property of the name on an object.</p>
0975          * <p>The property, identified by this member, of a {@link JsWindow} object 
0976          * refers to a read-only integer value specifying the height, in pixels, of the 
0977          * document display area of this window. This dimension does not include the 
0978          * size of the menu bar, tool bars, scroll bars, and so on. The property is not 
0979          * supported by IE. Instead use the {@link JsHTMLElement#clientHeight} property 
0980          * of {@link JsHTMLDocument#documentElement} or {@link JsHTMLDocument#body} 
0981          * depending on the version of IE.</p> 
0982          * @since 1.0
0983          * @javascript Re-compilers must resolve the member of this instance field to the
0984          * identifier of the field name appending to the identifier resolved from its 
0985          * qualifying member with a dot in between.
0986          */
0987         public final Value.Integer.Member innerHeight = new Value.Integer.Member(this, Members.innerHeight);
0988         /**
0989          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0990          * name of this field, qualified by the current member instance of the field, and 
0991          * to access the property of the name on an object.</p>
0992          * <p>The property, identified by this member, of a {@link JsWindow} object 
0993          * refers to a read-only integer value specifying the width, in pixels, of the 
0994          * document display area of this window. This dimension does not include the 
0995          * size of the menu bar, tool bars, scroll bars, and so on. The property is not 
0996          * supported by IE. Instead use the {@link JsHTMLElement#clientWidth} property 
0997          * of {@link JsHTMLDocument#documentElement} or {@link JsHTMLDocument#body} 
0998          * depending on the version of IE.</p> 
0999          * @since 1.0
1000          * @javascript Re-compilers must resolve the member of this instance field to the
1001          * identifier of the field name appending to the identifier resolved from its 
1002          * qualifying member with a dot in between.
1003          */
1004         public final Value.Integer.Member innerWidth  = new Value.Integer.Member(this, Members.innerWidth );
1005 
1006         /**
1007          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1008          * name of this field, qualified by the current member instance of the field, and 
1009          * to access the property of the name on an object.</p>
1010          * <p>The property, identified by this member, of a {@link JsWindow} object refers 
1011          * to the {@link JsEvent} object that describes the most recent event. This property 
1012          * is used in the IE event model. In the standard DOM event model, the {@link JsEvent} 
1013          * object is passed as an argument to event-handler functions.</p> 
1014          * @since 1.0
1015          * @javascript Re-compilers must resolve the member of this instance field to the
1016          * identifier of the field name appending to the identifier resolved from its 
1017          * qualifying member with a dot in between.
1018          */
1019         public final JsEvent.Member event = new JsEvent.Member(this, Members.event);
1020 
1021         /**
1022          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1023          * name of this field, qualified by the current member instance of the field, and 
1024          * to access the property of the name on an object.</p>
1025          * <p>The property, identified by this member, of a {@link JsWindow} object 
1026          * refers to a read-only integer value specifying the number of pixels that the 
1027          * current document has been scrolled to the right. This property is not 
1028          * supported by IE. In IE, use the {@link JsHTMLElement#scrollLeft} property of 
1029          * {@link JsHTMLDocument#documentElement} or {@link JsHTMLDocument#body} 
1030          * depending on the version of IE.</p> 
1031          * @since 1.0
1032          * @javascript Re-compilers must resolve the member of this instance field to the
1033          * identifier of the field name appending to the identifier resolved from its 
1034          * qualifying member with a dot in between.
1035          */
1036         public final Value.Number.Member pageXOffset = new Value.Number.Member(this, Members.pageXOffset);
1037         /**
1038          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1039          * name of this field, qualified by the current member instance of the field, and 
1040          * to access the property of the name on an object.</p>
1041          * <p>The property, identified by this member, of a {@link JsWindow} object 
1042          * refers to a read-only integer value specifying the number of pixels that the 
1043          * current document has been scrolled down. This property is not 
1044          * supported by IE. In IE, use the {@link JsHTMLElement#scrollTop} property of 
1045          * {@link JsHTMLDocument#documentElement} or {@link JsHTMLDocument#body} 
1046          * depending on the version of IE.</p> 
1047          * @since 1.0
1048          * @javascript Re-compilers must resolve the member of this instance field to the
1049          * identifier of the field name appending to the identifier resolved from its 
1050          * qualifying member with a dot in between.
1051          */
1052         public final Value.Number.Member pageYOffset = new Value.Number.Member(this, Members.pageYOffset);
1053 
1054         /**
1055          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1056          * name of this field, qualified by the current member instance of the field, and 
1057          * to access the property of the name on an object.</p>
1058          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1059          * read-only reference to the {@link JsNavigator} object, which provides version 
1060          * and configuration information about the web browser.</p>
1061          * @since 1.0
1062          * @javascript Re-compilers must resolve the member of this instance field to the
1063          * identifier of the field name appending to the identifier resolved from its 
1064          * qualifying member with a dot in between.
1065          */
1066         public final JsNavigator.Member navigator = new JsNavigator.Member(this, Members.navigator);
1067         /**
1068          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1069          * name of this field, qualified by the current member instance of the field, and 
1070          * to access the property of the name on an object.</p>
1071          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1072          * reference to the {@link JsLocation} object for this window or frame. The 
1073          * object specifies the URL of the currently loaded document. Setting this 
1074          * property to a new URL string causes the browser to load and display the 
1075          * contents of that URL.</p> 
1076          * @since 1.0
1077          * @javascript Re-compilers must resolve the member of this instance field to the
1078          * identifier of the field name appending to the identifier resolved from its 
1079          * qualifying member with a dot in between.
1080          */
1081         public final JsLocation.Member location = new JsLocation.Member(this, Members.location);
1082         /**
1083          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1084          * name of this field, qualified by the current member instance of the field, and 
1085          * to access the property of the name on an object.</p>
1086          * <p>The property, identified by this member, of a {@link JsWindow} object is a
1087          * read-only reference to a {@link JsScreen} object that specifies information 
1088          * about the screen: the number of available pixels and the number of available 
1089          * colors.</p> 
1090          * @since 1.0
1091          * @javascript Re-compilers must resolve the member of this instance field to the
1092          * identifier of the field name appending to the identifier resolved from its 
1093          * qualifying member with a dot in between.
1094          */
1095         public final JsScreen.Member screen = new JsScreen.Member(this, Members.screen);
1096         /**
1097          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1098          * name of this field, qualified by the current member instance of the field, and 
1099          * to access the property of the name on an object.</p>
1100          * @since 1.0
1101          * @see JsWindow#getComputedStyle(JsHTMLElement, String)
1102          * @javascript Re-compilers must resolve the member of this instance field to the
1103          * identifier of the field name appending to the identifier resolved from its 
1104          * qualifying member with a dot in between.
1105          */
1106         public final JsFunction.Member<JsObject> getComputedStyle = new JsFunction.Member<JsObject>(this, Members.getComputedStyle);
1107         /**
1108          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1109          * name of this field, qualified by the current member instance of the field, and 
1110          * to access the property of the name on an object.</p>
1111          * <p>The property, identified by this member, of a {@link JsWindow} object 
1112          * refers to a read-only boolean value specifying whether the window has been 
1113          * closed. When a browser window closes, the {@link JsWindow} object that 
1114          * represents it does not simply disappear; it continues to exist, but its {@link #closed} 
1115          * property is set to <tt>true</tt>.</p> 
1116          * @since 1.0
1117          * @javascript Re-compilers must resolve the member of this instance field to the
1118          * identifier of the field name appending to the identifier resolved from its 
1119          * qualifying member with a dot in between.
1120          */
1121         public final Value.Boolean.Member closed                   = new Value.Boolean.Member               (this, Members.closed                  );
1122         /**
1123          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1124          * name of this field, qualified by the current member instance of the field, and 
1125          * to access the property of the name on an object.</p>
1126          * <p>The property, identified by this member, of a {@link JsWindow} object 
1127          * refers to a read/write string specifying the default message that appears in 
1128          * the status line of the window.</p> 
1129          * @since 1.0
1130          * @javascript Re-compilers must resolve the member of this instance field to the
1131          * identifier of the field name appending to the identifier resolved from its 
1132          * qualifying member with a dot in between.
1133          */
1134         public final Value.String .Member defaultStatus            = new Value.String .Member               (this, Members.defaultStatus           );
1135         /**
1136          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1137          * name of this field, qualified by the current member instance of the field, and 
1138          * to access the property of the name on an object.</p>
1139          * <p>The property, identified by this member, of a {@link JsWindow} object 
1140          * refers to an array of {@link JsWindow} objects, one for each {@link JsHTMLFrameElement} or 
1141          * {@link JsHTMLIFrameElement} object contained within this window. Note that 
1142          * frames referenced by this array may themselves contain frames and may have a 
1143          * {@link #frames} array of their own.</p> 
1144          * @since 1.0
1145          * @javascript Re-compilers must resolve the member of this instance field to the
1146          * identifier of the field name appending to the identifier resolved from its 
1147          * qualifying member with a dot in between.
1148          */
1149         public final JsArray      .Member frames                   = new JsArray      .Member               (this, Members.frames                  );
1150         /**
1151          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1152          * name of this field, qualified by the current member instance of the field, and 
1153          * to access the property of the name on an object.</p>
1154          * <p>The property, identified by this member, of a {@link JsWindow} object 
1155          * refers to a string containing the name of the window. The name is optionally 
1156          * specified when the window is created with the {@link JsWindow#open(String, String, String, Boolean)} 
1157          * method or with the <tt>name</tt> attribute of a <tt>&lt;frame&gt;</tt> tag. 
1158          * The name of a window may be used as the value of a <tt>target</tt> attribute 
1159          * of an <tt>&lt;a&gt;</tt> or <tt>&lt;form&gt;</tt> tag. Using the <tt>target</tt> 
1160          * attribute in this way specifies that the hyper-linked document or the results 
1161          * of form submission should be displayed in the named window or frame.</p> 
1162          * @since 1.0
1163          * @javascript Re-compilers must resolve the member of this instance field to the
1164          * identifier of the field name appending to the identifier resolved from its 
1165          * qualifying member with a dot in between.
1166          */
1167         public final Value.String .Member name                     = new Value.String .Member               (this, Members.name                    );
1168         /**
1169          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1170          * name of this field, qualified by the current member instance of the field, and 
1171          * to access the property of the name on an object.</p>
1172          * <p>The property, identified by this member, of a {@link JsWindow} object 
1173          * refers to a read-only integer value specifying the total height, in pixels, 
1174          * of the browser window. This dimension includes the height of the menu bar, 
1175          * tool bars, scroll bars, window borders, and so on. The property is not 
1176          * supported by IE, and IE offers no alternative property.</p> 
1177          * @since 1.0
1178          * @javascript Re-compilers must resolve the member of this instance field to the
1179          * identifier of the field name appending to the identifier resolved from its 
1180          * qualifying member with a dot in between.
1181          */
1182         public final Value.Integer.Member outerHeight              = new Value.Integer.Member               (this, Members.outerHeight             );
1183         /**
1184          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1185          * name of this field, qualified by the current member instance of the field, and 
1186          * to access the property of the name on an object.</p>
1187          * <p>The property, identified by this member, of a {@link JsWindow} object 
1188          * refers to a read-only integer value specifying the total width, in pixels, 
1189          * of the browser window. This dimension includes the width of the menu bar, 
1190          * tool bars, scroll bars, window borders, and so on. The property is not 
1191          * supported by IE, and IE offers no alternative property.</p> 
1192          * @since 1.0
1193          * @javascript Re-compilers must resolve the member of this instance field to the
1194          * identifier of the field name appending to the identifier resolved from its 
1195          * qualifying member with a dot in between.
1196          */
1197         public final Value.Integer.Member outerWidth               = new Value.Integer.Member               (this, Members.outerWidth              );
1198         /**
1199          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1200          * name of this field, qualified by the current member instance of the field, and 
1201          * to access the property of the name on an object.</p>
1202          * <p>The property, identified by this member, of a {@link JsWindow} object 
1203          * refers to a read-only integer value specifying the X coordinate of the 
1204          * upper-left corner of the window on the screen. 
1205          * IE, Safari, and Opera support {@link #screenLeft} and {@link #screenTop} 
1206          * while Firefox and Safari support {@link #screenX} and {@link #screenY}.</p> 
1207          * @since 1.0
1208          * @javascript Re-compilers must resolve the member of this instance field to the
1209          * identifier of the field name appending to the identifier resolved from its 
1210          * qualifying member with a dot in between.
1211          */
1212         public final Value.Integer.Member screenLeft               = new Value.Integer.Member               (this, Members.screenLeft              );
1213         /**
1214          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1215          * name of this field, qualified by the current member instance of the field, and 
1216          * to access the property of the name on an object.</p>
1217          * <p>The property, identified by this member, of a {@link JsWindow} object 
1218          * refers to a read-only integer value specifying the Y coordinate of the 
1219          * upper-left corner of the window on the screen. 
1220          * IE, Safari, and Opera support {@link #screenLeft} and {@link #screenTop} 
1221          * while Firefox and Safari support {@link #screenX} and {@link #screenY}.</p> 
1222          * @since 1.0
1223          * @javascript Re-compilers must resolve the member of this instance field to the
1224          * identifier of the field name appending to the identifier resolved from its 
1225          * qualifying member with a dot in between.
1226          */
1227         public final Value.Integer.Member screenTop                = new Value.Integer.Member               (this, Members.screenTop               );
1228         /**
1229          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1230          * name of this field, qualified by the current member instance of the field, and 
1231          * to access the property of the name on an object.</p>
1232          * <p>The property, identified by this member, of a {@link JsWindow} object 
1233          * refers to a read-only integer value specifying the X coordinate of the 
1234          * upper-left corner of the window on the screen. 
1235          * IE, Safari, and Opera support {@link #screenLeft} and {@link #screenTop} 
1236          * while Firefox and Safari support {@link #screenX} and {@link #screenY}.</p> 
1237          * @since 1.0
1238          * @javascript Re-compilers must resolve the member of this instance field to the
1239          * identifier of the field name appending to the identifier resolved from its 
1240          * qualifying member with a dot in between.
1241          */
1242         public final Value.Integer.Member screenX                  = new Value.Integer.Member               (this, Members.screenX                 );
1243         /**
1244          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1245          * name of this field, qualified by the current member instance of the field, and 
1246          * to access the property of the name on an object.</p>
1247          * <p>The property, identified by this member, of a {@link JsWindow} object 
1248          * refers to a read-only integer value specifying the Y coordinate of the 
1249          * upper-left corner of the window on the screen. 
1250          * IE, Safari, and Opera support {@link #screenLeft} and {@link #screenTop} 
1251          * while Firefox and Safari support {@link #screenX} and {@link #screenY}.</p> 
1252          * @since 1.0
1253          * @javascript Re-compilers must resolve the member of this instance field to the
1254          * identifier of the field name appending to the identifier resolved from its 
1255          * qualifying member with a dot in between.
1256          */
1257         public final Value.Integer.Member screenY                  = new Value.Integer.Member               (this, Members.screenY                 );
1258         /**
1259          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1260          * name of this field, qualified by the current member instance of the field, and 
1261          * to access the property of the name on an object.</p>
1262          * @since 1.0
1263          * @see JsWindow#blur()
1264          * @javascript Re-compilers must resolve the member of this instance field to the
1265          * identifier of the field name appending to the identifier resolved from its 
1266          * qualifying member with a dot in between.
1267          */
1268         public final JsFunction.Member<?> blur                     = new JsFunction.Member<java.lang.Object>(this, Members.blur                    );
1269         /**
1270          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1271          * name of this field, qualified by the current member instance of the field, and 
1272          * to access the property of the name on an object.</p>
1273          * @since 1.0
1274          * @see JsWindow#close()
1275          * @javascript Re-compilers must resolve the member of this instance field to the
1276          * identifier of the field name appending to the identifier resolved from its 
1277          * qualifying member with a dot in between.
1278          */
1279         public final JsFunction.Member<?> close                    = new JsFunction.Member<java.lang.Object>(this, Members.close                   );
1280         /**
1281          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1282          * name of this field, qualified by the current member instance of the field, and 
1283          * to access the property of the name on an object.</p>
1284          * @since 1.0
1285          * @see JsWindow#focus()
1286          * @javascript Re-compilers must resolve the member of this instance field to the
1287          * identifier of the field name appending to the identifier resolved from its 
1288          * qualifying member with a dot in between.
1289          */
1290         public final JsFunction.Member<?> focus                    = new JsFunction.Member<java.lang.Object>(this, Members.focus                   );
1291         /**
1292          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1293          * name of this field, qualified by the current member instance of the field, and 
1294          * to access the property of the name on an object.</p>
1295          * @since 1.0
1296          * @see JsWindow#moveBy(Integer, Integer)
1297          * @javascript Re-compilers must resolve the member of this instance field to the
1298          * identifier of the field name appending to the identifier resolved from its 
1299          * qualifying member with a dot in between.
1300          */
1301         public final JsFunction.Member<?> moveBy                   = new JsFunction.Member<java.lang.Object>(this, Members.moveBy                  );
1302         /**
1303          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1304          * name of this field, qualified by the current member instance of the field, and 
1305          * to access the property of the name on an object.</p>
1306          * @since 1.0
1307          * @see JsWindow#moveTo(Integer, Integer)
1308          * @javascript Re-compilers must resolve the member of this instance field to the
1309          * identifier of the field name appending to the identifier resolved from its 
1310          * qualifying member with a dot in between.
1311          */
1312         public final JsFunction.Member<?> moveTo                   = new JsFunction.Member<java.lang.Object>(this, Members.moveTo                  );
1313         /**
1314          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1315          * name of this field, qualified by the current member instance of the field, and 
1316          * to access the property of the name on an object.</p>
1317          * @since 1.0
1318          * @see JsWindow#open(String, String, String, Boolean)
1319          * @javascript Re-compilers must resolve the member of this instance field to the
1320          * identifier of the field name appending to the identifier resolved from its 
1321          * qualifying member with a dot in between.
1322          */
1323         public final JsFunction.Member<JsWindow> open = new JsFunction.Member<JsWindow>(this, Members.open, Generic.get(JsWindow.class));
1324         /**
1325          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1326          * name of this field, qualified by the current member instance of the field, and 
1327          * to access the property of the name on an object.</p>
1328          * @since 1.0
1329          * @see JsWindow#print()
1330          * @javascript Re-compilers must resolve the member of this instance field to the
1331          * identifier of the field name appending to the identifier resolved from its 
1332          * qualifying member with a dot in between.
1333          */
1334         public final JsFunction.Member<?> print                    = new JsFunction.Member<java.lang.Object>(this, Members.print                   );
1335         /**
1336          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1337          * name of this field, qualified by the current member instance of the field, and 
1338          * to access the property of the name on an object.</p>
1339          * @since 1.0
1340          * @see JsWindow#resizeBy(Integer, Integer)
1341          * @javascript Re-compilers must resolve the member of this instance field to the
1342          * identifier of the field name appending to the identifier resolved from its 
1343          * qualifying member with a dot in between.
1344          */
1345         public final JsFunction.Member<?> resizeBy                 = new JsFunction.Member<java.lang.Object>(this, Members.resizeBy                );
1346         /**
1347          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1348          * name of this field, qualified by the current member instance of the field, and 
1349          * to access the property of the name on an object.</p>
1350          * @since 1.0
1351          * @see JsWindow#resizeTo(Integer, Integer)
1352          * @javascript Re-compilers must resolve the member of this instance field to the
1353          * identifier of the field name appending to the identifier resolved from its 
1354          * qualifying member with a dot in between.
1355          */
1356         public final JsFunction.Member<?> resizeTo                 = new JsFunction.Member<java.lang.Object>(this, Members.resizeTo                );
1357         /**
1358          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1359          * name of this field, qualified by the current member instance of the field, and 
1360          * to access the property of the name on an object.</p>
1361          * @since 1.0
1362          * @see JsWindow#scrollBy(Integer, Integer)
1363          * @javascript Re-compilers must resolve the member of this instance field to the
1364          * identifier of the field name appending to the identifier resolved from its 
1365          * qualifying member with a dot in between.
1366          */
1367         public final JsFunction.Member<?> scrollBy                 = new JsFunction.Member<java.lang.Object>(this, Members.scrollBy                );
1368         /**
1369          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1370          * name of this field, qualified by the current member instance of the field, and 
1371          * to access the property of the name on an object.</p>
1372          * @since 1.0
1373          * @see JsWindow#scrollTo(Integer, Integer)
1374          * @javascript Re-compilers must resolve the member of this instance field to the
1375          * identifier of the field name appending to the identifier resolved from its 
1376          * qualifying member with a dot in between.
1377          */
1378         public final JsFunction.Member<?> scrollTo                 = new JsFunction.Member<java.lang.Object>(this, Members.scrollTo                );
1379         /**
1380          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1381          * name of this field, qualified by the current member instance of the field, and 
1382          * to access the property of the name on an object.</p>
1383          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1384          * reference to an event handler function invoked when the window loses focus.</p> 
1385          * @since 1.0
1386          * @javascript Re-compilers must resolve the member of this instance field to the
1387          * identifier of the field name appending to the identifier resolved from its 
1388          * qualifying member with a dot in between.
1389          */
1390         public final JsFunction.Member<?> onblur                   = new JsFunction.Member<java.lang.Object>(this, Members.onblur                  );
1391         /**
1392          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1393          * name of this field, qualified by the current member instance of the field, and 
1394          * to access the property of the name on an object.</p>
1395          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1396          * reference to an event handler function invoked when a JavaScript error occurs.</p> 
1397          * @since 1.0
1398          * @javascript Re-compilers must resolve the member of this instance field to the
1399          * identifier of the field name appending to the identifier resolved from its 
1400          * qualifying member with a dot in between.
1401          */
1402         public final JsFunction.Member<?> onerror                  = new JsFunction.Member<java.lang.Object>(this, Members.onerror                 );
1403         /**
1404          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1405          * name of this field, qualified by the current member instance of the field, and 
1406          * to access the property of the name on an object.</p>
1407          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1408          * reference to an event handler function invoked when the window gains focus.</p> 
1409          * @since 1.0
1410          * @javascript Re-compilers must resolve the member of this instance field to the
1411          * identifier of the field name appending to the identifier resolved from its 
1412          * qualifying member with a dot in between.
1413          */
1414         public final JsFunction.Member<?> onfocus                  = new JsFunction.Member<java.lang.Object>(this, Members.onfocus                 );
1415         /**
1416          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1417          * name of this field, qualified by the current member instance of the field, and 
1418          * to access the property of the name on an object.</p>
1419          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1420          * reference to an event handler function invoked when the document or frameset is fully 
1421          * loaded.</p> 
1422          * @since 1.0
1423          * @javascript Re-compilers must resolve the member of this instance field to the
1424          * identifier of the field name appending to the identifier resolved from its 
1425          * qualifying member with a dot in between.
1426          */
1427         public final JsFunction.Member<?> onload                   = new JsFunction.Member<java.lang.Object>(this, Members.onload                  );
1428         /**
1429          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1430          * name of this field, qualified by the current member instance of the field, and 
1431          * to access the property of the name on an object.</p>
1432          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1433          * reference to an event handler function invoked when the window is resized.</p> 
1434          * @since 1.0
1435          * @javascript Re-compilers must resolve the member of this instance field to the
1436          * identifier of the field name appending to the identifier resolved from its 
1437          * qualifying member with a dot in between.
1438          */
1439         public final JsFunction.Member<?> onresize                 = new JsFunction.Member<java.lang.Object>(this, Members.onresize                );
1440         /**
1441          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1442          * name of this field, qualified by the current member instance of the field, and 
1443          * to access the property of the name on an object.</p>
1444          * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1445          * reference to an event handler function invoked when the browser leaves the current 
1446          * document or frameset.</p> 
1447          * @since 1.0
1448          * @javascript Re-compilers must resolve the member of this instance field to the
1449          * identifier of the field name appending to the identifier resolved from its 
1450          * qualifying member with a dot in between.
1451          */
1452         public final JsFunction.Member<?> onunload                 = new JsFunction.Member<java.lang.Object>(this, Members.onunload                );
1453         /**
1454          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
1455          * name of this field, qualified by the current member instance of the field, and 
1456          * to access the property of the name on an object.</p>
1457          * @since 1.0
1458          * @see JsWindow.Image
1459          * @javascript Re-compilers must resolve the member of this instance field to the
1460          * identifier of the field name appending to the identifier resolved from its 
1461          * qualifying member with a dot in between.
1462          */
1463         public final Image.Member Image = new Image.Member(this, Members.Image);
1464     }
1465 
1466     /**
1467      * <p>Casts an <b>opaque</b> object to the current <b>opaque</b> type by wrapping it
1468      * with the wrapping constructor.</p>
1469      * @param var The argument of an <b>opaque</b> object.
1470      * @since 1.0
1471      * @javascript Re-compilers must ignore the construction operation of this constructor,
1472      * that is, replacing it with its only argument.
1473      */
1474     public JsWindow(JsObject var) {
1475         super(var);
1476     }
1477 
1478     /**
1479      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1480      * without a qualifying member and to access the property of the name on an object.</p>
1481      * @since 1.0
1482      * @see JsWindow#alert(Object)
1483      * @javascript Re-compilers must resolve the member of this static field to the
1484      * identifier of the field name.
1485      */
1486     public static final JsFunction.Member<Void> alert = new JsFunction.Member<Void>(Members.alert);
1487     /**
1488      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1489      * without a qualifying member and to access the property of the name on an object.</p>
1490      * @since 1.0
1491      * @see JsWindow#confirm(Object)
1492      * @javascript Re-compilers must resolve the member of this static field to the
1493      * identifier of the field name.
1494      */
1495     public static final JsFunction.Member<java.lang.Boolean> confirm = new JsFunction.Member<java.lang.Boolean>(Members.confirm);
1496     /**
1497      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1498      * without a qualifying member and to access the property of the name on an object.</p>
1499      * @since 1.0
1500      * @see JsWindow#prompt(Object)
1501      * @see JsWindow#prompt(Object, Object)
1502      * @javascript Re-compilers must resolve the member of this static field to the
1503      * identifier of the field name.
1504      */
1505     public static final JsFunction.Member<java.lang.String> prompt = new JsFunction.Member<java.lang.String>(Members.prompt );
1506     /**
1507      * <p>Displays a simple message in a dialog box.</p>
1508      * <p>In JavaScript, this method displays the specified <tt>message</tt> to the 
1509      * user in a dialog box. The dialog box contains an OK button the user can click to 
1510      * dismiss it. The dialog box is typically modal, and the call to this function 
1511      * typically blocks until the dialog is dismissed.</p>
1512      * <p>Perhaps the most common use of this method is to display error messages when the 
1513      * user's input to some form element is invalid in some way. The alert dialog box can 
1514      * inform the user of the problem and explain what needs to be corrected to avoid the 
1515      * problem in the future</p>
1516      * <p>The appearance of the dialog box is platform-dependent, but it generally contains 
1517      * graphics that indicate an error, warning, or alert message of some kind. While it can 
1518      * display any desired message, the alert graphics of the dialog box mean that this 
1519      * method is not appropriate for simple informational messages like "Welcome to my blog"</p>
1520      * <p>Note that the <tt>message</tt> displayed in the dialog box is a string of 
1521      * plain text, not formatted HTML. You can use the newline character "\n" in your strings 
1522      * to break your message across multiple lines. You can also do some rudimentary 
1523      * formatting using spaces and can approximate horizontal rules with underscore characters, 
1524      * but the results depend greatly on the font used in the dialog box and thus are 
1525      * system-dependent.</p>
1526      * @param message The plain-text (not HTML) string to display in a dialog box popped up 
1527      * over the current window.
1528      * @see js.Js#alert(Object)
1529      * @see jsx.client.Global#alert(Object)
1530      * @see jsx.client.Client#alert(Object)
1531      * @since 1.0
1532      * @javascript Re-compilers must convert the instance invocation of this method directly 
1533      * into a JavaScript invocation on its current object instance without changing the 
1534      * method name, but expanding variable arguments, if any, into comma-separated values. 
1535      */
1536     public final void alert(java.lang.Object message) {
1537         call(alert, message);
1538     }
1539     /**
1540      * <p>Asks a yes-or-no question with a dialog box.</p>
1541      * <p>In JavaScript, this method displays the specified question in a dialog box. The 
1542      * dialog box contains OK and Cancel buttons that the user can use to answer the 
1543      * question. If the user clicks the OK button, it returns <tt>true</tt>. If the 
1544      * user clicks Cancel, it returns <tt>false</tt>.</p>
1545      * <p>The dialog box that is displayed by the this method is modal. That is, it blocks 
1546      * all user input to the main browser window until the user dismisses the dialog box 
1547      * by clicking on the OK or Cancel buttons. Since this method returns a value depending 
1548      * on the user's response to the dialog box, JavaScript execution pauses in the call to 
1549      * this method, and subsequent statements are not executed until the user responds to 
1550      * the dialog box.</p>
1551      * <p>There is no way to change the labels that appear in the buttons of the dialog box 
1552      * (to make them read Yes and No, for example). Therefore, you should take care to 
1553      * phrase your question or message so that OK and Cancel are suitable responses.</p>
1554      * @param question The plain-text (not HTML) string to be displayed in the dialog box. 
1555      * It should generally express a question you want the user to answer.
1556      * @return <tt>true</tt> if the user clicks the OK button; <tt>false</tt> if 
1557      * the user clicks the Cancel button.
1558      * @see js.Js#confirm(Object)
1559      * @see jsx.client.Global#confirm(Object)
1560      * @see jsx.client.Client#confirm(Object)
1561      * @since 1.0
1562      * @javascript Re-compilers must convert the instance invocation of this method directly 
1563      * into a JavaScript invocation on its current object instance without changing the 
1564      * method name, but expanding variable arguments, if any, into comma-separated values. 
1565      */
1566     public final java.lang.Boolean confirm(java.lang.Object question) {
1567         return call(confirm, question);
1568     }
1569     /**
1570      * <p>Asks for simple string input with a dialog box.</p>
1571      * <p>This method displays text input field and OK and Cancel buttons in a dialog box. 
1572      * Platform-dependent graphics in the dialog box help indicate to the user that an 
1573      * input is desired.</p>
1574      * <p>If the user clicks the Cancel button, the method returns <tt>null</tt>. If 
1575      * the user clicks the OK button, it returns the text currently displayed in the 
1576      * input field.</p>
1577      * <p>The dialog box that is displayed by this method is modal. That is, it blocks all 
1578      * user input to the main browser window until the user dismisses the dialog box by 
1579      * clicking on the OK or Cancel buttons. Since this method returns a value depending 
1580      * on the user's response to the dialog box, JavaScript execution pauses in the call 
1581      * to this method, and subsequent statements are not executed until the user responds 
1582      * to the dialog box.</p>
1583      * @param message The plain-text (not HTML) string to be displayed in the dialog box. 
1584      * It should ask the user to enter the information you want.
1585      * @return The string entered by the user, the empty string if the user did not enter 
1586      * a string, or <tt>null</tt> if the user clicked Cancel.
1587      * @see #prompt(Object, Object)
1588      * @see js.Js#prompt(Object)
1589      * @see jsx.client.Global#prompt(Object)
1590      * @see jsx.client.Client#prompt(Object)
1591      * @since 1.0
1592      * @javascript Re-compilers must convert the instance invocation of this method directly 
1593      * into a JavaScript invocation on its current object instance without changing the 
1594      * method name, but expanding variable arguments, if any, into comma-separated values. 
1595      */
1596     public final java.lang.String prompt(java.lang.Object message) {
1597         return call(prompt, message);
1598     }
1599     /**
1600      * <p>Asks for simple string input with a dialog box.</p>
1601      * <p>This method displays the specified message in a dialog box that also contains a 
1602      * text input field and OK and Cancel buttons. Platform-dependent graphics in the 
1603      * dialog box help indicate to the user that an input is desired.</p>
1604      * <p>If the user clicks the Cancel button, the method returns <tt>null</tt>. If 
1605      * the user clicks the OK button, it returns the text currently displayed in the 
1606      * input field.</p>
1607      * <p>The dialog box that is displayed by this method is modal. That is, it blocks all 
1608      * user input to the main browser window until the user dismisses the dialog box by 
1609      * clicking on the OK or Cancel buttons. Since this method returns a value depending 
1610      * on the user's response to the dialog box, JavaScript execution pauses in the call 
1611      * to this method, and subsequent statements are not executed until the user responds 
1612      * to the dialog box.</p>
1613      * @param message The plain-text (not HTML) string to be displayed in the dialog box. 
1614      * It should ask the user to enter the information you want.
1615      * @param defaultInput A string that is displayed as the default input in the dialog 
1616      * box. Pass the empty string ("") to make the method display an empty input box.
1617      * @return The string entered by the user, the empty string if the user did not enter 
1618      * a string, or <tt>null</tt> if the user clicked Cancel.
1619      * @see #prompt(Object)
1620      * @see js.Js#prompt(Object, Object)
1621      * @see jsx.client.Global#prompt(Object, Object)
1622      * @see jsx.client.Client#prompt(Object, Object)
1623      * @since 1.0
1624      * @javascript Re-compilers must convert the instance invocation of this method directly 
1625      * into a JavaScript invocation on its current object instance without changing the 
1626      * method name, but expanding variable arguments, if any, into comma-separated values. 
1627      */
1628     public final java.lang.String prompt(java.lang.Object message, java.lang.Object defaultInput) {
1629         return call(prompt, new Vars<java.lang.Object>().add(message).add(defaultInput));
1630     }
1631 
1632     /**
1633      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1634      * without a qualifying member and to access the property of the name on an object.</p>
1635      * @since 1.0
1636      * @see #clearInterval(Object)
1637      * @javascript Re-compilers must resolve the member of this static field to the
1638      * identifier of the field name.
1639      */
1640     public static final JsFunction.Member<?> clearInterval = new JsFunction.Member<java.lang.Object>(Members.clearInterval);
1641     /**
1642      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1643      * without a qualifying member and to access the property of the name on an object.</p>
1644      * @since 1.0
1645      * @see #clearTimeout(Object)
1646      * @javascript Re-compilers must resolve the member of this static field to the
1647      * identifier of the field name.
1648      */
1649     public static final JsFunction.Member<?> clearTimeout  = new JsFunction.Member<java.lang.Object>(Members.clearTimeout );
1650     /**
1651      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1652      * without a qualifying member and to access the property of the name on an object.</p>
1653      * @since 1.0
1654      * @see #setInterval(JsFunction, Object)
1655      * @javascript Re-compilers must resolve the member of this static field to the
1656      * identifier of the field name.
1657      */
1658     public static final JsFunction.Member<?> setInterval   = new JsFunction.Member<java.lang.Object>(Members.setInterval  );
1659     /**
1660      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1661      * without a qualifying member and to access the property of the name on an object.</p>
1662      * @since 1.0
1663      * @see #setTimeout(JsFunction, Object)
1664      * @javascript Re-compilers must resolve the member of this static field to the
1665      * identifier of the field name.
1666      */
1667     public static final JsFunction.Member<?> setTimeout    = new JsFunction.Member<java.lang.Object>(Members.setTimeout   );
1668     /**
1669      * <p>Cancels periodic execution of code.</p>
1670      * <p>This method stops the repeated execution of code that was started by a call to 
1671      * {@link #setInterval(JsFunction, Object)}. <tt>intervalId</tt> must be the value 
1672      * that was returned by a call to {@link #setInterval(JsFunction, Object)}.</p>
1673      * @param intervalId The value returned by the corresponding call to {@link #setInterval(JsFunction, Object)}.
1674      * @see #setInterval(JsFunction, Object)
1675      * @see js.Js#clearInterval(Object)
1676      * @see jsx.client.Global#clearInterval(Object)
1677      * @see jsx.client.Client#clearInterval(Object)
1678      * @see jsx.Interval
1679      * @since 1.0
1680      * @javascript Re-compilers must convert the instance invocation of this method directly 
1681      * into a JavaScript invocation on its current object instance without changing the 
1682      * method name, but expanding variable arguments, if any, into comma-separated values. 
1683      */
1684     public final void clearInterval(java.lang.Object intervalId) {
1685         call(clearInterval, intervalId);
1686     }
1687     /**
1688      * <p>Cancels a pending timeout operation.</p>
1689      * <p>This method cancels the execution of code that has been deferred with the 
1690      * {@link #setTimeout(JsFunction, Object)} method. The <tt>timeoutId</tt> argument 
1691      * is a value returned by the call to {@link #setTimeout(JsFunction, Object)} and 
1692      * identifies which deferred code to cancel.</p>
1693      * @param timeoutId A value returned by {@link #setTimeout(JsFunction, Object)} that 
1694      * identifies the timeout to be canceled.
1695      * @see #clearTimeout(Object)
1696      * @see js.Js#clearTimeout(Object)
1697      * @see jsx.client.Global#clearTimeout(Object)
1698      * @see jsx.client.Client#clearTimeout(Object)
1699      * @see jsx.Timeout
1700      * @since 1.0
1701      * @javascript Re-compilers must convert the instance invocation of this method directly 
1702      * into a JavaScript invocation on its current object instance without changing the 
1703      * method name, but expanding variable arguments, if any, into comma-separated values. 
1704      */
1705     public final void clearTimeout(java.lang.Object timeoutId) {
1706         call(clearTimeout, timeoutId);
1707     }
1708     /**
1709      * <p>Executes code at periodic intervals.</p>
1710      * <p>Note that the specified function is executed in the context of the Window object, 
1711      * that is, the Window object is the value of the <tt>this</tt> keyword of the 
1712      * executing context of the function. This is <tt>true</tt> even if the call to 
1713      * {@link #setTimeout(JsFunction, Object)} occurred within a function with a longer 
1714      * scope chain.</p>
1715      * @param f A function to be periodically invoked.
1716      * @param interval The interval, in milliseconds, between invocations of the function.
1717      * @return A value that can be passed to {@link #clearInterval(Object)} method to 
1718      * cancel the periodic execution of the function.
1719      * @see #clearInterval(Object)
1720      * @see js.Js#setInterval(JsFunction, Number)
1721      * @see jsx.client.Global#setInterval(JsFunction)
1722      * @see jsx.client.Global#setInterval(JsFunction, Number)
1723      * @see jsx.client.Client#setInterval(JsFunction)
1724      * @see jsx.client.Client#setInterval(JsFunction, Number)
1725      * @see jsx.Interval
1726      * @since 1.0
1727      * @javascript Re-compilers must convert the instance invocation of this method directly 
1728      * into a JavaScript invocation on its current object instance without changing the 
1729      * method name, but expanding variable arguments, if any, into comma-separated values. 
1730      */
1731     public final java.lang.Object setInterval(JsFunction<?> f, java.lang.Object interval) {
1732         return call(setInterval, new Vars<java.lang.Object>().add(f).add(interval));
1733     }
1734     /**
1735      * <p>Executes code after a specified amount of time elapses.</p>
1736      * <p>Note that this method executes the specified function only once. The function is 
1737      * executed in the context of the Window object, that is, the Window object is the 
1738      * value of the <tt>this</tt> keyword of the executing context of the function. 
1739      * This is <tt>true</tt> even if the call to {@link #setTimeout(JsFunction, Object)} 
1740      * occurred within a function with a longer scope chain.</p>
1741      * @param f A function to be invoked after the <tt>delay</tt> has elapsed.
1742      * @param delay The amount of time, in milliseconds, before the function should be executed.
1743      * @return A value that can be passed to the {@link #clearTimeout(Object)} method to 
1744      * cancel the execution of the function.
1745      * @see #clearTimeout(Object)
1746      * @see js.Js#setTimeout(JsFunction, Number)
1747      * @see jsx.client.Global#setTimeout(JsFunction)
1748      * @see jsx.client.Global#setTimeout(JsFunction, Number)
1749      * @see jsx.client.Client#setTimeout(JsFunction)
1750      * @see jsx.client.Client#setTimeout(JsFunction, Number)
1751      * @see jsx.Timeout
1752      * @since 1.0
1753      * @javascript Re-compilers must convert the instance invocation of this method directly 
1754      * into a JavaScript invocation on its current object instance without changing the 
1755      * method name, but expanding variable arguments, if any, into comma-separated values. 
1756      */
1757     public final java.lang.Object setTimeout(JsFunction<?> f, java.lang.Object delay) {
1758         return call(setTimeout, new Vars<java.lang.Object>().add(f).add(delay));
1759     }
1760     /**
1761      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1762      * without a qualifying member and to access the property of the name on an object.</p>
1763      * @since 1.0
1764      * @see #addEventListener(String, JsFunction, Boolean)
1765      * @javascript Re-compilers must resolve the member of this static field to the
1766      * identifier of the field name.
1767      */
1768     public static final JsFunction.Member<?> addEventListener = new JsFunction.Member<java.lang.Object>(Members.addEventListener);
1769     /**
1770      * <p>Adds an event handler function to the set of event handlers for this node. 
1771      * This is a DOM-standard method supported by all modern browsers except IE.</p>
1772      * <p>This method adds the specified event <tt>listener</tt> function to the set of 
1773      * listeners registered on this node to handle events of the specified <tt>type</tt>. 
1774      * If <tt>useCapture</tt> is <tt>true</tt>, the <tt>listener</tt> is registered as 
1775      * a capturing event listener. If <tt>useCapture</tt> is <tt>false</tt>, it is 
1776      * registered as a normal event listener.</p>
1777      * <p>This method may be called multiple times to register multiple event handlers 
1778      * for the same type of event on the same node. Note, however, that the DOM 
1779      * Specification makes no guarantees about the order in which multiple event handlers 
1780      * are invoked.</p>
1781      * <p>If the same event listener function is registered twice on the same node with 
1782      * the same <tt>type</tt> and <tt>useCapture</tt> arguments, the second registration 
1783      * is simply ignored. If a new event listener is registered on this node while an 
1784      * event is being handled at this node, the new event listener is not invoked for 
1785      * that event.</p>
1786      * <p>When a node is duplicated with {@link JsNode#cloneNode(Boolean)} or {@link JsDocument#importNode(JsNode, Boolean)}, 
1787      * the event listeners registered for the original node are not copied.</p>
1788      * <p>The same method is also defined by, and works analogously on, the {@link JsElement} 
1789      * and {@link JsWindow} objects</p>
1790      * @param type The type of event for which the event listener is to be invoked.
1791      * @param listener The event listener function that is invoked when an event of the 
1792      * specified type is dispatched to this node. When invoked, the listener function 
1793      * is passed an {@link JsEvent} object and is invoked as a method of the node on 
1794      * which it is registered.
1795      * @param useCapture If <tt>true</tt>, the specified <tt>listener</tt> is to be 
1796      * invoked only during the capturing phase of event propagation. The more common 
1797      * value of <tt>false</tt> means that the <tt>listener</tt> is not invoked during 
1798      * the capturing phase but instead is invoked when this node is the actual event 
1799      * target or when the event bubbles up to this node from its original target.
1800      * @since 1.0
1801      * @see #attachEvent(String, JsFunction)
1802      * @see #removeEventListener(String, JsFunction, Boolean)
1803      * @see JsElement#addEventListener(String, JsFunction, Boolean)
1804      * @see JsDocument#addEventListener(String, JsFunction, Boolean)
1805      * @javascript Re-compilers must convert the instance invocation of this method directly
1806      * into a JavaScript invocation on its current object instance without changing the 
1807      * method name, but expanding variable arguments, if any, into comma-separated values. 
1808      */
1809     public final void addEventListener(java.lang.String type, JsFunction<?> listener, java.lang.Boolean useCapture) {
1810         call(addEventListener, new Vars<java.lang.Object>().add(type).add(listener).add(useCapture));
1811     }
1812     /**
1813      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1814      * without a qualifying member and to access the property of the name on an object.</p>
1815      * @since 1.0
1816      * @see #removeEventListener(String, JsFunction, Boolean)
1817      * @javascript Re-compilers must resolve the member of this static field to the
1818      * identifier of the field name.
1819      */
1820     public static final JsFunction.Member<?> removeEventListener = new JsFunction.Member<java.lang.Object>(Members.removeEventListener);
1821     /**
1822      * <p>Removes an event handler function from the set of handlers for this node. 
1823      * This is a standard DOM method implemented by all modern browsers except IE.</p>
1824      * <p>This method removes the specified event <tt>listener</tt> function. The <tt>type</tt> 
1825      * and <tt>useCapture</tt> arguments must be the same as they are in the 
1826      * corresponding call to {@link #addEventListener(String, JsFunction, Boolean)}. If 
1827      * no event listener is found that matches the specified arguments, this method does 
1828      * nothing.</p>
1829      * <p>Once an event <tt>listener</tt> function has been removed by this method, it 
1830      * will no longer be invoked for the specified <tt>type</tt> of event on this node. 
1831      * This is true even if the event <tt>listener</tt> is removed by another event 
1832      * listener registered for the same type of event on the same node.</p>
1833      * <p>The same method is also defined by, and works analogously on, the {@link JsElement} 
1834      * and {@link JsDocument} objects</p>
1835      * @param type The type of event for which the event listener is to be deleted.
1836      * @param listener The event listener function that is to be removed.
1837      * @param useCapture <tt>true</tt> if a capturing event listener is to be removed; 
1838      * <tt>false</tt> if a normal event listener is to be removed.
1839      * @since 1.0
1840      * @see #detachEvent(String, JsFunction)
1841      * @see #addEventListener(String, JsFunction, Boolean)
1842      * @see JsElement#removeEventListener(String, JsFunction, Boolean)
1843      * @see JsDocument#removeEventListener(String, JsFunction, Boolean)
1844      * @javascript Re-compilers must convert the instance invocation of this method directly
1845      * into a JavaScript invocation on its current object instance without changing the 
1846      * method name, but expanding variable arguments, if any, into comma-separated values. 
1847      */
1848     public final void removeEventListener(java.lang.String type, JsFunction<?> listener, java.lang.Boolean useCapture) {
1849         call(removeEventListener, new Vars<java.lang.Object>().add(type).add(listener).add(useCapture));
1850     }
1851     /**
1852      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1853      * without a qualifying member and to access the property of the name on an object.</p>
1854      * @since 1.0
1855      * @see #attachEvent(String, JsFunction)
1856      * @javascript Re-compilers must resolve the member of this static field to the
1857      * identifier of the field name.
1858      */
1859     public static final JsFunction.Member<?> attachEvent = new JsFunction.Member<java.lang.Object>(Members.attachEvent);
1860     /**
1861      * <p>Adds an event handler function to the set of handlers for this node. 
1862      * This is the IE-specific alternative to {@link #addEventListener(String, JsFunction, Boolean)}.</p>
1863      * <p>This method is an IE-specific event registration method. It serves the same 
1864      * purpose as the standard {@link #addEventListener(String, JsFunction, Boolean)} 
1865      * method, which IE does not support, but is different from that function in several 
1866      * important ways:
1867      * <ul>
1868      * <li>Since the IE event model does not support event capturing, this method and 
1869      * {@link #detachEvent(String, JsFunction)} expect only two arguments: the event 
1870      * type and the handler function.</li>
1871      * <li>The event handler names passed to the IE methods should include the "on" 
1872      * prefix.</li>
1873      * <li>Functions registered with this method are invoked with no {@link JsEvent} 
1874      * {@link JsWindow#event} property of 
1875      * {@link JsWindow#window} object.</li>
1876      * <li>Functions registered with this method are invoked as global functions, rather 
1877      * than as methods of the node on which the event occurred. That is, when an event 
1878      * handler registered with this method executes, the <tt>this</tt> keyword refers to 
1879      * {@link JsWindow#window} object, not to the event's target node.</li>
1880      * <li>This method allows the same event handler function to be registered more than 
1881      * once. When an event of the specified type occurs, the registered function is 
1882      * invoked as many times as it is registered.</li>
1883      * </ul>
1884      * </p>
1885      * <p>The same method is also defined by, and works analogously on, the {@link JsElement} 
1886      * and {@link JsDocument} objects</p>
1887      * @param type The type of event for which the event listener is to be invoked, with 
1888      * a leading "on" prefix.
1889      * @param listener The event listener function that is invoked when an event of the 
1890      * specified type is dispatched to this node. This function is not passed any 
1891      * {@link JsWindow#event} 
1892      * property of the {@link JsWindow} object.
1893      * @since 1.0
1894      * @see #addEventListener(String, JsFunction, Boolean)
1895      * @see #detachEvent(String, JsFunction)
1896      * @see JsElement#attachEvent(String, JsFunction)
1897      * @see JsDocument#attachEvent(String, JsFunction)
1898      * @javascript Re-compilers must convert the instance invocation of this method directly
1899      * into a JavaScript invocation on its current object instance without changing the 
1900      * method name, but expanding variable arguments, if any, into comma-separated values. 
1901      */
1902     public final void attachEvent(java.lang.String type, JsFunction<?> listener) {
1903         call(attachEvent, new Vars<java.lang.Object>().add(type).add(listener));
1904     }
1905     /**
1906      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1907      * without a qualifying member and to access the property of the name on an object.</p>
1908      * @since 1.0
1909      * @see #detachEvent(String, JsFunction)
1910      * @javascript Re-compilers must resolve the member of this static field to the
1911      * identifier of the field name.
1912      */
1913     public static final JsFunction.Member<?> detachEvent = new JsFunction.Member<java.lang.Object>(Members.detachEvent);
1914     /**
1915      * <p>Removes an event handler function from this node. This is the IE-specific 
1916      * alternative to the standard {@link #removeEventListener(String, JsFunction, Boolean)} 
1917      * method.</p>
1918      * <p>This method undoes the event handler function registration performed by the 
1919      * {@link #attachEvent(String, JsFunction)} method. It is the IE-specific analog to 
1920      * the standard {@link #removeEventListener(String, JsFunction, Boolean)}. To remove 
1921      * an event handler function for a node, simply invoke this method with the same 
1922      * arguments you originally passed to {@link #attachEvent(String, JsFunction)}.</p>
1923      * <p>The same method is also defined by, and works analogously on, the {@link JsElement} 
1924      * and {@link JsDocument} objects</p>
1925      * @param type The type of event for which the event listener is to be invoked, with 
1926      * a leading "on" prefix.
1927      * @param listener The event listener function that is to be removed.
1928      * @since 1.0
1929      * @see #removeEventListener(String, JsFunction, Boolean)
1930      * @see #attachEvent(String, JsFunction)
1931      * @see JsElement#detachEvent(String, JsFunction)
1932      * @see JsDocument#detachEvent(String, JsFunction)
1933      * @javascript Re-compilers must convert the instance invocation of this method directly
1934      * into a JavaScript invocation on its current object instance without changing the 
1935      * method name, but expanding variable arguments, if any, into comma-separated values. 
1936      */
1937     public final void detachEvent(java.lang.String type, JsFunction<?> listener) {
1938         call(detachEvent, new Vars<java.lang.Object>().add(type).add(listener));
1939     }
1940 
1941     /**
1942      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1943      * without a qualifying member and to access the property of the name on an object.</p>
1944      * @since 1.0
1945      * @javascript Re-compilers must resolve the member of this static field to the
1946      * identifier of the field name.
1947      */
1948     public static final Value.Boolean.Member htmlControl = new Value.Boolean.Member(Members.htmlControl);
1949 
1950     /**
1951      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1952      * without a qualifying member and to access the property of the name on an object.</p>
1953      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1954      * read-only reference to this window itself. This is a synonym for the {@link #window} 
1955      * property.</p>
1956      * @since 1.0
1957      * @javascript Re-compilers must resolve the member of this static field to the
1958      * identifier of the field name.
1959      */
1960     public static final JsWindow.Member self   = new JsWindow.Member(Members.self  );
1961     /**
1962      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1963      * without a qualifying member and to access the property of the name on an object.</p>
1964      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1965      * read-only reference to this window itself. This is identical to the {@link #self} 
1966      * property.</p>
1967      * @since 1.0
1968      * @javascript Re-compilers must resolve the member of this static field to the
1969      * identifier of the field name.
1970      */
1971     public static final JsWindow.Member window = new JsWindow.Member(Members.window);
1972 
1973     /**
1974      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1975      * without a qualifying member and to access the property of the name on an object.</p>
1976      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1977      * read-only reference to the {@link JsDocument} object that describes the document 
1978      * contained in this window or frame.</p>
1979      * @since 1.0
1980      * @javascript Re-compilers must resolve the member of this static field to the
1981      * identifier of the field name.
1982      */
1983     public static final JsDocument.Member document = new JsDocument.Member(Members.document);
1984 
1985     /**
1986      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1987      * without a qualifying member and to access the property of the name on an object.</p>
1988      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
1989      * read-only reference to the {@link JsHistory} object of this window or frame.</p> 
1990      * @since 1.0
1991      * @javascript Re-compilers must resolve the member of this static field to the
1992      * identifier of the field name.
1993      */
1994     public static final JsHistory.Member history = new JsHistory.Member(Members.history);
1995 
1996     /**
1997      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1998      * without a qualifying member and to access the property of the name on an object.</p>
1999      * <p>The property, identified by this member, of a {@link JsWindow} object 
2000      * refers to a read-only integer value specifying the height, in pixels, of the 
2001      * document display area of this window. This dimension does not include the 
2002      * size of the menu bar, tool bars, scroll bars, and so on. The property is not 
2003      * supported by IE. Instead use the {@link JsHTMLElement#clientHeight} property 
2004      * of {@link JsHTMLDocument#documentElement} or {@link JsHTMLDocument#body} 
2005      * depending on the version of IE.</p> 
2006      * @since 1.0
2007      * @javascript Re-compilers must resolve the member of this static field to the
2008      * identifier of the field name.
2009      */
2010     public static final Value.Integer.Member innerHeight = new Value.Integer.Member(Members.innerHeight);
2011     /**
2012      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2013      * without a qualifying member and to access the property of the name on an object.</p>
2014      * <p>The property, identified by this member, of a {@link JsWindow} object 
2015      * refers to a read-only integer value specifying the width, in pixels, of the 
2016      * document display area of this window. This dimension does not include the 
2017      * size of the menu bar, tool bars, scroll bars, and so on. The property is not 
2018      * supported by IE. Instead use the {@link JsHTMLElement#clientWidth} property 
2019      * of {@link JsHTMLDocument#documentElement} or {@link JsHTMLDocument#body} 
2020      * depending on the version of IE.</p> 
2021      * @since 1.0
2022      * @javascript Re-compilers must resolve the member of this static field to the
2023      * identifier of the field name.
2024      */
2025     public static final Value.Integer.Member innerWidth  = new Value.Integer.Member(Members.innerWidth );
2026 
2027     /**
2028      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2029      * without a qualifying member and to access the property of the name on an object.</p>
2030      * <p>The property, identified by this member, of a {@link JsWindow} object refers 
2031      * to the {@link JsEvent} object that describes the most recent event. This property 
2032      * is used in the IE event model. In the standard DOM event model, the {@link JsEvent} 
2033      * object is passed as an argument to event-handler functions.</p> 
2034      * @since 1.0
2035      * @javascript Re-compilers must resolve the member of this static field to the
2036      * identifier of the field name.
2037      */
2038     public static final JsEvent.Member event = new JsEvent.Member(Members.event);
2039 
2040     /**
2041      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2042      * without a qualifying member and to access the property of the name on an object.</p>
2043      * <p>The property, identified by this member, of a {@link JsWindow} object 
2044      * refers to a read-only integer value specifying the number of pixels that the 
2045      * current document has been scrolled to the right. This property is not 
2046      * supported by IE. In IE, use the {@link JsHTMLElement#scrollLeft} property of 
2047      * {@link JsHTMLDocument#documentElement} or {@link JsHTMLDocument#body} 
2048      * depending on the version of IE.</p> 
2049      * @since 1.0
2050      * @javascript Re-compilers must resolve the member of this static field to the
2051      * identifier of the field name.
2052      */
2053     public static final Value.Number.Member pageXOffset = new Value.Number.Member(Members.pageXOffset);
2054     /**
2055      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2056      * without a qualifying member and to access the property of the name on an object.</p>
2057      * <p>The property, identified by this member, of a {@link JsWindow} object 
2058      * refers to a read-only integer value specifying the number of pixels that the 
2059      * current document has been scrolled down. This property is not 
2060      * supported by IE. In IE, use the {@link JsHTMLElement#scrollTop} property of 
2061      * {@link JsHTMLDocument#documentElement} or {@link JsHTMLDocument#body} 
2062      * depending on the version of IE.</p> 
2063      * @since 1.0
2064      * @javascript Re-compilers must resolve the member of this static field to the
2065      * identifier of the field name.
2066      */
2067     public static final Value.Number.Member pageYOffset = new Value.Number.Member(Members.pageYOffset);
2068 
2069     /**
2070      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2071      * without a qualifying member and to access the property of the name on an object.</p>
2072      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2073      * read-only reference to the {@link JsNavigator} object, which provides version 
2074      * and configuration information about the web browser.</p>
2075      * @since 1.0
2076      * @javascript Re-compilers must resolve the member of this static field to the
2077      * identifier of the field name.
2078      */
2079     public static final JsNavigator.Member navigator = new JsNavigator.Member(Members.navigator);
2080     /**
2081      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2082      * without a qualifying member and to access the property of the name on an object.</p>
2083      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2084      * reference to the {@link JsLocation} object for this window or frame. The 
2085      * object specifies the URL of the currently loaded document. Setting this 
2086      * property to a new URL string causes the browser to load and display the 
2087      * contents of that URL.</p> 
2088      * @since 1.0
2089      * @javascript Re-compilers must resolve the member of this static field to the
2090      * identifier of the field name.
2091      */
2092     public static final JsLocation.Member location = new JsLocation.Member(Members.location);
2093     /**
2094      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2095      * without a qualifying member and to access the property of the name on an object.</p>
2096      * <p>The property, identified by this member, of a {@link JsWindow} object is a
2097      * read-only reference to a {@link JsScreen} object that specifies information 
2098      * about the screen: the number of available pixels and the number of available 
2099      * colors.</p> 
2100      * @since 1.0
2101      * @javascript Re-compilers must resolve the member of this static field to the
2102      * identifier of the field name.
2103      */
2104     public static final JsScreen.Member screen = new JsScreen.Member(Members.screen);
2105 
2106     /**
2107      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2108      * without a qualifying member and to access the property of the name on an object.</p>
2109      * @since 1.0
2110      * @see #getComputedStyle(JsHTMLElement, String)
2111      * @javascript Re-compilers must resolve the member of this static field to the
2112      * identifier of the field name.
2113      */
2114     public static final JsFunction.Member<JsObject> getComputedStyle = new JsFunction.Member<JsObject>(Members.getComputedStyle);
2115     /**
2116      * <p>Determines the CSS styles that apply to a document element.</p>
2117      * <p>An element in a document may obtain style information from an inline style 
2118      * attribute and from any number of style sheets in the stylesheet "cascade." Before 
2119      * the element can actually be displayed in a view, its style information must be 
2120      * extracted from the cascade, and styles specified with relative units (such as 
2121      * percentages or "ems") must be "computed" to convert to absolute units.</p>
2122      * <p>This method returns a read-only <tt>CSS2Properties</tt> object that represents 
2123      * those cascaded and computed styles. The DOM specification requires that any 
2124      * styles representing lengths use absolute units such as inches or millimeters. In 
2125      * practice, pixel values are commonly returned instead, although there is no 
2126      * guarantee that an implementation will always do this.</p>
2127      * <p>Contrast this method with the <tt>style</tt> property of an HTMLElement, which 
2128      * gives you access only to the inline styles of an element, in whatever units they 
2129      * were specified, and tells you nothing about stylesheet styles that apply to the 
2130      * element.</p>
2131      * <p>In Internet Explorer, similar functionality is available through the 
2132      * nonstandard <tt>currentStyle</tt> property of each HTMLElement object.</p>
2133      * @param elt The document element whose style information is desired.
2134      * @return A read-only <tt>CSS2Properties</tt> object that represents the style 
2135      * attributes and values used to render the specified element in this window. Any 
2136      * length values queried from this object are always expressed as pixel or absolute 
2137      * values, not relative or percentage values.
2138      * @since 1.0
2139      * @javascript Re-compilers must convert the instance invocation of this method directly 
2140      * into a JavaScript invocation on its current object instance without changing the 
2141      * method name, but expanding variable arguments, if any, into comma-separated values. 
2142      */
2143     public final JsCSS2Properties getComputedStyle(JsHTMLElement elt) {
2144         return getComputedStyle(elt, "");
2145     }
2146     /**
2147      * <p>Determines the CSS styles that apply to a document element.</p>
2148      * <p>An element in a document may obtain style information from an inline style 
2149      * attribute and from any number of style sheets in the stylesheet "cascade." Before 
2150      * the element can actually be displayed in a view, its style information must be 
2151      * extracted from the cascade, and styles specified with relative units (such as 
2152      * percentages or "ems") must be "computed" to convert to absolute units.</p>
2153      * <p>This method returns a read-only <tt>CSS2Properties</tt> object that represents 
2154      * those cascaded and computed styles. The DOM specification requires that any 
2155      * styles representing lengths use absolute units such as inches or millimeters. In 
2156      * practice, pixel values are commonly returned instead, although there is no 
2157      * guarantee that an implementation will always do this.</p>
2158      * <p>Contrast this method with the <tt>style</tt> property of an HTMLElement, which 
2159      * gives you access only to the inline styles of an element, in whatever units they 
2160      * were specified, and tells you nothing about stylesheet styles that apply to the 
2161      * element.</p>
2162      * <p>In Internet Explorer, similar functionality is available through the 
2163      * nonstandard <tt>currentStyle</tt> property of each HTMLElement object.</p>
2164      * @param elt The document element whose style information is desired.
2165      * @param pseudoElt The CSS pseudoelement string, such as ":before" or ":first-line", 
2166      * or <tt>null</tt> if there is none.
2167      * @return A read-only <tt>CSS2Properties</tt> object that represents the style 
2168      * attributes and values used to render the specified element in this window. Any 
2169      * length values queried from this object are always expressed as pixel or absolute 
2170      * values, not relative or percentage values.
2171      * @since 1.0
2172      * @javascript Re-compilers must convert the instance invocation of this method directly 
2173      * into a JavaScript invocation on its current object instance without changing the 
2174      * method name, but expanding variable arguments, if any, into comma-separated values. 
2175      */
2176     public final JsCSS2Properties getComputedStyle(JsHTMLElement elt, java.lang.String pseudoElt) {
2177         return new JsCSS2Properties(call(getComputedStyle, new Vars<java.lang.Object>().add(elt).add(pseudoElt)));
2178     }
2179 
2180     /**
2181      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2182      * without a qualifying member and to access the property of the name on an object.</p>
2183      * <p>The property, identified by this member, of a {@link JsWindow} object 
2184      * refers to a read-only boolean value specifying whether the window has been 
2185      * closed. When a browser window closes, the {@link JsWindow} object that 
2186      * represents it does not simply disappear; it continues to exist, but its {@link #closed} 
2187      * property is set to <tt>true</tt>.</p> 
2188      * @since 1.0
2189      * @javascript Re-compilers must resolve the member of this static field to the
2190      * identifier of the field name.
2191      */
2192     public static final Value.Boolean.Member closed                   = new Value.Boolean.Member               (Members.closed                  );
2193     /**
2194      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2195      * without a qualifying member and to access the property of the name on an object.</p>
2196      * <p>The property, identified by this member, of a {@link JsWindow} object 
2197      * refers to a read/write string specifying the default message that appears in 
2198      * the status line of the window.</p> 
2199      * @since 1.0
2200      * @javascript Re-compilers must resolve the member of this static field to the
2201      * identifier of the field name.
2202      */
2203     public static final Value.String .Member defaultStatus            = new Value.String .Member               (Members.defaultStatus           );
2204     /**
2205      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2206      * without a qualifying member and to access the property of the name on an object.</p>
2207      * <p>The property, identified by this member, of a {@link JsWindow} object 
2208      * refers to an array of {@link JsWindow} objects, one for each {@link JsHTMLFrameElement} or 
2209      * {@link JsHTMLIFrameElement} object contained within this window. Note that 
2210      * frames referenced by this array may themselves contain frames and may have a 
2211      * {@link #frames} array of their own.</p> 
2212      * @since 1.0
2213      * @javascript Re-compilers must resolve the member of this static field to the
2214      * identifier of the field name.
2215      */
2216     public static final JsArray      .Member frames                   = new JsArray      .Member               (Members.frames                  );
2217     /**
2218      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2219      * without a qualifying member and to access the property of the name on an object.</p>
2220      * <p>The property, identified by this member, of a {@link JsWindow} object 
2221      * refers to a string containing the name of the window. The name is optionally 
2222      * specified when the window is created with the {@link JsWindow#open(String, String, String, Boolean)} 
2223      * method or with the <tt>name</tt> attribute of a <tt>&lt;frame&gt;</tt> tag. 
2224      * The name of a window may be used as the value of a <tt>target</tt> attribute 
2225      * of an <tt>&lt;a&gt;</tt> or <tt>&lt;form&gt;</tt> tag. Using the <tt>target</tt> 
2226      * attribute in this way specifies that the hyper-linked document or the results 
2227      * of form submission should be displayed in the named window or frame.</p> 
2228      * @since 1.0
2229      * @javascript Re-compilers must resolve the member of this static field to the
2230      * identifier of the field name.
2231      */
2232     public static final Value.String .Member name                     = new Value.String .Member               (Members.name                    );
2233     /**
2234      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2235      * without a qualifying member and to access the property of the name on an object.</p>
2236      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2237      * read/write reference to the {@link JsWindow} object that contained the script 
2238      * that called {@link #open(String, String, String, Boolean)} to open this browser 
2239      * window. This property is valid only for {@link JsWindow} objects that represent 
2240      * top-level windows, not those that represent frames. The property is useful so 
2241      * that a newly created {@link JsWindow} object can refer to properties and functions 
2242      * defined in the window that created it.</p>
2243      * @since 1.0
2244      * @javascript Re-compilers must resolve the member of this static field to the
2245      * identifier of the field name.
2246      */
2247     public static final JsWindow     .Member opener                   = new JsWindow     .Member               (Members.opener                  );
2248     /**
2249      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2250      * without a qualifying member and to access the property of the name on an object.</p>
2251      * <p>The property, identified by this member, of a {@link JsWindow} object 
2252      * refers to a read-only integer value specifying the total height, in pixels, 
2253      * of the browser window. This dimension includes the height of the menu bar, 
2254      * tool bars, scroll bars, window borders, and so on. The property is not 
2255      * supported by IE, and IE offers no alternative property.</p> 
2256      * @since 1.0
2257      * @javascript Re-compilers must resolve the member of this static field to the
2258      * identifier of the field name.
2259      */
2260     public static final Value.Integer.Member outerHeight              = new Value.Integer.Member               (Members.outerHeight             );
2261     /**
2262      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2263      * without a qualifying member and to access the property of the name on an object.</p>
2264      * <p>The property, identified by this member, of a {@link JsWindow} object 
2265      * refers to a read-only integer value specifying the total width, in pixels, 
2266      * of the browser window. This dimension includes the width of the menu bar, 
2267      * tool bars, scroll bars, window borders, and so on. The property is not 
2268      * supported by IE, and IE offers no alternative property.</p> 
2269      * @since 1.0
2270      * @javascript Re-compilers must resolve the member of this static field to the
2271      * identifier of the field name.
2272      */
2273     public static final Value.Integer.Member outerWidth               = new Value.Integer.Member               (Members.outerWidth              );
2274     /**
2275      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2276      * without a qualifying member and to access the property of the name on an object.</p>
2277      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2278      * read-only reference to the {@link JsWindow} object that contains this window or 
2279      * frame. If this window is a top-level window, this property refers to the window 
2280      * itself. If this window is a frame, the property refers to the window or frame 
2281      * that contains it. Contrast with the {@link #top} property.</p>
2282      * @since 1.0
2283      * @javascript Re-compilers must resolve the member of this static field to the
2284      * identifier of the field name.
2285      */
2286     public static final JsWindow     .Member parent                   = new JsWindow     .Member               (Members.parent                  );
2287     /**
2288      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2289      * without a qualifying member and to access the property of the name on an object.</p>
2290      * <p>The property, identified by this member, of a {@link JsWindow} object 
2291      * refers to a read-only integer value specifying the X coordinate of the 
2292      * upper-left corner of the window on the screen. 
2293      * IE, Safari, and Opera support {@link #screenLeft} and {@link #screenTop} 
2294      * while Firefox and Safari support {@link #screenX} and {@link #screenY}.</p> 
2295      * @since 1.0
2296      * @javascript Re-compilers must resolve the member of this static field to the
2297      * identifier of the field name.
2298      */
2299     public static final Value.Integer.Member screenLeft               = new Value.Integer.Member               (Members.screenLeft              );
2300     /**
2301      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2302      * without a qualifying member and to access the property of the name on an object.</p>
2303      * <p>The property, identified by this member, of a {@link JsWindow} object 
2304      * refers to a read-only integer value specifying the Y coordinate of the 
2305      * upper-left corner of the window on the screen. 
2306      * IE, Safari, and Opera support {@link #screenLeft} and {@link #screenTop} 
2307      * while Firefox and Safari support {@link #screenX} and {@link #screenY}.</p> 
2308      * @since 1.0
2309      * @javascript Re-compilers must resolve the member of this static field to the
2310      * identifier of the field name.
2311      */
2312     public static final Value.Integer.Member screenTop                = new Value.Integer.Member               (Members.screenTop               );
2313     /**
2314      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2315      * without a qualifying member and to access the property of the name on an object.</p>
2316      * <p>The property, identified by this member, of a {@link JsWindow} object 
2317      * refers to a read-only integer value specifying the X coordinate of the 
2318      * upper-left corner of the window on the screen. 
2319      * IE, Safari, and Opera support {@link #screenLeft} and {@link #screenTop} 
2320      * while Firefox and Safari support {@link #screenX} and {@link #screenY}.</p> 
2321      * @since 1.0
2322      * @javascript Re-compilers must resolve the member of this static field to the
2323      * identifier of the field name.
2324      */
2325     public static final Value.Integer.Member screenX                  = new Value.Integer.Member               (Members.screenX                 );
2326     /**
2327      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2328      * without a qualifying member and to access the property of the name on an object.</p>
2329      * <p>The property, identified by this member, of a {@link JsWindow} object 
2330      * refers to a read-only integer value specifying the Y coordinate of the 
2331      * upper-left corner of the window on the screen. 
2332      * IE, Safari, and Opera support {@link #screenLeft} and {@link #screenTop} 
2333      * while Firefox and Safari support {@link #screenX} and {@link #screenY}.</p> 
2334      * @since 1.0
2335      * @javascript Re-compilers must resolve the member of this static field to the
2336      * identifier of the field name.
2337      */
2338     public static final Value.Integer.Member screenY                  = new Value.Integer.Member               (Members.screenY                 );
2339     /**
2340      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2341      * without a qualifying member and to access the property of the name on an object.</p>
2342      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2343      * read-only reference to the top-level window that contains this window. If this 
2344      * window is a top-level window itself, this property simply contains a reference to 
2345      * the window itself. If this window is a frame, the property refers to the top-level 
2346      * window that contains the frame. Contrast with the {@link #parent} property.</p>
2347      * @since 1.0
2348      * @javascript Re-compilers must resolve the member of this static field to the
2349      * identifier of the field name.
2350      */
2351     public static final JsWindow     .Member top                      = new JsWindow     .Member               (Members.top                     );
2352     /**
2353      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2354      * without a qualifying member and to access the property of the name on an object.</p>
2355      * @since 1.0
2356      * @see #blur()
2357      * @javascript Re-compilers must resolve the member of this static field to the
2358      * identifier of the field name.
2359      */
2360     public static final JsFunction.Member<?> blur                     = new JsFunction.Member<java.lang.Object>(Members.blur                    );
2361     /**
2362      * <p>Takes keyboard focus away from the top-level browser window.</p>
2363      * <p>This method removes keyboard focus from the top-level browser window specified 
2364      * by the current {@link JsWindow} object. It is unspecified which window gains 
2365      * keyboard focus as a result. In some browsers and/or platforms, this method may 
2366      * have no effect.</p>
2367      * @since 1.0
2368      * @javascript Re-compilers must convert the instance invocation of this method directly
2369      * into a JavaScript invocation on its current object instance without changing the 
2370      * method name, but expanding variable arguments, if any, into comma-separated values. 
2371      */
2372     public void blur() {
2373         call(blur);
2374     }
2375     /**
2376      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2377      * without a qualifying member and to access the property of the name on an object.</p>
2378      * @since 1.0
2379      * @see #close()
2380      * @javascript Re-compilers must resolve the member of this static field to the
2381      * identifier of the field name.
2382      */
2383     public static final JsFunction.Member<?> close                    = new JsFunction.Member<java.lang.Object>(Members.close                   );
2384     /**
2385      * <p>Closes the window.</p>
2386      * <p>This method method closes the top-level browser window specified by the current 
2387      * {@link JsWindow} object. A window can close itself by calling this method on itself 
2388      * or {@link #self}. Only windows opened by JavaScript can be closed by JavaScript. 
2389      * This prevents malicious scripts from causing the user's browser to exit.</p>
2390      * @since 1.0
2391      * @see #opener
2392      * @see #closed
2393      * @javascript Re-compilers must convert the instance invocation of this method directly
2394      * into a JavaScript invocation on its current object instance without changing the 
2395      * method name, but expanding variable arguments, if any, into comma-separated values. 
2396      */
2397     public void close() {
2398         call(close);
2399     }
2400     /**
2401      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2402      * without a qualifying member and to access the property of the name on an object.</p>
2403      * @since 1.0
2404      * @see #focus()
2405      * @javascript Re-compilers must resolve the member of this static field to the
2406      * identifier of the field name.
2407      */
2408     public static final JsFunction.Member<?> focus                    = new JsFunction.Member<java.lang.Object>(Members.focus                   );
2409     /**
2410      * <p>Gives the top-level browser window keyboard focus and brings the window to 
2411      * the front on most platforms.</p>
2412      * <p>This method gives keyboard focus to the browser window specified by the current 
2413      * {@link JsWindow} object.</p>
2414      * <p>On most platforms, a top-level window is brought forward to the top of the 
2415      * window stack so that it becomes visible when it is given focus.</p>
2416      * @since 1.0
2417      * @javascript Re-compilers must convert the instance invocation of this method directly
2418      * into a JavaScript invocation on its current object instance without changing the 
2419      * method name, but expanding variable arguments, if any, into comma-separated values. 
2420      */
2421     public void focus() {
2422         call(focus);
2423     }
2424     /**
2425      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2426      * without a qualifying member and to access the property of the name on an object.</p>
2427      * @since 1.0
2428      * @see #moveBy(Integer, Integer)
2429      * @javascript Re-compilers must resolve the member of this static field to the
2430      * identifier of the field name.
2431      */
2432     public static final JsFunction.Member<?> moveBy                   = new JsFunction.Member<java.lang.Object>(Members.moveBy                  );
2433     /**
2434      * <p>Moves the window by a relative amount.</p>
2435      * <p>This method moves the window to the relative position specified by <tt>dx</tt> 
2436      * and <tt>dy</tt>. For security resasons, browsers may restrict this method so it 
2437      * cannot move a window offscreen. It is usually a bad idea to move a user's browser 
2438      * window unless he explicitly request it. Scripts should typically use this method 
2439      * only on windows that they created themselves with the {@link #open(String, String, String, Boolean)} 
2440      * method.</p>
2441      * @param dx The number of pixels to move the window to the right.
2442      * @param dy The number of pixels to move the window down.
2443      * @since 1.0
2444      * @javascript Re-compilers must convert the instance invocation of this method directly
2445      * into a JavaScript invocation on its current object instance without changing the 
2446      * method name, but expanding variable arguments, if any, into comma-separated values. 
2447      */
2448     public void moveBy(Integer dx, Integer dy) {
2449         call(moveBy, new Vars<Integer>().add(dx).add(dy));
2450     }
2451     /**
2452      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2453      * without a qualifying member and to access the property of the name on an object.</p>
2454      * @since 1.0
2455      * @see #moveTo(Integer, Integer)
2456      * @javascript Re-compilers must resolve the member of this static field to the
2457      * identifier of the field name.
2458      */
2459     public static final JsFunction.Member<?> moveTo                   = new JsFunction.Member<java.lang.Object>(Members.moveTo                  );
2460     /**
2461      * <p>Moves the window to an absolute position.</p>
2462      * <p>This method moves the window so its upper-left corner is at the position 
2463      * specified by <tt>x</tt> and <tt>y</tt>. For security resasons, browsers may 
2464      * restrict this method so it cannot move a window offscreen. It is usually a bad 
2465      * idea to move a user's browser window unless he explicitly request it. Scripts 
2466      * should typically use this method only on windows that they created themselves 
2467      * with the {@link #open(String, String, String, Boolean)} method.</p>
2468      * @param x The X coordinate of the new window position.
2469      * @param y The Y coordinate of the new window position.
2470      * @since 1.0
2471      * @javascript Re-compilers must convert the instance invocation of this method directly
2472      * into a JavaScript invocation on its current object instance without changing the 
2473      * method name, but expanding variable arguments, if any, into comma-separated values. 
2474      */
2475     public void moveTo(Integer x, Integer y) {
2476         call(moveTo, new Vars<Integer>().add(x).add(y));
2477     }
2478     /**
2479      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2480      * without a qualifying member and to access the property of the name on an object.</p>
2481      * @since 1.0
2482      * @see #open(String, String, String, Boolean)
2483      * @javascript Re-compilers must resolve the member of this static field to the
2484      * identifier of the field name.
2485      */
2486     public static final JsFunction.Member<JsWindow> open = new JsFunction.Member<JsWindow>(Members.open, Generic.get(JsWindow.class));
2487     /**
2488      * <p>Creates and opens a new window.</p>
2489      * @param url . 
2490      * @param name . 
2491      * @param features . 
2492      * @param replace . 
2493      * @return A reference to a {@link JsWindow} object, which may be a newly created 
2494      * or an already existing one, depending on the <tt>name</tt> argument.
2495      * @since 1.0
2496      * @javascript Re-compilers must convert the instance invocation of this method directly
2497      * into a JavaScript invocation on its current object instance without changing the 
2498      * method name, but expanding variable arguments, if any, into comma-separated values. 
2499      */
2500     public JsWindow open(java.lang.String url, java.lang.String name, java.lang.String features, java.lang.Boolean replace) {
2501         return call(open, new Vars<java.lang.Object>().add(url).add(name).add(features).add(replace));
2502     }
2503     /**
2504      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2505      * without a qualifying member and to access the property of the name on an object.</p>
2506      * @since 1.0
2507      * @see #print()
2508      * @javascript Re-compilers must resolve the member of this static field to the
2509      * identifier of the field name.
2510      */
2511     public static final JsFunction.Member<?> print                    = new JsFunction.Member<java.lang.Object>(Members.print                   );
2512     /**
2513      * <p>Simulates a click on the browser's <tt>Print</tt> button.</p>
2514      * <p>Calling this method causes the browser to behave as if the user had clicked 
2515      * the browser's <tt>Print</tt> button. Usually, this brings up a dialog box that 
2516      * enables the user to cancel or customize the print request.</p>
2517      * @since 1.0
2518      * @javascript Re-compilers must convert the instance invocation of this method directly
2519      * into a JavaScript invocation on its current object instance without changing the 
2520      * method name, but expanding variable arguments, if any, into comma-separated values. 
2521      */
2522     public void print() {
2523         call(print);
2524     }
2525     /**
2526      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2527      * without a qualifying member and to access the property of the name on an object.</p>
2528      * @since 1.0
2529      * @see #resizeBy(Integer, Integer)
2530      * @javascript Re-compilers must resolve the member of this static field to the
2531      * identifier of the field name.
2532      */
2533     public static final JsFunction.Member<?> resizeBy                 = new JsFunction.Member<java.lang.Object>(Members.resizeBy                );
2534     /**
2535      * <p>Resizes the window by a specified amount.</p>
2536      * <p>This method resizes the window by the relative amounts specified by <tt>dw</tt> 
2537      * and <tt>dh</tt>. For security reasons, the browser may restrict this method to 
2538      * prevent scripts from making windows very small. For usability reasons, it is 
2539      * almost always a bad idea to change the size of a user's window. If a script 
2540      * created a window, the script can resize it, but it is bad form for a script to 
2541      * resize the window that it is loaded into.</p>
2542      * @param dw The number of pixels by which to increase the width of the window. 
2543      * @param dh The number of pixels by which to increase the height of the window. 
2544      * @since 1.0
2545      * @javascript Re-compilers must convert the instance invocation of this method directly
2546      * into a JavaScript invocation on its current object instance without changing the 
2547      * method name, but expanding variable arguments, if any, into comma-separated values. 
2548      */
2549     public void resizeBy(Integer dw, Integer dh) {
2550         call(resizeBy, new Vars<Integer>().add(dw).add(dh));
2551     }
2552     /**
2553      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2554      * without a qualifying member and to access the property of the name on an object.</p>
2555      * @since 1.0
2556      * @see #resizeTo(Integer, Integer)
2557      * @javascript Re-compilers must resolve the member of this static field to the
2558      * identifier of the field name.
2559      */
2560     public static final JsFunction.Member<?> resizeTo                 = new JsFunction.Member<java.lang.Object>(Members.resizeTo                );
2561     /**
2562      * <p>Resizes the window to a specified size.</p>
2563      * <p>This method resizes the window so it is <tt>w</tt> pixels wide and <tt>h</tt> 
2564      * pixels high. For security reasons, the browser may restrict this method to 
2565      * prevent scripts from making windows very small. For usability reasons, it is 
2566      * almost always a bad idea to change the size of a user's window. If a script 
2567      * created a window, the script can resize it, but it is bad form for a script to 
2568      * resize the window that it is loaded into.</p>
2569      * @param w The desired width for the window.
2570      * @param h The desired height for the window.
2571      * @since 1.0
2572      * @javascript Re-compilers must convert the instance invocation of this method directly
2573      * into a JavaScript invocation on its current object instance without changing the 
2574      * method name, but expanding variable arguments, if any, into comma-separated values. 
2575      */
2576     public void resizeTo(Integer w, Integer h) {
2577         call(resizeTo, new Vars<Integer>().add(w).add(h));
2578     }
2579     /**
2580      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2581      * without a qualifying member and to access the property of the name on an object.</p>
2582      * @since 1.0
2583      * @see #scrollBy(Integer, Integer)
2584      * @javascript Re-compilers must resolve the member of this static field to the
2585      * identifier of the field name.
2586      */
2587     public static final JsFunction.Member<?> scrollBy                 = new JsFunction.Member<java.lang.Object>(Members.scrollBy                );
2588     /**
2589      * <p>Scrolls the window by a specified amount.</p>
2590      * <p>This method scrolls the document displayed in window by the relative amounts 
2591      * specified by <tt>dx</tt> and <tt>dy</tt>.</p>
2592      * @param dx The number of pixels by which to scroll the document to the right.
2593      * @param dy The number of pixels by which to scroll the document down.
2594      * @since 1.0
2595      * @javascript Re-compilers must convert the instance invocation of this method directly
2596      * into a JavaScript invocation on its current object instance without changing the 
2597      * method name, but expanding variable arguments, if any, into comma-separated values. 
2598      */
2599     public void scrollBy(Integer dx, Integer dy) {
2600         call(scrollBy, new Vars<Integer>().add(dx).add(dy));
2601     }
2602     /**
2603      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2604      * without a qualifying member and to access the property of the name on an object.</p>
2605      * @since 1.0
2606      * @see #scrollTo(Integer, Integer)
2607      * @javascript Re-compilers must resolve the member of this static field to the
2608      * identifier of the field name.
2609      */
2610     public static final JsFunction.Member<?> scrollTo                 = new JsFunction.Member<java.lang.Object>(Members.scrollTo                );
2611     /**
2612      * <p>Scrolls the window to a specified position.</p>
2613      * <p>This method scrolls the document displayed within window so the point in the 
2614      * document specified by the <tt>x</tt> and <tt>y</tt> coordinates is displayed in 
2615      * the upper-left corner, if possible.</p>
2616      * @param x The document X coordinate that is to appear at the left edge of the 
2617      * window's document display area.
2618      * @param y The document Y coordinate that is to appear at the top of the 
2619      * window's document display area.
2620      * @since 1.0
2621      * @javascript Re-compilers must convert the instance invocation of this method directly
2622      * into a JavaScript invocation on its current object instance without changing the 
2623      * method name, but expanding variable arguments, if any, into comma-separated values. 
2624      */
2625     public void scrollTo(Integer x, Integer y) {
2626         call(scrollTo, new Vars<Integer>().add(x).add(y));
2627     }
2628     /**
2629      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2630      * without a qualifying member and to access the property of the name on an object.</p>
2631      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2632      * reference to an event handler function invoked when the window loses focus.</p> 
2633      * @since 1.0
2634      * @javascript Re-compilers must resolve the member of this static field to the
2635      * identifier of the field name.
2636      */
2637     public static final JsFunction.Member<?> onblur                   = new JsFunction.Member<java.lang.Object>(Members.onblur                  );
2638     /**
2639      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2640      * without a qualifying member and to access the property of the name on an object.</p>
2641      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2642      * reference to an event handler function invoked when a JavaScript error occurs.</p> 
2643      * @since 1.0
2644      * @javascript Re-compilers must resolve the member of this static field to the
2645      * identifier of the field name.
2646      */
2647     public static final JsFunction.Member<?> onerror                  = new JsFunction.Member<java.lang.Object>(Members.onerror                 );
2648     /**
2649      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2650      * without a qualifying member and to access the property of the name on an object.</p>
2651      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2652      * reference to an event handler invoked the window gains focus.</p> 
2653      * @since 1.0
2654      * @javascript Re-compilers must resolve the member of this static field to the
2655      * identifier of the field name.
2656      */
2657     public static final JsFunction.Member<?> onfocus                  = new JsFunction.Member<java.lang.Object>(Members.onfocus                 );
2658     /**
2659      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2660      * without a qualifying member and to access the property of the name on an object.</p>
2661      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2662      * reference to an event handler function invoked when the document or frameset is fully 
2663      * loaded.</p> 
2664      * @since 1.0
2665      * @javascript Re-compilers must resolve the member of this static field to the
2666      * identifier of the field name.
2667      */
2668     public static final JsFunction.Member<?> onload                   = new JsFunction.Member<java.lang.Object>(Members.onload                  );
2669     /**
2670      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2671      * without a qualifying member and to access the property of the name on an object.</p>
2672      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2673      * reference to an event handler function invoked when the window is resized.</p> 
2674      * @since 1.0
2675      * @javascript Re-compilers must resolve the member of this static field to the
2676      * identifier of the field name.
2677      */
2678     public static final JsFunction.Member<?> onresize                 = new JsFunction.Member<java.lang.Object>(Members.onresize                );
2679     /**
2680      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2681      * without a qualifying member and to access the property of the name on an object.</p>
2682      * <p>The property, identified by this member, of a {@link JsWindow} object is a 
2683      * reference to an event handler function invoked when the browser leaves the current 
2684      * document or frameset.</p> 
2685      * @since 1.0
2686      * @javascript Re-compilers must resolve the member of this static field to the
2687      * identifier of the field name.
2688      */
2689     public static final JsFunction.Member<?> onunload                 = new JsFunction.Member<java.lang.Object>(Members.onunload                );
2690     /**
2691      * <p>An <b>opaque</b> static field defining a member that is named by the field name
2692      * without a qualifying member and to access the property of the name on an object.</p>
2693      * @since 1.0
2694      * @see js.dom.DOM2HTML.HTMLImageElement
2695      * @javascript Re-compilers must resolve the member of this static field to the
2696      * identifier of the field name.
2697      */
2698     public static final Image.Member Image = new Image.Member(Members.Image);
2699 
2700     @Override
2701     /**
2702      * <p>Returns the primitive value associated with the current instance, if there is one.
2703      * This invocation simply returns the instance itself for the current instance is an 
2704      * object and there is no primitive value for it.</p>
2705      * @return The current object itself.
2706      * @since 1.0
2707      * @javascript Re-compilers must convert the instance invocation of this method directly
2708      * into a JavaScript invocation on its current object instance without changing the 
2709      * method name, but expanding variable arguments, if any, into comma-separated values. 
2710      */
2711     public JsWindow valueOf() {
2712         return new JsWindow((JsObject)var().valueOf());
2713     }
2714 }