Non-grid television guide

The technology is a system and method for displaying a non-grid electronic program guide. Available television channels and episodes are identified in a program guide database. The available television channels are displayed in a first window of the guide. The television series associated with the available episodes are displayed in a second window of the guide. In response to selecting one of the available television channels, the available television episodes are narrowed to the television series that air on the selected television channel. In response to the selection of one of the television series, episodes of the selected television series are displayed in a third window of the guide. Selecting an episode displays the episode information in a fourth window of the guide.

BACKGROUND

The way people consume television is changing dramatically. Previously, a consumer had to watch a television program the night it aired. However, the introduction of the personal video recorder (PVR) and video on demand (VOD) services now provides the consumer the ability to watch a television program during other times. The original airing time of the television program is no longer the most important piece of information relating to the program itself. In fact, the airing time of the television program is irrelevant as long as the consumer requests recording of the television program prior to the airing time or the television program is available on video on-demand (“VoD”).

Scheduling the recording of a television program is often done via an electronic program guide (EPG). Conventional EPGs are displayed on a grid. Typically, the vertical axis of the EPG grid displays the available channels and the horizontal axis of the EPG grid displays the time. Each intersection of the vertical axis (channel) with the horizontal axis (time) displays an airing of a television program. The viewer may scroll along both the horizontal axis and vertical axis to identify television programs being broadcast at different times and on different channels. The EPG provides the viewer the ability to view additional information for a television program by selecting the specific airing of the television program in the EPG.

FIG. 1illustrates a conventional EPG10for selecting scheduled programs. EPG10may be used to schedule a recording request for a particular episode. In the EPG10, an episode of “That '70s Show”12is scheduled to be broadcast between 10:00 pm and 10:30 pm on Channel 36, an episode of “SportsCenter”14is scheduled to be broadcast between 10:00 pm and 11:00 pm on Channel 38, the movie “Forrest Gump”16is scheduled to be broadcast between 10:00 pm and 11:00 pm on Channel 37 and an episode of “Good Eats”18is scheduled to be broadcast between 11:00 pm and 11:30 pm on channel 35. The EPG10restricts the user's view to a few channels at a time (6 channels at a time in the EPG10) for a limited period of time (90 minutes in the EPG10).

SUMMARY

One aspect of the present technology is to provide a non-grid EPG that emphasizes content and de-emphasizes time. The program guide is divided into four display windows: A first window that displays available television channels, a second window that displays available television series, a third window that displays episodes, and a fourth window that displays episode details. Selecting a television channel displayed in the first window of the EPG filters the television series displayed in the second window of the EPG. Selecting a television series in the second window of the EPG filters the episodes displayed in the third window of the EPG.

One aspect of the present technology is to provide a non-grid EPG that organizes all available television episode contained in a program guide database by content. The non-grid EPG obtains channel and episode information from a program guide database. Based on a selection of a television channel by the viewer, the non-grid EPG displays television series in the second window of the EPG that only air on the selected television channel and contain at least one episode in the program guide database. If the program guide database contains episodes for a fourteen day period, the second window of the EPG will display all television series that air on the selected channel that also includes at least one episode within the next fourteen days. By selecting one of the television series, the non-grid EPG will display every episode of the television series that airs in the next fourteen days.

One aspect of the present technology is provide a user interface that does not limit the display of available programming to a specific time period. The user interface narrows the choices of available programming based on channel selection and television series selection. If the viewer selects a specific television channel, the user interface narrows the choice or available programming to the television series that air on the selected television channel. The choices of television series are displayed regardless of when an episode of the television series airs. This allows the viewer to easily select the content they want to watch without having to scroll through a grid-based EPG. Selecting a specific television series displays the episodes of the selected television series that are available to the viewer. This content-based user interface allows a viewer to select programming without having to scroll through channels and airing times.

DETAILED DESCRIPTION

The technology described herein provides a non-grid EPG. An EPG is generated that includes four separate windows. The first window displays available television channels. The second window displays available television series. The third window displays available television episodes. The fourth window displays episode details. Upon selecting a television channel in the first window, the television series displayed in the second window are filtered to television series that air on the selected television channel and have an episode in the program guide database. Upon selecting a television series, all available episodes of the selected television series are displayed in a third window of the EPG. The details of a selected episode are displayed in a fourth window.

The present technology will now be described in reference toFIGS. 2-8.FIG. 2illustrates an example of a suitable general computing system environment201for generating a recording schedule. It is understood that the term “processing device” as used herein broadly applies to any digital or computing device or system. The computing system environment201is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the inventive system. Neither should the computing system environment201be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary computing system environment201.

The system memory230includes computer storage media in the form of volatile and/or nonvolatile memory such as ROM231and RAM232. A basic input/output system (BIOS)233, containing the basic routines that help to transfer information between elements within computer210, such as during start-up, is typically stored in ROM231. RAM232typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit220. By way of example, and not limitation,FIG. 2illustrates operating system234, application programs235, other program modules236, and program data237.

The computer210may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,FIG. 2illustrates a hard disc drive241that reads from or writes to non-removable, nonvolatile magnetic media and a magnetic disc drive251that reads from or writes to a removable, nonvolatile magnetic disc252. Computer210may further include an optical media reading device255to read and/or write to an optical media.

Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, DVDs, digital video tapes, solid state RAM, solid state ROM, and the like. The hard disc drive241is typically connected to the system bus221through a non-removable memory interface such as interface240. Magnetic disc drive251and optical media reading device255are typically connected to the system bus221by a removable memory interface, such as interface250.

The drives and their associated computer storage media discussed above and illustrated inFIG. 2, provide storage of computer readable instructions, data structures, program modules and other data for the computer210. InFIG. 2, for example, hard disc drive241is illustrated as storing operating system244, application programs245, other program modules246, and program data247. These components can either be the same as or different from operating system234, application programs235, other program modules236, and program data237. Operating system244, application programs245, other program modules246, and program data247are given different numbers here to illustrate that, at a minimum, they are different copies.

A user may enter commands and information into the computer210through input devices such as a keyboard262and a pointing device261, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit220through a user input interface260that is coupled to the system bus221, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor291or other type of display device is also connected to the system bus221via an interface, such as a video interface290. In addition to the monitor, computers may also include other peripheral output devices such as speakers297and printer296, which may be connected through an output peripheral interface295.

The computer210may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer280. The remote computer280may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer210, although only a memory storage device281has been illustrated inFIG. 2. The logical connections depicted inFIG. 2include a local window network (LAN)271and a wide window network (WAN)273, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the computer210is connected to the LAN271through a network interface or adapter270. When used in a WAN networking environment, the computer210typically includes a modem272or other means for establishing communication over the WAN273, such as the Internet. The modem272, which may be internal or external, may be connected to the system bus221via the user input interface260, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer210, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,FIG. 2illustrates remote application programs285as residing on memory device281. It will be appreciated that the network connections shown are exemplary and other means of establishing a communication link between the computers may be used.

FIG. 3illustrates one embodiment of a non-grid electronic program guide. The program guide300includes a first display window302, a second display window304, a third display window306and a fourth display window308.

The first window302displays available television channels. As will be described in more detail later, the television channels are obtained from a program guide database. Each television channel displayed in the first window302includes a channel number310, the channel call letters312and a channel description314. InFIG. 3, Channel 20 is displayed in the first window302by its channel number310(20), call letters MTV312and description314(Independent). Channel 5 is displayed in the first window302by its channel number310(5), call letters312(KING) and channel description314(NBC Affiliate). For purposes of describing the technology only, channel 5 is a local NBC affiliate. Thus, the description314for Channel 5 is “NBC Affiliate.” Displaying the affiliate haleps the viewer identify the broadcaster.

A drop-down menu315allows the viewer to organize how the television channels are displayed in the first window302.FIG. 3illustrates that the menu item “Sorted by Number” has been selected. In this case, the television channels are displayed in the first window302in numerical order by channel number310. By way of example only, another menu item available in the drop-down menu315may be “Sorted by call letters” (not shown). If this menu item is selected, the television channels are displayed in alphabetical order by channel call letters312. The television channels displayed in the first window302may be organized in other ways. Due to the limited display area of the first window302, more television channels are identified in the program guide database than can be displayed at one time in the first window302. In this case, a scroll bar316is provided in the fist window302to allow the viewer to view all identified television channels.

The second window304displays available television series.318. The program guide300shown inFIG. 3illustrates an example of a default program guide (e.g., when the program guide300is first opened and before a television channel has been selected in the first window302). As will be discussed in more detail later, the program guide, when opened, identifies all available television channels and all the episodes that may be viewed on these television channels in a program guide database. As discussed above, all available television channels are displayed in the first window302. In one embodiment, all television series that may be viewed on any of the available television channels are initially displayed in the second window304. The EPG300shown inFIG. 3displays that seventy-six channels are available. Any number of television channels may be displayed in the first window302. In this default mode, all television series318that air on any of the seventy-six television channels are initially displayed in the second window304. In another embodiment, the first channel displayed in the first window302is automatically selected. Therefore, only the televisions series318that air on channel 2 are displayed in the second window304.

Some of the television series318shown in the EPG inFIG. 3include “60 Minutes,” “Friends,” “Auto racing: Indy 500” and “Forrest Gump.” As will be discussed in more detail later, every available episode is identified in the program guide database. If more than one episode of a television series is identified in the program guide database, the series title is displayed in the second window304and not each episode. If only a single episode (also referred to as a “one-off broadcast”) is identified in the program guide database, the episode title is displayed in the second window304. For the purpose of describing the technology only, two episodes of “60 Minutes,” five episode of “Friends,” one episode of the Indianapolis 500 race and two episodes of the movie “Forrest Gump” were identified in the program guide database.

A drop-down menu305is associated with the second window304.FIG. 3illustrates that the menu item “Sorted by Title” has been selected. When this item is selected in the drop-down menu305, the television series318are displayed in the second window304in alphabetical order by series title. The drop-down menu305may also include other menu items such as, by way of example only, “Sorted by airing time,” “Sports only,” “Movies only,” and so on. Selecting any of these menu items in the drop-down menu305organizes the series titles318by the item. If, by way of example only, the “Sorted by airing time” item was selected, the series titles318will be displayed in order of episode airing time. Due to the limited viewing area of the second window304, it may not be possible to display all available television series in the second window304at the same time. In this case, a scroll bar320is provided in the second window304to allow the viewer to view all identified television series.

The third window306displays available television episodes322. When the program guide300is opened, the episode322initially displayed in the third window306is an episode of the first television series318displayed in the second window304. If more than one episode of the television series318exists in the program guide database, each available episode is displayed in the third window306. InFIG. 3, the first television series displayed in the second window304is “60 Minutes”. For the purpose of describing this technology only, one episode of “60 Minutes” was identified in the program guide database. Therefore, that single episode322of “60 Minutes” is displayed in the third window306. In one embodiment, the air date324and air time326of the “60 Minutes” episode is also displayed in the third window306. In an alternative embodiment, only the episode title is displayed in the third window306.

The fourth window308displays details of the “60 Minutes” episode322shown in the third window306. As will be discussed in more detail later, the episode details displayed in the fourth window308are obtained from the content metadata associated with the episode. InFIG. 3, the episode details include a series description, series title (“60 Minutes”), airing date (February 10), airing time (7:00 PM-8:00 PM), channel, television affiliate, original air date, series category and television rating. Other details may also be displayed in the fourth window308. Due to the limited viewing area of the fourth window308, it is often not possible to display all the episode details in the fourth display window308at one time. In that case, a scroll bar330is provided in the fourth window308to allow the viewer to view all episode details.

FIG. 4illustrates the electronic program guide300after a television channel has been selected in the first window302. For purposes of describing the technology only, Channel 5 (KING—NBC Affiliate) has been selected in the first window302(illustrated as highlighted). In response to the selection of channel 5 in the first window302, the television series318displayed in the second window304shown inFIG. 3have been narrowed or filtered to only the television series318that air on the selected television channel, ch. 5. Some of the television series318displayed in the second window304include “30 Rock,” “Dateline” and “Friends.”

InFIG. 4, the television series318are displayed in the second window304in alphabetical order by series title. The television series318“Friends” has been selected in the second window304(illustrated as highlighted). As will be described in more detail later, the third window306only displays episodes of the selected television series. Here, the third window306displays all episodes of “Friends” that air on channel 5 that were identified in the program guide database. The episode322titled “Fake Monica's” is selected in the third window306. Thus, the fourth window308of the program guide300displays the details of the “Fake Monica's” episode. As shown inFIG. 4, the details displayed in the fourth window308include the airing date (September 14), the airing time (6:00 PM-6:30 PM), a brief description of the episode, the television channel the episode airs on (5 KING), the original air date (Apr. 27, 1995), and so on.

In theFIG. 4embodiment, the “record” button340, when selected, transmits recording instructions to a recording device to record the episode selected in the third window306. InFIG. 4, the “Fake Monica's” episode322is selected in the third window306. Thus, selecting the “record” button340will allow the viewer to record the “Fake Monica's” episode. Selecting the “record series” button342transmits recording instructions to a recording device to record all episodes in the selected television series. InFIG. 4, the television series318“Friends” is selected in the second window304. Thus, selecting the “record series” button342records all episodes of “Friends” contained in the program guide database.

FIG. 5illustrates exemplary steps for displaying the television channel and episode information in each of the windows of the non-grid program guide300. In step502, the available television channels and episodes are obtained from a program guide database. In step504, the television channels obtained in step502are displayed in the first window302of the guide300. In one embodiment, the television channels are displayed in the first window302in numerical order by channel number. In an alternative embodiment, the television channels are displayed in the first window302in alphabetical order by channel call letters. In step506, the television series associated with the television episodes (identified in step502) are displayed in the second window304of the guide300. More detail is provided later describing step506. In step508, the television episodes of one of the television series displayed in the second window304are displayed in the third window306of the guide300. In step510, the details of one of the episodes displayed in the third window306is displayed in the fourth window308.

FIG. 6illustrates exemplary steps for displaying television series318in the second window304of the electronic program guide300. In step602, a television channel has been selected in the first window302of the electronic program guide300. InFIG. 4, the viewer selected channel 5 in the first window302.

In step604, every episode contained in the program guide database that airs on channel 5 is identified. A program guide database may comprise any television listing service such as, by way of example only, Zap2It®, Yahoo!® TV and the like. For the purpose of describing this technology only, the program guide database contains episode listings for a fourteen day period and is updated daily. Thus, in step604, every episode that airs on channel 5 during the fourteen day period is identified in the program guide database. Episodes that air on ch. 5, which is an NBC affiliate, NBC may include national and local broadcasts of television programs (e.g., “30 Rock,” “American Gladiators,” “Dateline,” “Friends,” “The Office” and local news), sporting events (e.g., MLB baseball games, NFL football games, etc.), movies, and the like.

Episodes vary in length. An episode of a television sitcom such as “Friends” or “30 Rock” are typically thirty minutes, an episode of a news program such as “Dateline” are typically sixty minute episodes, and episodes of sporting events and movies vary greatly in length. If every episode that airs on ch. 5 in the next fourteen days is a thirty-minute episode, six hundred and seventy-two episodes would be identified in, in step604. If any episode that airs on ch. 5 in the next fourteen days is longer than thirty minutes, fewer episodes are identified in step604. More than one episode of the same television series may air within the next fourteen days. Using the example provided above, the television series “Friends” airs every Thursday night on ch. 5, and repeats of “Friends” are likely airing on other channels. Thus, at least two episodes of “Friends” will be identified in step604.

In step606, for each episode identified in step604, it is determined whether the episode is associated with a periodically returning television series. If the episode is a broadcast of “Friends,” then the episode is associated with the periodically returning television series “Friends.” When the episode is associated with such a television series in step606, the television series title is displayed in the second window304of the electronic program guide300, in step608. InFIG. 4, the television series title318“Friends” is displayed in the second window302of the electronic guide300. As discussed above, multiple episodes of “Friends” may be identified in the program guide database in step604. Regardless of the number of episodes identified in step604, the television series title “Friends” will be displayed in the second window604only once.

If the episode is, however, a one-off broadcast of an NFL game between the Oakland Raiders and Seattle Seahawks, the episode is not associated with a periodically returning television series. The same is true for a broadcast of a movie (e.g., “Forrest Gump”). However, if the movie airs more than once in the next fourteen days, each airing of the movie may be identified as an episode of a periodically returning television series. If the episode is a one-off broadcast, a description of the episode is displayed in the second window304of the electronic guide300, in step610. In step604, one airing of the Oakland Raiders vs. Seattle Seahawks NFL game and one airing of the movie “Blades of Glory” were identified in the program guide database. Therefore, the descriptions “NFL: Raiders vs. Seahawks” and “Blades of Glory” are displayed in the second window304of the electronic guide300(SeeFIG. 3).

FIG. 7illustrates exemplary steps of displaying episodes322in the third window306of the electronic program guide300. In step702, one of the television series318displayed in the second window304is selected. InFIG. 4, the television series318“Friends” has been selected in the second window304. Previously, channel 5 was selected in the first window302. In step704, episodes of the selected television series318“Friends” are identified. Because channel 5 is selected in the first window302, only episode of “Friends” that are identified in the program guide database that also air on channel 5 are identified.

For the purpose of describing the technology only, five episodes of “Friends” were identified in the program guide database, in step704. Each episode has an associated set of rich descriptors forming content metadata. Examples of content metadata include the episode description, the episode category, the episode title and the like. In step706, the episode title of each “Friends” episode that was identified in step704is obtained. In step708, the episode titles are organized. In one embodiment, the episode titles are organized in alphabetical order by series title. In an alternative embodiment, the episode titles are organized according to episode airing time.

In step710, the episode titles322are displayed in the third window706of the electronic program guide300. InFIG. 4, the five episode titles are displayed in the third window706of the program guide300: “Fake Monica's”350, “Rachel's Date”352, “Nap Partners”356and “Ross'Library Book”358. In theFIG. 4embodiment, the air date and airing time of each episode is not displayed in the third window706of program guide300(as shown inFIG. 3). It is within the scope and spirit of the technology to display the airing time and date associated with each episode, similar to that shown inFIG. 3.

FIG. 8illustrates exemplary steps for displaying episode details in the fourth window308of the program guide300. In step802, one of the episodes titles322displayed in the third window306is selected. For the purpose of describing the technology only, the “Fake Monica's” episode350has been selected (seeFIG. 4). In step804, the episode details associated with the “Fake Monica's” episode350is obtained. Again, the episode details are obtained from the content metadata associated with the selected episode. In step806, the episode details are displayed in the fourth window308. In one embodiment, all of the metadata content obtained in step804is displayed in the fourth window308. In an alternative embodiment, a predetermined portion of the metadata content obtained in step804is displayed in the fourth window708.FIG. 4provides one example of displaying episode details. Other formats are within the scope of the technology. If all the episode details cannot be displayed in the fourth window308at one time, a scroll bar309is provided in the fourth window308to allow the viewer to view all the available information.

FIG. 9shows an exemplary configuration of a processing device, authorized client24(1), implemented as a broadcast-enabled computer. It includes a central processing unit60having a processor62, volatile memory64(e.g., RAM), and program memory66(e.g., ROM, Flash, disk drive, floppy disk drive, CD-ROM, etc.). The client24(1) has one or more input devices68(e.g., keyboard, mouse, etc.), a computer display70(e.g., VGA, SVGA), and a stereo I/O72for interfacing with a stereo system.

The client24(1) includes a digital broadcast receiver74(e.g., satellite dish receiver, RF receiver, microwave receiver, multicast listener, etc.) and a tuner76which tunes to appropriate frequencies or addresses of the broadcast network. The tuner76is configured to receive digital broadcast data in a particularized format, such as MPEG-encoded digital video and audio data, as well as digital data in many different forms, including software programs and programming information in the form of data files. The client24(1) also has a modem78which provides dial-up access to the data network28to provide a back channel or direct link to the content servers22. In other implementations of a back channel, the modem78might be replaced by a network card, or an RF receiver, or other type of port/receiver which provides access to the back channel.

The client24(1) runs an operating system which supports multiple applications. The operating system is preferably a multitasking operating system which allows simultaneous execution of multiple applications. The operating system employs a graphical user interface windowing environment which presents the applications or documents in specially delineated areas of the display screen called “windows.” One preferred operating system is a Windows® brand operating system sold by Microsoft Corporation, such as Windows® XP or Windows® VISTA or other derivative versions of Windows®. It is noted, however, that other operating systems which provide windowing environments may be employed, such as the Macintosh operating system from Apple Computer, Inc. and the OS/2 operating system from IBM.

The client24(1) is illustrated with a key listener80to receive the authorization and session keys transmitted from the server. The keys received by listener80are used by the cryptographic security services implemented at the client to enable decryption of the session keys and data. Cryptographic services are implemented through a combination of hardware and software. A secure, tamper-resistant hardware unit82is provided external to the CPU60and two software layers84,86executing on the processor62are used to facilitate access to the resources on the cryptographic hardware82.

The software layers include a cryptographic application program interface (CAPI)84which provides functionality to any application seeking cryptographic services (e.g., encryption, decryption, signing, or verification). One or more cryptographic service providers (CSPs)86implement the functionality presented by the CAPI to the application. The CAPI layer84selects the appropriate CSP for performing the requested cryptographic function. The CSPs86perform various cryptographic functions such as encryption key management, encryption/decryption services, hashing routines, digital signing, and authentication tasks in conjunction with the cryptographic unit82. A different CSP might be configured to handle specific functions, such as encryption, decryption, signing, etc., although a single CSP can be implemented to handle them all. The CSPs86can be implemented as dynamic linked libraries (DLLs) that are loaded on demand by the CAPI, and which can then be called by an application through the CAPI84.

FIG. 10illustrates an exemplary environment1000suitable for automatically setting up TV signals in a tuner device. The environment1000, in this embodiment, includes a PC1020, an antenna1100, a cable system1120, a satellite dish1050, a set-top box1060and a television1180. Each of these hardware components are connected together by a network1040. The environment1000also includes a broadcast system1080(described in more detail later).

In the exemplary environment1000, the tuner device will be referred to as the PC1020. The tuner device may also be implemented as any number of other devices employing one or more tuners configurable in a variety of ways for receiving TV signals. The tuner device may also refer to the set-top box1060, a personal video recorders (PVRs), the television sets1180, and so on.FIG. 10illustrates that the television set1180is connected to the set-top box1060. The television set1180may also be connected to other devices such as, for example, the personal computer (PC)1020, the cable system1120, and so on. For purposes of describing this technology herein, the tuner device will be referred to as the PC1020.

The exemplary environment1000ofFIG. 10also illustrates the availability of several different TV signal sources1080. A user is most likely to subscribe to or use one or more of these sources1080. These sources include a terrestrial/OTA (over the air) television broadcast system1080a, a cable broadcast system1080band a satellite broadcast system1080c. The exemplary environment1000illustrates that these signal sources1080may be input to PC1020directly (e.g., through RF antenna1100, cable1120, or satellite dish1050), or they may be input to PC1020through a network1040or set-top box (STB)1060.

STB1060performs the functions of a conventional unit of this nature, such as controlling channel selection and decoding premium broadcast channels. STB1060may select from different available physical sources1080. Thus, STB1060may have interfaces that connect to an RF antenna1100for receiving terrestrial broadcasts, a cable1120for receiving cable broadcasts, or a satellite dish1050for receiving satellite broadcasts.

FIG. 10also illustrates that the network1040communicates with the program guide database1084via a second network1082. Many different devices are connected to the network1040, including the PC1020, antenna1100, cable system1120, satellite dish1050, set-top box1060and television1180shown inFIG. 10. Thus, any one of these devices may identify and store the available television channels and episodes in the program guide database1084. The other devices may obtain the contents of the program guide database1084from the device that downloaded the contents.

The foregoing detailed description of the inventive system has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the inventive system to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the inventive system and its practical application to thereby enable others skilled in the art to best utilize the inventive system in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the inventive system be defined by the claims appended hereto.