Abstract:
A system for providing date and/or time selections that can be applied across multiple operations and/or applications, in which the user is allowed to make complex date and/or time selections through a time selection user interface, where each date and/or time selection may describe multiple date and/or time ranges, and each date and/or time range has its own associated start and end points. The system enables the user to indicate that a date and/or time selection is to be applied to one or more operations, and provides a visual representation of the date and/or time selection that can be moved by the user outside of the date and/or time selection user interface, and over a user interface for a date and/or time dependent operation to be performed. When the date and/or time selection visual representation is moved over the operation user interface, the system enables the user to indicate that the date and/or time range(s) of the date and/or time selection is to be passed to the operation user interface. In response to the user indicating that the date and/or time range(s) of the date and/or time selection is to be passed to the operation user interface, the system inputs the date and/or time range(s) of the date and/or time selection into the operation user interface. The operation can then be performed using the date and/or time range information of the date and/or time selection.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention related generally to computer user interfaces for computer programs, and more specifically to a method and system for providing drag enabled date and/or time components. 
       BACKGROUND OF THE INVENTION 
       [0002]    Today&#39;s computer systems provide users with access to a wide variety of user interfaces, many of which require a user to select a range of dates or times to be used by an underlying computer program to perform an operation. Many different types of computer programs may require a user to select a time or date range to perform certain operations. 
         [0003]    When a user makes a time selection indicating a range of dates or times, that selection must often be used for multiple purposes relating to an event the time selection is intended to describe. For example, separate date dependent operations relating to an event such as a business trip or vacation may include purchasing airline tickets, reserving a hotel room, reserving a rental car, and obtaining tickets to events. However, even though the user may want to apply the same date selection to one or more such different operations relating to the same event, existing systems often force the user to separately re-enter the date selection for each operation. The user will accordingly have to open a user interface to perform a first operation, enter the start and end dates for the date selection required by the first date dependent operation user interface, perform the first operation, save the results of the first operation, close the operation interface and/or application for the first operation, open the next operation user interface, enter the same start and end dates again and perform that operation, and so on until all the related operations for the event are performed. Since the same time or date selection steps may have to be repeated for each of the multiple, different operations, excessive mouse clicks or equivalent actions are introduced into the user experience, and user productivity and/or satisfaction decreases. In addition, on top of the user time required by the excessive clicks using such existing systems, the user must typically open a different sub-component of the user interface, within a single or multiple applications, in order to gain access to the time or date selection program component for each operation the time or date selection is applied to. Moreover, in the event that a user must change a time or date selection that was previously applied to multiple operations, the user must remember the operations the selection was applied to. These events can be spread across many applications and the user can spend hours updating the results of each operation to reflect a change in schedule. 
         [0004]    Examples of existing systems that have attempted to provide efficient time selection solutions include Microsoft® Outlook®, IBM® Lotus® Notes®, Novel® Groupwise®, and Web applications such as those provided by Travelocity® and Orbitz®. Each of these existing systems provides a way for a user to enter a time selection to be used to perform an operation. However, none of these existing systems enables the user to enter a time selection and then conveniently apply the selection across multiple operations in potentially multiple applications. These existing systems fail to take into account the need for common persistent time selections, and once a selection is made there is no way to recall that specific time selection for a new purpose. 
         [0005]    For these reasons, it would be desirable to have a new system for providing time or date selections that can be conveniently applied across multiple time or date dependent operations and/or applications, and that eliminates the excessive user actions, such as mouse clicks or the like, that are required by previous systems to apply a time or date selection across multiple operations. 
       SUMMARY OF THE INVENTION 
       [0006]    To address the above described and other shortcomings of existing systems, a new system for providing date and/or time selections that can be applied across multiple operations and/or applications is disclosed. In the disclosed system, the user is allowed to make potentially complex date and/or time selections through a date and/or time selection user interface. Each date and/or time selection input from the user may describe multiple date and/or time ranges, each range having its own associated start and end dates and/or times. The disclosed system then enables the user to indicate that the date and/or time selection is to be applied to one or more date and/or time dependent operations. In response to the indication that the date and/or time selection is to be applied to one or more date and/or time dependent operations, the disclosed system provides a visual representation of the date and/or time selection that can be moved by the user outside of the date and/or time selection user interface, and over a user interface for a date and/or time dependent operation to be performed. When the date and/or time selection visual representation is moved by the user over the user interface for a date and/or time dependent operation to be performed, the disclosed system enables the user to indicate that the date and/or time range(s) of the date and/or time selection is to be passed to the date and/or time dependent operation user interface. In response to the user indicating that the date and/or time range(s) of the date and/or time selection is/are to be passed to the date and/or time dependent operation user interface, the disclosed system inputs the date and/or time range(s) of the date and/or time selection into the date and/or dependent operation user interface. For example, in response to such user indication, the start and end times for time range(s) of a time selection are moved by the disclosed system into appropriate fields of a time dependent operation user interface. The time dependent operation can then be performed using the time range information of the time selection. Similarly, in response to user indication of a date selection including one or more date ranges, the start and end dates for the date selection are moved by the disclosed system into appropriate fields of a date dependent operation user interface, and the date dependent operation can then be performed using the date range information. 
         [0007]    In a first embodiment, the disclosed system detects when a user clicks on a date and/or time selection user interface region, and then provides a “ghost” representation of the user&#39;s date and/or time selection in the user interface. The user can then drag the ghost representation of the date and/or time selection out of the date and/or time selection user interface region, and over a user interface region associated with a date and/or time dependent operation to be performed, for example by holding down a mouse button and moving the mouse to drag the ghost representation within a desktop user interface. When the user drops the ghost representation of the date and/or time selection over the date and/or time dependent operation user interface region, for example by releasing the mouse button while the ghost representation is over the date and/or time dependent operation user interface region, the disclosed system causes the information associated with the time selection to be used to automatically fill in one or more date and/or time user input fields of the date and/or time dependent operation user interface, so that the operation can be performed using the date and/or time selection information. 
         [0008]    In another embodiment, the disclosed system operates in response to a user requesting a context menu related to the date and/or time selection user interface region, for example by right clicking over the date and/or time selection user interface region. The disclosed system then provides a date and/or time selection copy menu that allows the user to indicate a target date and/or time format for a user interface to a date and/or time dependent operation that is to be performed using the current date and/or time selection. The disclosed system then stores the current date and/or time selection in the user indicated format, and enables the user to perform a paste operation over an date and/or time dependent operation user interface that causes the date and/or time range information from the date and/or time selection to be pasted into one or more user input fields of the date and/or time dependent operation user interface in the format previously indicated by the user. 
         [0009]    The disclosed system may be embodied such that the date and/or time selection user interface and date and/or time dependent operation user interfaces are provided by or within a single application program, or such that the date and/or time selection user interface is provided by program code that is separate from the application or applications providing the date and/or time dependent operation user interfaces. Examples of date and/or time dependent operations that may be performed using the disclosed system include any operation for which one or more ranges of dates and/or times must be entered by the user into a corresponding user interface, including but not limited to calendaring and scheduling operations, hotel reservation operations, car rental reservation operations, flight reservation operations, out of office automatic response operations, and others. 
         [0010]    Thus there is disclosed a new system for providing date and/or time selections that can be conveniently applied across multiple date and/or time dependent operations and/or applications, and that eliminates the excessive user actions, such as mouse clicks or the like, that are required by previous systems to apply a date and/or time selection across multiple date and/or time dependent operations. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]    The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which: 
           [0012]      FIG. 1  is a block diagram showing software and hardware components in an illustrative embodiment; 
           [0013]      FIG. 2  is user interface diagram showing user interface display objects generated in a first operational example of an illustrative embodiment of the disclosed system; 
           [0014]      FIG. 3  is a user interface diagram showing user interface display objects generated in a second operational example of an illustrative embodiment of the disclosed system; 
           [0015]      FIG. 4  is a user interface diagram showing user interface display objects generated in a third operational example of an illustrative embodiment of the disclosed system; 
           [0016]      FIG. 5  is a user interface diagram showing user interface display objects generated in a fourth operational example of an illustrative embodiment of the disclosed system involving a complex date and/or time selection; 
           [0017]      FIG. 6  is a flow chart illustrating steps performed in an illustrative embodiment of the disclosed system; 
           [0018]      FIG. 7  is another flow chart illustrating steps performed in an alternative illustrative embodiment of the disclosed system; and 
           [0019]      FIG. 8  is an example of a display object generated by an illustrative embodiment of the disclosed system to enable a user to select a target date and/or time format. 
       
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       [0020]      FIG. 1  is a block diagram showing software and hardware components in an illustrative embodiment. As shown in  FIG. 1 , an end user computer system  10  provides a desktop user interface  14  to a user  12 . The desktop user interface  14  includes display regions provided by a number of application programs  16 , shown for purposes of illustration including application  1   18 , application  2   20 , Web application  22 , etc. As further shown in  FIG. 1 , the Web application  22  is an example of an application provided in a client-server model, in which the Web application  22  is the client part, and the server part is shown by Web server application(s)  32  executing in a separate server computer system  30 . The server computer system  30  may, for example, be communicably coupled to the computer system  10  by way of one or more data communication network, shown as communication network  14 , and consisting of LANs, the Internet, or other types of data communication networks. 
         [0021]    During operation of the illustrative embodiment shown in  FIG. 1 , the disclosed system provides a date and/or time selection user interface  33  and one or more date and/or time dependent operation user interfaces  35 . The disclosed system enables the user to make a potentially complex date and/or time selection through the date and/or time selection user interface  33  once, and then conveniently indicate that the date and/or time selection should be applied to one or more of the date and/or time dependent operation user interfaces  35 , without having to re-enter the date and/or time selection. The date and/or time selection user interface  33  and date and/or time dependent operation user interface  35  may be provided to the user through the desktop user interface  14  by one or more of the application programs  16 , and/or by other program code executing on the computer system  10  and/or server computer system  30 . 
         [0022]      FIG. 2  is user interface diagram showing user interface display objects generated in a first operational example of an illustrative embodiment of the disclosed system. The display objects shown in  FIG. 2  may, for example, be part of the desktop user interface  14  shown in  FIG. 1 . As shown in  FIG. 2 , an illustrative example of a date and/or time selection user interface is the date selection user interface  40  generated by the disclosed system enables a user to indicate a date selection  48 . The date selection user interface  40  is an example of what is sometimes referred to as a “date picker” user interface. The date selection user interface  40  may be embodied in any specific kind of date and/or time selection user interface that allows the user to indicate or select multiple date ranges that are each graphically represented or displayed, for example by the date selection  48 , within the date selection user interface  40  in response to the user&#39;s indication or selection. 
         [0023]    In the example of  FIG. 2 , the user has clicked on or otherwise selected the darkened boxes in the date selection user interface  40  indicating a date range of Monday through Friday in the first week of a current month displayed in the date selection user interface  40 . For example, if the current month in the time selection user interface  40  were March, then the date selection  48  is a graphical representation of the days Mar. 1, 2005 through Mar. 5, 2005. 
         [0024]    As further shown in  FIG. 2 , the disclosed system detects when the user moves the cursor over the date selection  48 , clicks and holds on the date selection  48 , and then drags the cursor away from the date selection user interface  40 , e.g. using a button on a mouse user interface device. In response to detecting that the user has clicked and held on the date selection  48  and/or begun to drag the cursor away from the date selection user interface  40 , the disclosed system generates ghost representation  50  of the date selection  48 . The ghost representation  50  may be any specific graphical representation of the date selection  48 . For example, as shown in  FIG. 2 , the ghost representation  50  may be a lighter version of the time selection  48 , provided in the same shape as the time selection  48 . 
         [0025]    The disclosed system detects when the user drags the ghost representation  50  over a portion of the hotel booking operation user interface  44 . The hotel booking operation user interface  44  is an example of the date and/or time dependent operation user interfaces  35  shown in  FIG. 1 . In the illustrative embodiment of  FIG. 2 , the hotel booking operation user interface  44  has a first portion displayed as part of an operation selector  42 . The operation selector  42  provides representations of multiple date dependent operations from which the user can select. For example, the user can select a desired operation by dragging the ghost representation  50  over a representation of that operation in the operation selector  42 , and then dropping the ghost representation  50  by releasing the mouse button. In the example of  FIG. 2 , the disclosed system has detected that the user has dragged the ghost representation  50  over the representation of the hotel booking operation in the operation selector  42 , which for purposes of explanation is a portion of the hotel booking operation user interface  44  contained in the operation selector  42 , and then dropped the ghost representation  50 . As a result of detecting that the user has dragged and dropped the ghost representation  50  onto a portion of the hotel booking operation user interface  44 , the disclosed system pre-populates the start date field  52  and end date field  54  in the parameter entry portion  46  of the hotel booking operation user interface with date information corresponding to the date selection  48 . For example, the start date field  52  is loaded with the date Mar. 1, 2005, and the end date field  54  is loaded with the date Mar. 5, 2005. Thus the user need not re-enter the start date and end date when performing the hotel booking operation, in order to reserve a hotel between the start date and the end date, since those dates have been pre-entered by the disclosed system into the hotel booking user interface  44 . 
         [0026]      FIG. 3  is a user interface diagram showing user interface display objects generated in a second operational example of an illustrative embodiment of the disclosed system. The display objects shown in  FIG. 3  may, for example, be part of the desktop user interface  14  shown in  FIG. 1 . As in  FIG. 2 , the date selection user interface  40  enables the user to indicate the date selection  48  (again representing Mar. 1, 2005 through Mar. 5, 2005) by clicking on or otherwise selecting boxes in the date selection user interface  40 . 
         [0027]    As further shown in  FIG. 3 , similar to the example of  FIG. 2 , the disclosed system detects that the user has dragged the ghost representation  50  of date selection  48  over a portion of the out of office operation user interface  64 . The out of office operation user interface  64  is another example of the date and/or time dependent operation user interfaces  35  shown in  FIG. 1 . In the illustrative embodiment of  FIG. 3 , the out of office operation user interface  64  has a first portion displayed as part of the operation selector  42 . In the example of  FIG. 3 , the disclosed system has detected that the user has dragged the ghost representation  50  over a portion of the out of office operation user interface  64 , and then dropped the ghost representation  50 . As a result of detecting that the user has dragged and dropped the ghost representation  50  onto a portion of the out of office operation user interface  64 , the disclosed system pre-populates the start date field  72  and end date field  74  in the parameter entry portion  66  of the out of office operation user interface with date information corresponding to the previously indicated date selection  48 . For example, the start date field  72  has been loaded with the date Mar. 1, 2005, and the end date field  74  has been loaded with the date Mar. 5, 2005. Thus the user need not re-enter the start date and end date when performing an out of office operation, for example to set up an automatically generated out of office reply message in a communication system, since the previously indicated start date and end date have been pre-entered by the disclosed system into the out of office user interface  64 . 
         [0028]      FIG. 4  is a user interface diagram showing user interface display objects generated in a third operational example of an illustrative embodiment of the disclosed system. The display objects shown in  FIG. 4  may, for example, be part of the desktop user interface  14  shown in  FIG. 1 . As in  FIGS. 2 and 3 , the date selection user interface  40  generated enables the user to indicate the date selection  48  (again representing Mar. 1, 2005 through Mar. 5, 2005) by clicking on or otherwise selecting boxes in the date selection user interface  40 . Thus the date selection user interface  40  is an example of a date and/or time selection user interface that enables a user to indicate or select one or more date and/or time ranges that are, for example, graphically displayed as date selection  48  in response to the user&#39;s indication or selection. As shown in  FIG. 4 , the disclosed system detects that the user has dragged the ghost representation  50  of date selection  48  over a portion of the automobile rental operation user interface  80 . The automobile rental operation user interface  80  is another example of the date and/or time dependent operation user interfaces  35  shown in  FIG. 1 . In the illustrative embodiment of  FIG. 4 , the disclosed system detects that the user has dragged the ghost representation  50  over a portion of the automobile rental operation user interface  80 , and then dropped the ghost representation  50 . As a result of detecting that the user has dragged and dropped the ghost representation  50  onto a portion of the automobile rental operation user interface  80 , the disclosed system pre-populates the start date field  84  and end date field  86  in the updated automobile rental operation user interface  82 . The start date field  84  and end date field  86  are pre-populated with date information corresponding to the previously indicated date selection  48 . For example, the start date field  84  has been loaded with the date Mar. 1, 2005, and the end date field  86  has been loaded with the date Mar. 5, 2005. Thus the user need not expressly enter the start date and end date when performing an automobile rental operation, for example to set up a car rental between the start date and end date, since the previously indicated start date and end date have been pre-entered into the updated automobile rental operation user interface  82  used by the automobile rental operation. 
         [0029]      FIG. 5  is a user interface diagram showing user interface display objects generated in a fourth operational example of an illustrative embodiment of the disclosed system involving a complex date and/or time selection. The display objects shown in  FIG. 5  may, for example, be part of the desktop user interface  14  shown in  FIG. 1 . The date selection user interface  40  generated by the disclosed system enables the user to indicate a complex date selection  90  by clicking on or otherwise selecting boxes in the date selection user interface  40 . The complex date selection  90  includes multiple date ranges, where each of the date ranges includes a start date and an end date. For example, as shown in  FIG. 5 , assuming that the date selection user interface  40  currently allows user selection of days going forward from Oct. 1, 2005, the time ranges of the complex time selection  90  are Oct. 1, 2005 through Oct. 5, 2005, Oct. 22, 2005 through Oct. 29, 2005, Nov. 5, 2005 through Nov. 6, 2005, and Nov. 9, 2005 through Nov. 10, 2005. 
         [0030]    As further shown in  FIG. 5 , the disclosed system detects that the user has dragged a ghost representation  92  of complex date selection  90  over a portion of the car rental reservation operation user interface  94 . The car rental reservation operation user interface  94  is another example of the date and/or time dependent operation user interfaces  35  shown in  FIG. 1 . In the illustrative embodiment of  FIG. 5 , the disclosed system detects that the user has dragged the ghost representation  92  over a portion of the car rental reservation operation user interface  94 , and then dropped the ghost representation  92 . As a result of detecting that the user has dragged and dropped the ghost representation  92  onto a portion of the car rental reservation operation user interface  94 , the disclosed system pre-populates the dates field  98  in the parameter entry portion  96  of the car rental reservation user interface  94 . The dates field  98  is pre-populated with date information corresponding to the previously indicated complex date selection  90 . For example, the dates field  98  has been loaded with the dates Oct. 1, 2005 through Oct. 5, 2005, Oct. 22, 2005 through Oct. 29, 2005, Nov. 5, 2005 through Nov. 6, 2005, and Nov. 9, 2005 through Nov. 10, 2005, as previously selected by the user through the time selection user interface  40 . In the embodiment shown in  FIG. 5 , the format of the dates loaded into the dates field  98  is known a priori to be MM/DD/YYYY, with start date and end dates for each date range in the complex date selection being separated by “..”, and with each date range separated by a comma (“,”). Accordingly, the illustrative embodiment of  FIG. 5  loads the dates field  98  with the pre-selected date ranges in the following format: 10/01/2005..10/05/2005, 10/22/2005..10/29/2005, 11/05/2005..11/06/2005, 11/09/2005..11/10/2005. Thus the user need not re-enter the start dates and end dates when performing car reservation operation, for example to set up a car rental within multiple date ranges in a single operation, since the previously indicated start dates and end dates have been pre-entered into the parameter entry portion  96  of the car rental reservation operation user interface  94 . 
         [0031]      FIG. 6  is a flow chart illustrating steps performed in an illustrative embodiment of the disclosed system. At step  100 , the disclosed system operates to present a date and/or time selection user interface to a user. At step  102 , the disclosed system detects the user specification of a potentially complex date and/or time selection through the date and/or time selection user interface. At step  104 , the user is detected indicating the date and/or time selection specified at step  102 , for example when the user presses and holds down the mouse button when the cursor is located over a graphical representation of the date and/or time selection. 
         [0032]    At step  106 , a ghost representation of the date and/or time selection is displayed to the user in close visual proximity to the cursor in the desktop user interface. At step  108 , the disclosed system detects the user dragging and dropping the ghost representation of the date and/or time selection over a date and/or time dependent operation user interface. As a result of the user dragging and dropping the ghost representation of the date and/or time selection onto the date and/or time dependent operation user interface, the disclosed system populates one or more fields in the time dependent operation user interface with date and/or time information reflecting the previously made date and/or time selection, for example including one or more previously selected dates, times, time ranges, date ranges, etc. 
         [0033]      FIG. 7  is a flow chart illustrating steps performed in an alternative illustrative embodiment of the disclosed system. As shown in  FIG. 7 , at step  120  the disclosed system presents a date and/or time selection user interface to the user, and at step  122  the disclosed system detects a user&#39;s specification of a potentially complex date and/or time selection through the date and/or time selection user interface. At step  124 , the disclosed system detects a user beginning a copy operation of the date and/or time selection made in step  122 . For example, the disclosed system may detect the user performing a right click operation or the like while the cursor is located over the graphical representation of the time selection or over the time selection user interface. In response to the user beginning a copy operation of the time selection, the disclosed system presents menu items at step  126  that allow the user to select a target date and/or time format. A target date and/or time format describes how the date and/or time ranges in the date and/or time selection are to be represented as characters in the fields of the date and/or time dependent operation user interface to which the date and/or time selection is to be copied. 
         [0034]    The user may select at step  128  from various specific date and/or time formats displayed as selectable options at step  126 . Most such selectable date formats indicate three parts of each represented date: the day of month, month, and the year. The differing formats that may be selected from at step  126  include various specific date formats that are sometimes described in terms of in terms of their “endianness.” For example, various ones of the following types of date formats may be selected from at step  126 : 
         [0035]    1) Little endian forms, starting with the day. Examples:
       16/11/2003, 16.11.2006, 16-11-2003 or 16-11-03   16th of November 2003   16th November 2003   16 November 2003   16 November 2003       
 
         [0041]    2) Big endian forms, starting with the year. Examples:
       2003 Nov. 16,   2003-11-16       
 
         [0044]    3) Middle endian forms, starting with the month. Examples:
       Nov. 16, 2003   Nov. 16, 2003   11/16/2003, 11-16-2003, 11.16.2003 or 11.16.03       
 
         [0048]    The user selection at step  126  further indicates how the range or ranges of dates and/or times are to be represented when entered into the target user interface of a date or time dependent operation. For example, a selectable target date range format indicated by the user at step  126  may be comma delimited, with “..” denoting a range with a start date followed by the end point for contiguous ranges. This is the same format as used in the example of  FIG. 5  in the following date range representation: 10/01/2005..10/05/2005, 10/22/2005..10/29/2005, 11/05/2005..11/06/2005, 11/09/2005..11/10/2005. 
         [0049]    After the disclosed system has detected that the user has selected a target date and/or time format at step  128 , the disclosed system operates at step  130  to detect the user performing a paste operation of the date and/or time selection onto the date and/or time dependent operation user interface. Such a paste operation may be performed through the user right clicking while the cursor is over the date and/or time dependent operation user interface and clicking on a paste menu item in the resulting menu. At step  132 , the disclosed system populates one or more date and/or time fields in the date and/or time dependent operation user interface with date and/or time information reflecting the user&#39;s date and/or time selection detected at step  122 . The date and/or time fields of the date and/or time dependent operation user interface are populated with date and/or time information in the format selected by the user at step  130 . 
         [0050]      FIG. 8  is an example of a display object  134  generated at step  126  of  FIG. 7  by an illustrative embodiment of the disclosed system to enable a user select a target date and/or time format at step  128  of  FIG. 7 . As shown in  FIG. 8 , the display object  134  is a portion of a context menu that enables the user to select a “Copy to Format” menu item  136 , causing a list  138  of target formats to be presented from which the user can select. 
         [0051]    The present invention can be realized in hardware, software, or a combination of hardware and software. A system according to the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. 
         [0052]    The figures include block diagram and flowchart illustrations of methods, apparatus(s) and computer program products according to an embodiment of the invention. It will be understood that each block in such figures, and combinations of these blocks, can be implemented by computer program instructions. These computer program instructions may be loaded onto a computer or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the block or blocks. These computer program instructions may also be stored in a computer-readable medium or memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium or memory produce an article of manufacture including instruction means which implement the function specified in the block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the block or blocks. 
         [0053]    Those skilled in the art should readily appreciate that programs defining the functions of the present invention can be delivered to a computer in many forms; including, but not limited to: (a) information permanently stored on non-writable storage media (e.g. read only memory devices within a computer such as ROM or CD-ROM disks readable by a computer I/O attachment); (b) information alterably stored on writable storage media (e.g. floppy disks and hard drives); or (c) information conveyed to a computer through communication media for example using wireless, baseband signaling or broadband signaling techniques, including carrier wave signaling techniques, such as over computer or telephone networks via a modem. 
         [0054]    While the invention is described through the above exemplary embodiments, it will be understood by those of ordinary skill in the art that modification to and variation of the illustrated embodiments may be made without departing from the inventive concepts herein disclosed.