Patent ID: 7886004

Claim:
A first device for using a first browser for navigation through a collection of data, resulting in the generation of events, and synchronizing the state of a second browser with the state of said first browser, said first device comprising: a visual display for displaying visual output; an input device for accepting user input from a user; an audio speaker to render audio output; a microphone to accept first device side audio input; said first browser, wherein said first browser enables said navigation through said collection of data in a first mode, wherein said first browser is configured to capture a first browser state indicating a current position of said first browser with respect to said collection of data, said first browser state comprising a record of events occurring on said first browser during said navigation, said first browser comprising: a script engine for recording said events occurring on said first browser during said navigation by executing instructions in a script, wherein said script comprises one or more sets of instructions, each of said sets of instructions being adapted to create a record of a particular one of the events, said script engine being adapted to invoke a particular one of said sets of instructions according to which of said events is signaled by said first browser; said first device in communication with a second device, wherein said second device comprises said second browser for enabling said navigation through said collection of data in a second mode; and said first browser configured to provide the record of events created by said script engine to the second browser for allowing said second browser to recreate said first browser state at one of a plurality of granularity levels specified by said user, wherein each of said granularity levels represent the precision with which the second browser recreates the first browser state, and wherein said granularity levels comprise one of a page level granularity, a card level granularity, a field level granularity, and a cursor level granularity; whereby the state of the second browser is synchronized with the state of the first browser from the information received from said state manager.