METHOD OF UPDATING DISPLAY FRAMES WHILE PRESERVING INFORMATION ASSOCIATED THEREWITH
COPYRIGHT NOTICE
A portion of the disclosure recited in the specification contains material which is subject to copyright protection. Specifically, a source code appendix is included that lists instructions for a process by which the present invention is practiced in a computer system. The copyright owner has no objection to the facsimile reproduction of the specification as filed in the Patent and Trademark Office. Otherwise all copyright rights are reserved.
BACKGROUND OF THE INVENTION The present invention relates to programmable computer systems. More particularly, the present invention is directed to a computer system ideally suited for efficient data communication over a data network. Data networks, such as the "Internet, " typically include a plurality of users using client computers communicating with a remote server computers to transfer information therebetween. To facilitate the transfer, the users employ a computer system having a "web" browser that provides graphical user interface (GUI)-based communication with a "web page" obtained from a server. One popular collection of servers uses a standardized Hypertext Transfer Protocol (HTTP) to provide information and is known as the "World Wide Web. " The information is presented as web pages written as text with standardized formatting and control symbols known as HyperText Mark-up Language (HTML). HTML provides basic document formatting and allows a server to specify "links" to other servers and files. Use of an HTML-compliant browser involves specification of a link via a Uniform Resource Locator (URL). Upon such specification, the user's client computer makes a TCP/IP request to the server identified in the link and receives an HTML file that is
2 interpreted by the browser so that a electronic HTML document made up of one or more web pages may be displayed on the client's computer.
The HTML markup language is analogous in some ways to the formatting codes used in word processing documents. A word processing document viewed through a word processing program is actually a combination of a visual representation of text and a series of non-visually perceivable formatting codes (e.g., carriage return, bold, underline) which instruct the word processing program to display the word processing document in a specified way. Similarly, an HTML file is actually a combination of the visually perceivable text, referred to as an HTML document and a series of non-visually perceivable "tags" or "anchors" (for new paragraphs, graphics images, hypertext links, etc.) which instruct the browser program to display the hypertext document in a specified way.
A HTML file is usually broken down into sections, with each section delineated by one or more HTML tags. HTML tags are formatting codes surrounded by the characters < and > (less than and greater than symbols). Some HTML tags have a start tag and an end tag. In general, end tags are in the format < /"symbol" > where the "symbol" is the character string found between the characters <and> in the start tag. FIG. 1 is an example of a series of HTML document tags forming a template for a typical hypertext document using the tags <html> and </html> Then the "head" to the document, which typically includes a title, is defmed using the tags <head> , </head> , < title > , and < /title > , respectively. Following the head comes the "body" of the document which is often organized into subtopics with different levels of headings. The body is defined by the tags <body > and </body > . Headings are indicated by the tags <h#> and </h#> , where #is the level of the heading. Heading levels indicate the relative size of the heading.
Heading level 1 is the largest heading size and heading level 6 is the smallest heading size. Finally, it is good practice to indicate the author of the document at the bottom of the document using the tags < address > and < /address > .
Once the HTML template has been established, text is added to create a basic HTML document. In order to improve readability, character and paragraph formatting tags may be added to the HTML file. For example, the <p > tag
3 instructs the browser to begin a new paragraph. If an author wants to highlight some text in bold, the author inserts the < b > tag at the beginning of the text to be highlighted and inserts a < /b > tag at the end of the text to be highlighted. The tags < i> and < /i> indicate text to display in italics. To provide additional versatility to HTML files, additional tags have been provided to allow "linking" to additional files. If a reader of a HTML document wants to know more about a topic before reading the rest of the current HTML document, the reader selects a "link" or "hot link", which retrieves a new HTML file to display a new HTML. The link could take the reader to a second HTML file (i.e., a "destination document") having the same URL.
A hot link to a destination document is made by placing a "reference anchor" around the text to be highlighted and then providing a network location, typically using a URL, where the destination file is located. A service type is a required part of a URL. The service type tells the client's browser how to contact the server for the requested data. The most common service type employed is the Hypertext Transport Protocol or http. The web can handle several other services including gopher, wais, ftp, netnews, and telnet and can be extended to handle new service types. A system name is also a required part of a URL. The system name is the fully qualified domain name of the server which stores the dam being requested. A port is an optional part of a URL. Ports are the network socket addresses for specific protocols. By default, http connects at port. Ports are only needed when the server does not communicate on the default port for that service. A directory path is a required part of a URL. Once connected to the system in question, a path to the file must be specified. A filename is an optional part of a URL. The file name is the data file itself. The server can be configured so that if a filename isn't specified, a default file or directory listing is returned. A search component is another optional part of a URL. If the URL is a request to search a data base, the query can be embedded in the URL.
HTML files have been traditionally used with common Information Processing Common Gateway Interface (CGI) script to pass client requests to an information engine on a server. The server typically includes an information engine
4 that retrieves multiple files or real-time news. Specific implementations of the information engine include, without limitation, conventional boolean search engines such as those produced by Digital Equipment Corporation, information engines employing natural language processing such as DR-LINK produced by Manning & Napier Information Services, news retrieval systems such a those produced by PointCast Technologies, Inc., and the like.
A drawback with CGI script is that dynamic creation of HTML documents by the client's computer is not facilitated. This proves problematic with interactive HTML documents such as a HTML document that includes computational functions associated with calculator programs. For each computation performed on the web page, the server must be contacted to perform the same. Each time a the server is contacted, a varying delay occurs before the resulting HTML document showing the computational results is returned to the client's computer. This delay is typically on the order of seconds and represents the major delay, and, arguably, the major drawback of efficiently obtaining information from today's WWW.
A relatively new scripting language, JavaScript overcomes many of the drawbacks associated with CGI script. Specifically, JavaScript allows executable content to be embedded in HTML files. In this fashion, JavaScript allows programmatic control over the browser, as well as the content of HTML documents. This facilitates dynamically updating the content of HTML documents on the client computer, thereby significantly reducing the wait-time when invoking a server call. For purposes of the present invention, dynamically created content is information which is derived from code being executed by the browser. Typically, a visual representation of an HTML document is in a browser window having a plurality of pixels associated therewith which correspond to a subset of the memory address location of the client computer's RAM. Information objects and the properties thereof, such as variables, necessary for dynamically updating the content of an HTML document are typically present in RAM so they can be accessed quickly as described in chapters 11 and 12 of JavaScript, The Definitive Guide, published by O'Reilly and Associated (2nd ed.). A problem exists with JavaScript, however, in that access to the information objects, as well as the properties thereof, is often lost
5 when the browser window is redrawn or refreshed, such as when a window or frame displaying a HTML page that uses the information objects is resized or redisplayed. In order for the client's computer to reacquire the information objects after a resizing or redrawing operation, an additional server call is required to reload information objects that are necessary to display the pages within the window and/or frames, thereby slowing the overall communication between the time that the client requests the information objects and the time in which the same are received.
One prior art method to retain information objects is to use an "invisible frame. " The invisible frame is not displayed on a user's screen but, instead, is used to hold objects that other visible frames need to display their pages. Such a method is described at pp. 204-205 of the O'Reilly reference, W Σ&, but often necessitates additional server calls to update frames when the same is resized or redrawn.
What is needed, therefore, is an apparatus and method for resizing or redrawing windows without requiring additional server calls to supply the necessary information objects to dynamically update the content associated therewith.
SUMMARY OF THE INVENTION The present invention provides a method and apparatus for resizing or redrawing windows without requiring additional server calls to supply the necessary information objects to dynamically update the content associated therewith. The invention does so by dividing a window into a plurality of frames, defining a reference window, and initializing all the information objects when the reference window is loaded into the client's computer. The invention is based upon the discovery that by employing the invisible frame technique, user defined variables associated with the information objects that have been dynamically updated are reset to initial values if the window containing the information objects is redrawn and/or resized In the present invention, the information objects and the variables associated therewith, are associated with a subset of the plurality of memory address locations of the RAM with which the reference window is associated. This prevents overwriting the memory address locations in which the information objects and the properties
6 associated therewith, such as variables, are located, because the lifetime of a reference window is as long as the same is open. Thus, information objects present in the memory address associated therewith are not considered freed-up by the browser until the reference window is closed. All information associated with the frames are loaded outside of the memory address locations associated with the reference window. In this fashion, content of the frames may be dynamically updated by populating the frames with the information objects associated with the reference window. Thus, when a frame is resized or moved, such as when the reference window is resized or moved, the information objects necessary to redraw the frames are maintained in the client's computer, as well as the properties associated with these information objects, such as user defined variables.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is an example of a series of HTML file tags forming a template for a HTML file of the prior art.
Fig. 2 is simplified plan view of a computer network is which the present invention is implemented.
Fig. 3 is a block diagram of a client computer shown above in Fig. 2. Fig. 4 is plan view of a reference window having a visual representation of an HTML document shown therein in accord with the present invention.
Fig. 5 is an exploded perspective view of the reference window, shown above in Fig. 4 in relation to a top level window of a client-side browser.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring to Fig. 2, a large area network is shown, such as the Internet, which includes a plurality of networked "servers" 10 that are accessible by "clients" 12. Communication between the servers 10 and the clients 12 typically occurs over a publicly accessible network, such as a public switched telephone network over ASDL telephone lines or large bandwidth trunks, such as Tl or OC3 service. The clients 12 access the various servers 10 through an Internet service
7 provider, e.g., America On-Line, Prodigy, CompuServe and the like, by executing application specific software, commonly referred to as a "browser", on a computer 14, shown more clearly in Fig. 3.
Referring to Fig. 3, the computer 14 includes a system unit 20 having one or more system buses 22 placing various components of the system in data communication. For example, a microprocessor 24 is placed in data communication with both a read only memory (ROM) 26 and random access memory (RAM) 28 via the system bus 22. The ROM 26 contains among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components such as disk drives 30 and 32, as well as the keyboard 34. The RAM 28 is the main memory into which the operating system and application programs are loaded. The memory management chip 36 is in data communication with the system bus 22 to control direct memory access (DMA) operations. DMA operations include passing data between the RAM 28 and the hard disk drive 30 and the floppy disk drive 32. Also in data communication with the system bus 22 are various I/O controllers: a keyboard controller 38, a mouse controller 40, a video controller 42, and an audio controller 44. The keyboard controller 38 provides a hardware interface for the keyboard 36, the mouse controller 40 provides the hardware interface for a mouse 46, or other point and click device, and the video controller 40 provides a hardware interface for a display 48. A modem 50 enables data communication over the network. The operating system 52 of the computer 14 may be DOS, WINDOWS 3.x, WINDOWS 95, OS/2, or other known operating system. The RAM 28 also supports a number of Internet access tools, including, for example, an HTTP-compliant web browser having a JavaScript interpreter, such as Netscape Navigator 3.0, Microsoft Explorer 3.0 and the like.
Referring to both Figs. 2 and 3, to access information over the Internet, the browser 54 employs a tcp/ip connection to pass a request to a server 10 running an HTTP "service" (under the WINDOWS operating system) or a "daemon" under the UNIX operating system. The request is typically achieved employing a protocol that can be used to communicate between the server 10 and the client 12. The HTTP server 10 then responds to the protocol, typically by sending a "web
8 page" formatted as an HTML file. The browser 54 interprets the HTML file and may form a visual representation of the same using local resources, e.g., fonts and colors. In the preferred embodiments, the aforementioned protocol comprises of scripting language such as JavaScript. Referring to Figs. 3 and 4, upon interpreting an HTML file, the browser 54 provides a visual representation of an HTML document 56, among a plurality of rectangular pixel regions on the display of the client's computer 14, defining a browser region shown as 58 in Fig. 5. The rectangular pixel regions can be segmented into windows or frames, each displaying an associated HTML page or other information. The source code corresponding to the HTML document 56 is shown in the Appendix which is attached hereto and has embedded therein, script language that incorporates a plurality of information objects. For purpose of the present invention, information objects may have associated therewith, functions, variables, arrays and other objects, data or executable code. Examples of information objects are as follows:
/ User Information var UserlD = "drldev" ; var PID = "4728"; var currentlnfoView = 0; var currentProjectlD = ""; var currentRequestName = " " ; var cuπ-entDateTimeStamp = ""; var currentMImDateTimeStamp = ""; var PRPRUser = false;
// User Defaults var def = new Object(); def.Email = "mak@textwise.com"; def. query = "I would like information about "; def.dateRange = "all"; def.fromDate = "01/01/60"; def.toDate = "11/25/97";
One of the objects in the script language is a Window object which is the first object created by the browser when a web page is located. The Window object supports,
9 inter alia, methods to pop-up dialog boxes to display messages to obtain input from the client 12, as well as provides a method by which to create new browser windows 58 and frames, such as 62, without necessitating an additional server call. To that end, the Window object includes methods, such as alert and prompt, which allow programs for the window to load a new document, including documents present at a differing URL. In this fashion, dynamic generation of an HTML document may be achieved.
Referring to Figs. 3, 4 and 5, the approach of the present invention to preserve information objects and the properties associated therewith, such as variables, even upon resizing or redisplaying a window or frame is to create a plurality of frames 60 and 62 associated within the window 56, with the window 56 defining a reference window. The reference window 56 is typically displayed within a top level window 58 of the browser 54 in which the uppermost portion includes a menu bar 66. Each of the frames 60 and 62 consists of a subset of the plurality of pixels associated with the reference window 56, mutually exclusive of the subset of the plurality of pixels of the remaining frames. In this fashion, each of the frames 60 and 62 is associated with a mutually exclusive subset of the plurality of address locations in the RAM 28. In the exemplary embodiment of the present invention, a plurality of subframes 68, 70, 72 and 74 are associated with frame 62. In the present invention, for example, frame 60 is a static frame in that no information is updated without necessitating an additional server call. To update the content in any of the remaining frames, such as frame 62 comprising subframes 68, 70, 72 or 74, the code necessary to update these frames would be associated with frame 60. In this fashion, the content of frame 62, or any of its corresponding subframes 68, 70, 72 or 74, may be updated without overwriting the code necessary to carry out the update method.
A problem was encountered upon resizing or moving the reference window 56, i.e., having the reference window 56 corresponding to a different subset of the plurality of pixels on the display 48. This resulted in the information objects, and the properties associated therewith such as user defined variables, associated with the frames 60 and 62 becoming lost. Specifically, it was recognized that the
10 ■ ■ ' information objects were lost in a manner similar to when frames have content updated, i.e., the memory address locations of the RAM 28 storing the information objects were overwritten. This problem would occur when the window was resized, moved, or associated with a new URL. To avoid this problem, information objects are stored in the memory address locations of the RAM 28 associated with information of the HTML file that creates the reference window 56. This is accomplished by defining the information objects in the window 56 definition using the HTML of Appendix A. The information objects are initialized in the reference window 56 in which the frames are defmed upon the HTML file being written to RAM 28. This procedure stores the information objects at memory addresses which the browser 54 does not allow to be overwritten until the reference window 56 is closed. This rninimizes the number of server calls necessitated when updating the content of a frame, because the information objects necessary to achieve the same are resident in the client's computer 14 at RAM 28. The information objects are populated in the frames 60, 62, 68, 70, 72 or 74, when an updating is required.
Thus, the invention has been described in connection with specific embodiments thereof. However, nothing in the specification shall be construed to limit the scope of the invention. Rather, the invention is determined solely by the appended claims.
11
APPENDIX
<HTML> <HEAD>
<TITLE>DR-LINK</TITLE>
<BASE Href--http://hostl49.mnis.ne :8082/DRv3stat/> <SCRIPT Languages' javascrip ' >
// opener. location = 'http://www.mnis.net';
// Variables & Arrays var HLwindow == false; var HelpWindow = false; var savedRequest = false; var bgColor = "ccccff"; var textColor = "000066"; var visNames = new Array("Bar Chart Visualizer") ; var visShortNames = new Array( "BarChart" ) ; var today =- new Date () ; " var justDate - (today. getMonth () +1) +«/" + today.getDate () + "/"
+ today.getYear() ;
// User Information var UserID - "drldev" ; ar PID = "20442"; var currentlnfoView = 0; var currentPro ectlD = ""; var currentRequestName =- " " ; var currentDateTimeS mp =- " " ; var currentMlπiDateTi eSta-πp = " " ;
// User Defaults var def = new σbjec () ; def.Email = "mak@textwise.con." ; def .query = "I would like information about "; def .dateRange = "all"; def.fromDate =» "01/01/60"; def.toDate = "11/25/97"; def.DBS = ""; def.docsRet = 100; def .view = "Rel"; def. sort = "Ran"; def.alertSend = "hi"; def.alertPrecision = "high"; def.alertFrequency = "twice" ; def .alertDocsRet = "5";
12
de .printIncQuery = true; def .printIncDbs = true; def .printIncDates «- true; def .printContent = "hi"; def .printDocs = "marked"; def .Highlight = "AllHL"; def.visDoc = "marked"; def.visType = "BarChart"; var currentQuery = def. query; var UserEmail = def.Email; var currentDateRange = de . dateRange; var currentFromDate = de . fromDate ; var currentToDate = def.toDate; var currentDocsRequested -» def.docsRet var currentResView = def .view; var currentResSort = def . sort ; var currentAlertSend = def .alertSend; var currentAlertPrecision = def .aler Precision; var currentAlertFrequency = def.alertFrequency; var currentAlertDocsRet = def .alertDocsRe ; var current rin IncQuery = def .printIncQuery; var currentPrin IncDbs = def .printlncDbs; var currentPrintIncDates = def.printlncDates; var currentPrintContent = def . rin Content; var currentPrintDocs == def.printDocs ; var currentHighlight = def .Highlight; var currentVisDσcs = def.visDoc; var currentVisType = def.visType;
// Query Review var QRURL; var Anallnfo; var CEDim; var AttribQ; var Pred; var EvalCom; var TFPast; var TFPresent; var TFFuture; var TFA11; var User anTerms; var ManTerms; var ProperNouns ; var TermAlternatives; var Subjects; var HiddenPN;
// Results var haveResults = false;
13
var QueryKey; Result » new Array () ; ResSubject = new Array() ; ResDatabase = new Array ( ) ; var ResQuery; var ResFromDate; var ResToDate; var ResDBs; var ResMl = false;
Mlm = false; var CurrentResult = 0; var CurrentRank = 0; var resultlndex = new Array () ;
// More Like Marked
OldResult =- new Array ( ) ; OldResSu ject =■ new Array () ; OldResDatabase -= new Array (. ;
// Alerts var haveAlertsResuits = false;
AlertDates = new Array
('11/10/97' , '11/11/97' . '11/12/97' , '11/13/97' , '11/14/97' , '11/15/97 ' , '11/16/97' , '11/17/97' , '11/18/97' , '11/19/97' , '11/20/97' , '11/21/9 7' , '11/22/97' , '11/23/97' , '11/24/97' , '11/25/97' , '11/26/97' ,' 11/27/ 97' , '11/28/97' , '11/29/97' , '11/30/97' , '12/01/97' , '12/02/97', '12/03 /97' , '12/04/97' , '12/05/97' , '12/06/97' , '12/07/97' , '12/08/97' , '12/0 9/97'); var begiπAlertDate = AlertDates. length - 1; var endAlertDate = AlertDates . length - l;
Alerts =- new Array() ; var currentAlert - -1;
AlertsRes = new Array () ; var currentAlertResIndex = 0; var alertQuery; var alertDBs; var alertsIndexArray; var alertsDateTimeSta p;
// Help
14
var currentHelplndex = 0;
// Databases
Database = new Array () Selected = new Array ()
Database a new Object () ; Database .name = "Aerospace/Defense IntellX"; Database .value = 80; Database .checked = false; Database .money -- true;
Database = new Ob ec ( ) ; Database .name = "AFX-ASIA" ; Database .value = 472; Database .checked = false; Database .money = false;
Database = new Object () ; Database .name - "AFX-EUROPE"; Database .value = 6; Database .checked = false; Database .money = false;
Database =» new Object () ; Database .name = "Agriculture - MNIS"; Database .value = 809; Database .checked = false; Database .money = false;
Database = new Object () ; Database .name = "Auto IntellX"; Database .value = 75; Database .checked = false; Database .money = true;
Database = new Ob ect ( ) ; Database .name = "Banking MNIS"; Database .value m 798; Database .checked » false; Database .money = false;
Database = new O ject () ; Database .name = "Banking IntellX"; Database .value = 76; Database .checked = false; Database .money = true;
Database = new Object ( ) ; Database .name = "Biotech IntellX"; Database .value = 77;
Database .checked = false;
15
Database [7] .money = true;
Database [8] = new ob ect () ;
Database [8] .name = "Computer IntellX"
Database [8] .value = 78;
Database [8] . checked = false;
Database [8] .money = true;-
Database [9] = new Ob ect ( ) ;
Database [9] . name = "Computer Sciences & Engineering - CSA" ,-
Database [91 . value = 836;
Database [9] . checked = false;
Database 19] . money = false;
Database [101 = new Object 0 ;
Database -10] .name = "Computers, Software & Technology - MNIS";
Database :ιo- .value = 157;
Database !io] .checked = false;
Database [10] .money = false;
Database '11] = new Object () ;
Database :n] .name = "Construction IntellX";
Database :ιi] .value = 79;
Database [11] .checked = false;
Database [11] .money = true;
Database [12] =• new Object ( ) ;
Database ;i2] .name =* "Consumer News - Comline";
Database [12] .value = 794;
Database ;i2] .checked = false;
Database [12] .money - true;
Database [13] = new Object ( ) ;
Database ;i3] .name = "Electronics - Comline";
Database :i3] .value = 793;
Database [13] .checked = false;
Database [13] .money = true;
Database [14] = new Object () ;
Database :i ] .name = "Energy IntellX";
Database [14] .value = 81;
Database :i ] .checked = false;
Database .14] .money = true;
Database [15] * new Object () ;
Database [15] .name = "Entertainment IntellX";
Database [15] .value = 82;
Database [15] . checked = false ;
Database [15] .money = true;
Database [16] = new Object () ;
Database [16] .name = "Environment/Waste IntellX";
Database [16] .value = 83;
Database [16] .checked = false;
16
Database [16] .money = true;
Database [17] = new Object 0 ;
Database :i7] .name = "Food & Beverage IntellX";
Database [17] . alue = 8 ;
Database '17] .checked = false;
Database [17] .money = true;
Database [18] = new Object ( ) ;
Database [18] .name = "General Business IntellX";
Database ;i8] .value = 85;
Database [18] .checked = false;
Database [18] .money = true;
Database [19] = new Object () ;
Database [19] .name = "Government IntellX";
Database :i9] .value = 100;
Database ;i9] .checked - false;
Database [19] .money = true;
Database [20] = new O ect ( ) ;
Database ;20] .name = "Healthcare IntellX";
Database !20] .value = 86;
Database :20] .checked = false;
Database [20] .money = true;
Database [21] - new Object 0 ;
Database [21] .name - "IAC Market Collection (1997)";
Database [21] .value = 808;
Database !21] .checked = false;
Database [21] .money = true;
Database [22] = new Object () ;
Database [22] .name » "IAC Market Research (1996)";
Database [22] .value * 806;
Database [22] .checked - false;
Database [22] .money = true;
Database [23] = new Object ( ) ;
Database [23] .name = "IAC Newsletter Collection (1995)"
Database [23] .value = 857;
Database [23] , checked = false;
Database [23] .money » true;
Database [24] β new Object () ;
Database [24] .name = "IAC Newsletter Collection (1996)
Database [24] .value = 155;
Database [24] . checked = false;
Database [24] .money = true;
Database [25] = new Obj ec ( ) ;
Database [25] .name = "IAC Newsletter Collection (1997)
Database [25] .value = 807;
Database [25] .checked = false;
17
Database [25] .money = true,
Database [26 = new object () ,• Database [26 .name = "IEE/INSPEC (1990-1991)"; Database [26 .value = 870; Database [26 .checked = false; Database [26 .money = false;
Database [27 = new Object 0 ; Database (27 .name = "IEE/INSPEC (Jan 1 1960 - Feb 28 1981)"; Database [27 .value = 398; Database [27 .checked = false; Database [27 .money = false;
Database [28 = new Object 0 ; Database [28 .name = "IEE/INSPEC Database (1960-1989)"; Database [28 .value = 29; Database [28 .checked = false; Database [28 .money = false;
Database [29 = new Object () ; Database [29 .name = "IEE/INSPEC Updates and Additions (Jan 1993 Dec 1996) " ; Database [29 .value a 399; Database [29 •checked = false; Database [29 .money - false;
Database [30 = new Ob ect ( ) ; Database [30 .name = "Information Technology & Computers - Comline" ; Database [30 .value = 792; Database [30 .checked = false; Database [30 .money = true ;
Database [31 = new Ob ec ( ) ; Database [ 1 .name = "Insurance IntellX"; Database [31 .value = 87; Database [31 .checked = false; Database [31 •money =• true;
Database [32 = new Object () ; Database [32 .name = "Labor and Economics - MNIS"; Database [32 .value = 819; Database [32 .checked » false; Database [32 .money = false?
Database [33 » new Object 0 ; Database [33 -name = "Military - MNIS"; Database (33 .value =- 822; Database [33 . checked = false ; Database [33 .money = false;
Database [34 = new Object () ; Database [34 .name = "Multimedia/Interactive IntellX";
18
Database [34 .value = 88; Database (34 .checked = false; Database (34 .money = true;
Database [35 « new Object () ; Database (35 .name -- "Nris (1960-1969)"; Database [35 .value = 23; Database [35 .checked = false; Database [35 .money = false;
Database [36 ■» new Object () ; Database [36 .name = "NTIS (1980-1989)"; Database [36 .value = 20; Database [36 . checked = false ; Database (36 .money = false;
Database [37 = new Obj ect () ; Database [37 .name - "NTIS (1990-1994)"; Database (37 •value = 15; Database [ 7 .checked = false; Database [37 .money = false;
Database [38 =» new Object () ; Database [38 .name - "Packaging/Forest Products IntellX"; Database (38 .value = 89; Database [ 8 .checked = false; Database [38 .money = true;
Database [39 = new Object 0 ; Database (39 .name = "Science and Engineering - MNIS"; Database [39 •value = 824; Database [39 .checked = false; Database [39 .money = false;
Database [40 = new Object () ; Database (40 .name = "Social Sciences - MNIS (1990-1994)"; Database [40 .value = 825; Database [40 .checked = false; Database [40 .money = false;
Database [41 - new Objec ( ) ; Database [41 •name = "Telecommunications - Comline"; Database [41 .value β 795; Database [41 .checked = false; Database [41 .money = true;
Database [42 -» new Object () ; Database [42 .name = "Tokyo Financial Wire - Comline"; Database [42 .value =- 796; Database [42 .checked = false; Database [42 .money = true;
Database [43 = new Ob ect ( ) ; Database [43 .name = "Transportation & Shipping IntellX";
19
Database [43 .value = 93;. Database [43 .checked = false; Database (43 .money = true;
Database [44 « new Object () ; Database [44 .name = "Travel & Tourism IntellX"; Database [44 .value = 94; Database [44 .checked = false; Database [44 .money = true;
Database [45 = new Object () ; Database [45 .name - "Utilities IntellX"; Database [45 .value = 95; Database (45 .checked = false; Database [45 .money = true;
// Subjects
Su ect = new Array ( ) ;
Subject [0 = new Object ( ) ; Subject [0 .name = "Biotechnology, Healthcare S- Pharmaceuticals"; Subject [0 .databases - "7:20:35:36:37";
Subject [l = new Object ( ) ; Subject [1 •name = "Business, Economics &- Finance"; Subject [1 .databases = "5:6:18:21:22:23:24:25:31:32:42";
Sub ect [2 ■ new Object () ; Subject [2 .name = "Computers & Telecommunications"; Subject [2 .databases - "8:9:10:26:27:28:29:30:34:35:36:37:41";
Subject [3 ■ new Object () ; Subject [3 .name = "Consumer Affairs"; Subject [3 .databases =- "12:15:17:44";
Subject [4 β new Object () ; Subject [4 .name - "Government, Military & Politics"; Subject [4 .databases = "0:19:33";
Subject [5 = new Object () ; Subject [5 .name = "Natural & Applied Sciences, Engineering"; Subjec [5 .databases =
"3:4:9:11 13:14:16:26:27:28:29:35:36:37:38:39:43:45";
Subjec [6 * new Objec ( ) ; Subject [6 .name = "Newspapers & Newswires"; Subj ct (6 .databases = "1:2:12:13:23:24:25:30:41:42";
Subject (7 = new Object ( ) ; Subject [7 .name = "Social Sciences & Humanities"; Subject [7 .databases = "40";
20
// Vendors
Vendor = new Array( ) ;
Vendor (0 = new Object () ; Vendor [0 .name = "AFX News Limited"; Vendor [0 .databases = "1:2";
Vendor [1 = new Object () ; Vendor [1 .name = "Cambridge Scientific Abstracts"; Vendor [1
Vendor [2 = new Object () ,• Vendor [2 .name = "Comline Business Data, Inc."; Vendor (2 .databases = "12:13:30:41:42";
Vendor [3 <-- new Object () ; Vendor(3 .name = "Information Access Company"; Vendor [3 .databases = "21:22:23:24:25";
Vendor [4 =• new Object () ; Vendor [4 .name = "Institution of Electrical Engineers"; Vendor (4 .databases -■ "26:27:28:29";
Vendor [5 = new Object () ; Vendor[5 .name - "Intell.X" ; Vendor[5 .databases = "0:4:6:7 8 :11:14 :15:16 :17 : 18 : 19 :20 :31 :3 :38 : 3 :44 : 5" ;
Vendor[ β new Objec () ; Vendor [6 .name = "Manning & Napier Information Services, Inc." Vendor(6 .databases = "3:5:10:32:33:39:40";
Vendor [7 = new Object 0 ; Vendor [7 .name = "National Technical Information Service"; Vendor [7 •databases » "35:36:37n;
//•
// History historyArray = new Array0 ; var currentHistory;
// Saved Queries savedArray = new Array () ; var currentSavedQuery;
// Help
21
var currentHelplndex = 0; var helpTopics;
// Functions function split (d,t) s « new Array() ; for (i=0; true; i++)
{ p = .indexOf (d) ; - if (p « -1) s(i] = t; brea ;
} s[i] = t.substring(0, ) ; t ** t. substring(p+l) ;
} return a;
} function resetDefaultDBs ()
{
DBs - split ( " : " ,def .DBs) ; for (var i = 0; i < DBs. length; i++) for (var j » 0; j < Database.length; j++) if (i — 0) top.Database [j] .checked false; if (Database [j] .value ■« DBs [i] )
Database [j] .checked « true;
}
}
} resetDe aultDBs () ; function onDBSelCancel ()
{ for (var i = 0; i < Database. length; i++)
Database [i] .checked = false; } for ( var i = 0; i < Selected.length; i++)
{
Database [Selected[i] ] .checked = true;
}
22
} function viewSummary(thisRank, thislndex)
CurrentRank = thisRank;
CurrentResult = thislndex; to . mBody. mbDisplay.mbdTo . location Resul [thisRank] . suHref; } function viewFullText (thisRank, thislndex)
CurrentRank = thisRank;
CurrentResult = thislndex; top.mBody. mbDispla .mbdTo . location Result [thisRank] . ftHref; } function clearResultlnde O
{ resul Index = new Arra () ;
function initResArrays ()
Result » new Arra () ; ResSub ect * new Array() ;
function initQRArrays ()
ManTer s = new Array0 ; Subjects -- new Array() ; ProperNouns « new Array() ; TermAlternatives = new Array() ;
function initResDatabaseObject (Dblndex)
ResDatabase [Dblndex] = new Object ();
function initResSubjectOb ect (Dblndex)
ResSubject [Dblndex] = new Objec ();
function initResultObject (Dblndex)
Result [Dblndex] - new Object 0;
function initManTermsObject (Dblndex)
23
{
ManTerms [Dblndex] = new Objec O;
function initProperNounsObjec (Dblndex)
ProperNouns [Dblndex] = new Object 0; ProperNouns [Dblndex] .array = new Array() ;
function initProperNounsObjectArray(Dblndex, ArrayIndex)
ProperNouns [Dblndex] .array[Arraylndex] » new Object ;
function initTermAlternativesOb ect (Dblndex)
TermAlternatives [Dblndex] = new ObjectO; TermAlternatives [Dblndex] .array =- new Array0 ;
function initTermAltemativesObjectArray(Dblndex, Arraylndex)
TermAlternatives [Dblndex] .array[Arraylndex] = new O ect () ;
function initSubjectsObjec (Dblndex)
Subjects [Dblndex] = new Object () ;
function initResult ()
{
Result a new Array() ;
} function initOldResult ()
{
OldResult = new Array() ;
function initResSubject 0
ResSubject = new Array() ;
function initOldResSubject ()
OldResSubject = new Array() ;
unction initResDatabase () {
24
ResDatabase = new Array () ;
function initOldResDatabase ()
OldResDatabase = new Array0 ;
function initHelpTopics helpTopics = new Array 0 ;
function initAlertsO
Alerts -= new Array() ;
function initAlertsObject (index)
Alerts [index] » new ObjectO;
unction initAlertsRes ()
AlertsRes = new Array() ;
function initAlertsResObject (index)
AlertsRes [index] = new ObjectO; AlertsRes [index] .array = new Array() ;
function initAlertsResArrayObject (thisArray, index)
AlertsRes [thisArray] .array[index] « new ObjectO;
function initAlertsIndexArray alertslndexArray =» new Array0 ;
</SCRIPT>
</HEAD>
<FRAMESET ROWS=»50,+" NAME=»main"> <FRAME
SRC=>"http://host149.mnis .ne :8082/DRLv3stat/mTocAgent.htm" NAME-"mToc" MARGINWIDTH=5
25
MARGINHEIGHT=5
FRAMEBORDER=-yes
SCROLLING=no
NORESIZE
>
<FRAME
SRC="htt : //hostl49. mnis .ne : 8082/DRLv3stat/mBodyAgentF htm" NAME="mBody" FRAMESPACING=5 FRAMEBORDER=yes > </FRAMESET>
<NOFRAMES->
This is where to put text that browsers without frames support will display.
</NOFRAMES>
</HTML>
26
<HTML> <HEAD > <meta http-equiv= "pragma" content= "no-cache" >
< TITLE > mTocAgent < /TITLE >
< script language = "javascript" >
function changeSection(display, me)
{ top.modifyAlert = 0; top.ResQuery = top. currentQuery; top.ResFromDate = top.currentFromDate; top.ResToDate = top.currentToDate; top.ResMlm = top.Mlm; top.MIm = false;
top.ResDBs = ""; for (i = 0; i < top. Database. length; i+ +)
{ if (top. Databasefi]. checked)
{ top.ResDBs = top.ResDBs + top.Database[i]. value + ":";
} }
display = "/DRLv3stat/" + display;
top.currentlnfoView = 0;
parent.mBody. location = display; location = me;
27
}
function changeHTTPB (display, me)
{ top.modifyAleit = 0; top.ResQuery = top. currentQuery; top.ResFromDate = top.currentFromDate; top.ResToDate = top.currentToDate; top.ResMlm = top.Mlm; top.Mlm = false;
top.ResDBs = ""; for (i = 0; i < top. Database. length; i+ +)
{ if (top.Database[i]. checked)
{ top.ResDBs = top.ResDBs + top. Database[i]. value + ":";
} }
if (display = = "ALERTS" && top. have AlertsResults)
{ display = 7DRLv3stat mBodyAlertsResF.htm";
} else
{ display = "/HTTPB3/DRLINKv3/" + display + "?" + top.UserlD;
}
top.currentlnfoNiew = 0;
28 parent. mBody. location = display; location = me;
}
function resetSystem()
{ top.location = 7HTTPB3/DRLINKv3/mainF/' + top.UserlD + ' + ' + top.PID;
}
< /script >
</HEAD >
< BODY BGCOLOR= "ffffff" >
< TABLE Width= 100% Border =0> <TR>
<TD Valign=Top Align=Left>
<IMG SRC = "agentToc.gif" WIDTH=506 HEIGHT=38 USEMAP= "#mTopMap" border=0>
< map name = "mTopMap " >
<area shape=rect coords= "224,1,279,38"
HREF= "javaScript:changeHTTPB('SAVED' , 'mTocSaved.htm'); " >
<area shape=rect coords = "305,1,362,38"
HREF= "javaScript:changeHTTPB(' ALERTS', 'mTocAlerts.htm'); " >
<area shape=rect coords= "383,1,423,38"
HREF= "javaScript:changeSection(,mBodyPrefsF.htm, , 'mTocPrefs.htm'); " >
<area shape=rect coords = "449,0,500,38"
HREF= "javaScript:changeSection('mBodyContactF.htm' , 'mTocContact.htm'); " >
</map>
< /TD >
< TD Valign = Center Align= Right >
29
<A Href=javascript:resetSystem(); > < IMG Src=stop.gif Border=0> < /A>
</TD >
< /TR>
< /TABLE >
< /BODY>
< /HTML>
<HTML>
<HEAD >
< TITLE > mBody AgentF < /TITLE >
< SCRIPT Language = 'JavaScript' > top.bgColor = "ccccff";
< /SCRIPT >
</HEAD >
< FRAMESET COLS = "150,*" >
< FRAME SRC= "blank.htm" NAME= "wholeToc" MARGINWIDTH=0 MARGINHEIGHT=0 FRAMESPACING=0 FRAMEBORDER=0 >
< FRAME
SRC = "mbDisplayAgentF.htm"
NAME = "mbDisplay"
MARGINWIDTH=0
MARGINHEIGHT=0
FRAMESPACING=0
FRAMEBORDER=0
>
30
< /FRAMESET >
< /HTML>
<HTML> <HEAD >
< TITLE > whoieTocF < /TITLE >
< frameset rows = " 130, * " >
< FRAME
SRC = "tocTop.htm"
NAME= "mbTocTop"
MARGINWIDTH=5
MARGINHEIGHT=5
FRAMESPACING=0
FRAMEBORDER=0
SCROLLING = auto
NORESIZE
>
< FRAME
SRC = "mbAgentQEToc.htm" NAME= "mbToc" MARGINWIDTH=5 MARGINHEIGHT=5 FRAMESPACING=0 FRAMEBORDER=0 SCROLLING = no NORESIZE >
< /FRAMESET > < /HEAD >
31
< /HTML>
<HTML>
<HEAD>
< script > function writeTopPage(mylndex)
{ document.writeC < BODY Bgcolor = ".top.bgColor," > "); document.writeC < font size =2 face = "helvetica, arial" > ');
if (my Index = =0)
{ document.writeC < B > Request');
if (top.Mlm)
{ document.writeC' (MLM)");
}
document.writeC: </B> <BR> <FONT Size =2 face = "helvetica, arial" > *); document. write(top .currentQuery) ;
else if (mylndex= = 1)
{ document.writeC < B > Date Range: < /B > < BR> < FONT Size=2 face = "helvetica, arial" > '); document. writelnC < table > <tr> <td align=right> '); document.writeC From: < /td> <td> '); document. write(top.currentFromDate); document.writeC </tr> <tr> <td align=right> ');
32 document.writeC To: '); document. writeln( ' < /td> < td> '); document. write(top . currentToDate) ; document. writeln( ' < /td> < /tr> < /table > ');
}
else if (mylndex= =2)
{ document.writeC < B > Databases: </B > <BR> < FONT Size=2 face = "helvetica, arial" > ');
var flag = true; var a=top.Database.length for (x=0; x< a; x+ +)
{ if (top. Database[x]. checked)
{
document.writeC < hr height= 1 noshade > ');
if (top. Database[x]. money)
{ document. write(" <FONT Color= 339900 > $ < /FONT > ");
} document. write(top.Database[x] .name); document. writelnC <br> '); flag = false;
} x
}
33
if (flag)
{ document.writeC < center > (No Databases
Selected) < /center > '); }
} }
< /script > </HEAD >
< script > writeTopPage(top.currentΙnfoView); < /script >
</BODY>
</HTML>
<HTML>
<HEAD >
<meta http-equiv= "pragma" content= "no-cache" >
< TITLE > mbAgentQEToc.htm < /TITLE>
< script language = "javascript" >
top.bgColor = "ccccff";
function doInfoClick(myNum)
{ if (myNum = = 0)
{
34 top. currentQuery = top.mBody.mbDisplay.mbdTop.document.queryEntryForm.queryText.value; }
top . currentlnfoView = myNum; parent . mbTocTop . location = " tocTop . htm "
}
function launchSelection(me)
{ if (me= = "p") window.open("/HTTPB3/DRLINKv3/HISTORY?" + top.UserlD, "history",
"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars = l,resizable = l,width=570,height=450");
else if (me= = "n")
{ top.modifyAlert = 0; top.currentQuery = top. def. query;
top.mBody.mbDisplay.mbdTop.document.queryEntryForm.queryText.value top.def.query; top.currentDBs = top.def.DBs; top.currentToDate = top.def.toDate; top.currentFromDate = top.def.fromDate; top.currentDocsRequested = top.def.docsRet; top.currentProjectlD = ""; top . resetDefaultDBsO ; doInfoClick(top . currentlnfoNiew) ; top.haveResults = false;
35 top.mBody. mbDisplay. mbdTop. location = 'agentNewQE.htm';
} }
< /script > </HEAD>
< BODY BGCOLOR = "ccccff" >
< FORM NAME= "infoForm" >
< table cellspacing =0 cellpadding=0> <tr>
<td> <font size=2> <INPUT TYPE="RADIO" checked NAME="queryInfo" VALUE="" onClick="doIπfoClick(0)">Request
<IΝPUT TYPE="RADIO" NAME =" query Info" VALUE="" onClick= "doInfoClick(l);" >Dates </font> </td> </tr> <tr>
<td> <font size=2> <INPUT TYPE="RADIO" NAME=" query Info" VALUE="" onClick="doInfoClick(2);">Databases</font> </td> </tr> < /table > <p>
< center >
< table > <tr>
<td> <a href="javascript:launchSelectionCp');"> <img src= "viewHistory.gif" border=0> </a></td> </tr>
<tr>
36
< td > < a href = "javascript:launchSelection('n'); " > < img src= "newRequest.gif" border =0> < /a> < /td> < /tr> < /table > < /center >
< /FORM >
</BODY >
</HTML>
<HTML>
<HEAD >
<ΗTLE> < /ΉTLE>
<META NAME = "EDITOR" CONTENT = "HTML Assistant Pro 97 - http://www.brooknorth.com/" >
</HEAD >
< FRAMESET ROWS = " *,40" >
< FRAME
SRC = "agentNewQE.htm"
NAME = "mbdTop"
MARGINWIDTH=5
MARGINHEIGHT=5
FRAMEBORDER=0
NORESIZE
>
< FRAME
SRC = "agentQEControls.htm"
NAME= "mbdControls"
FRAMESPACING=0
MARGINWIDTH=2
MARGINHEIGHT=2
37 ■ " '
FRAMEBORDER=0 SCROLLING = no > < /FRAMESET >
< /HTML>
<HTML>
<HEAD>
^πTLE>agentNewQE</TITLE>
<SCRIPT LANGUAGE=JavaScript> function loadPage()
{ top.mBody.wholeToc.location= 'wholeTocF.htm'; document.queryEntryForm.queryText.value= top.currentQuery
}
function doDBSelectionO
{ window.open("dbSelectionF.htm", "dbSelection",
"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars= 1 ,resizable= 1 ,widt h=570,height=430");
}
function doDateSelectionO
{ window.open("dateSelectionF.httn", "dateSelection", "toolba_=0,location^,directories=0,status ),menuba_=0,scrollbars==0,resizable=l,widt h=300,height=330")
}
38 function updateQuery()
{ top.currentQuery = document.queryEntryForm.query Text, value;
if (top.currentlnfoNiew — 0)
{ top.mBody.wholeToc.mbToc.doInfoClick(O);
}
function changeDocs(me)
{ top.currentDocsRequested = me.options[me.selectedIndex] .value;
}
function getQEDefsO
{ document. writeln('<FORM ΝAME="queryEntryForm">'); document.writeln('<rEXTAREA ROWS=7 COLS=40 NAME="queryText" WRAP="VIRTUAL">*); document.writeln('</TEXTAREA>'); document.writeln('<TABLE BORDER=0>'); document. write("<TR><td>Project ID:<br><INPUT TYPE=TEXT NAME=ProjectID SIZE=20 value=\""); document. write(top.currentProjectID); document. writeln("\"></td>"); document. writeln("<td> </td>"); document.writeln("<td>Documents Requested: <br>");
39 document. writeln("<SELECT NAME=DocsRequested SIZE=1 width=4 onChange='changeDocs(this);'>"); document. write("<option Value=l 00"); if (top.currentDocsRequested = 100) document.writeC selected"); document. writeln("> 100"); document. write("<option Value=75"); if (top.currentDocsRequested = 75) document. write(" selected"); document.writeln(">75"); document. write("<option Value=50"); if (top.currentDocsRequested = 50) document. write(" selected"); document.writeln(">50"); document. write(" <option Value=25 ") ; if (top.currentDocsRequested = 25) document. rite(" selected"); document. writeln(">25"); document. write("<option Value=l 0"); if (top.currentDocsRequested = 10) document. rite(" selected"); document. writeln("> 10"); document^vriteln("</SELECT></FORM></td </tr></table>");
} </SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<BR>
<center>
<table idth="100%">
<tr>
40
<td align=center valign=top><A hre_="javascript:doDBSelection();" onClick=updateQuery();><img src="selectDBs.gif ' border=0></a>
<td align=center valign=top><a href="javascript:doDateSelection();" onClick=updateQuery();><img src="selectDates.gif' border=0></a></td> </tr> </table>
<br>
<FONT SIZE=2><I>Type your request into the box below. <br>Please capitalize the first letter of all proper nouns (e.g., "India").<p></I></FONT>
<P>
<script> getQEDefsO; loadPageO; </script>
<hr>
<center><font size=l>Copyright r- 1997 Manning & Napier Information
Services<BR>
All Rights Reserved. DR-LINK is a trademark of Manning & Napier Information Services.</center> </BODY> </HTML> <HTML> <HEAD>
<meta http-equiv= "pragma" content= "no-cache" > < TITLE > mbdControls < /ΗTLE >
41
< script language = "javascript" >
top.helpTopics = new Array (); top.bgColor = "ccccff"; top.textColor = "000066";
top.helpTopicsfO; = new ObjectO; top.helpTopicspj .text = "Viewing Current Request Information"; top.helpTopics[0 .page = "hAgInfoREF.htm";
top.helpTopics[l = new ObjectO; top.helpTopics[l .text = "Using Your Request History"; top.helpTopics[l .page = "hAgHistF.htm";
top.helpTopics[2 = new ObjectO; top.helpTopics[2 .text = "Selecting Databases"; top.helpTopics[2 .page = "hAgDBF.htm";
top.helpTopics[3 = new ObjectO; top.helρTopics[3 .text = "Selecting a Date Range"; top.helpTopics[3 .page = "hAgDateF.htm";
top.helpTopics[4; = new ObjectO; top.helpTopics[4' .text = "Writing an Effective Query"; top.helpTopics[4; .page = "hAgQueryF.htm";
top.helpTopics[5 = new ObjectO; top.helpTopics[5 .text = "Project ID"; top.helpTopics[5 .page = "hAgProjIDF.htm";
top.helpTopics[6] = new Object();
42 top.helpTopics[6].text = "Documents Requested"; top.helpTopics[6].page = "hAgDocsReqF.htm";
top.helpTopics[7] = new ObjectO; top.helpTopics[7].text = "Starting Your Search"; top.helpToρics[7].page = "hAgStartSearchF.htm";
top.helpTopics[8] = new ObjectO; top.helpTopics[8].text = "Starting A New Request"; top.helpTopics[8].ρage = "hAgNewReqREF.htm";
top.helpTopics[9] = new ObjectO; top.helpTopics[9].text = "Show Help Index"; top.helpTopics[9].page = "helpIndexF.htm";
function helpSelectionO
{ window.openChelpSelectionF.htm" , "helpSelection" ,
"toolbar=0,location=0,directories =0,status =0,menubar =0,scrollbars =0,resizable = l,width=360,height= 150");
}
function enterQueryO
{ var noDBsFlag = true; for (i = 0; i < top. Database. length; i+ +)
{ if (top. Databasefi]. checked)
{ noDBsFlag = false;
43
}
if (noDBsFlag)
{ alert ("You must select at least one database for searching. "); return; }
top. currentProjectlD = parent.mbdTop . document, query Entry Form. ProjectID . value parent.mbdTop .updateQueryO ; top.currentlnfoView = 0; top.r__Body.mbDisplay.mbdTop.location= "blankQuerySubmit.htm" top.animatedGifC'Blue'');
}
< /script >
</HEAD>
< BODY BGCOLOR= "ccccfP >
< table cellspacing=0 cellpadding=2 width="100%" > <tr>
< td valign=top > < a href = "javascript:helpSelectionO; " > < img src= "help.gif border=0> </a> </td>
44
<td align=right valign=top> <a href =javascript:enterQueryO; > <img src = " startSearch.gif" border =0> </a></td>
</tr> < /table > </FORM>
</BODY> </HTML>